专注于数据库与信息检索技术![sql9.com]

SQLite指南(5) - PRAGMA命令用法(完整)

如若转载,请加上本文链接,以示尊重个人劳动,谢谢。 PRAGMA语句是SQLITE数据的SQL扩展,是它独有的特性,主要用于修改SQLITE库或者内数据查询的操作。它采用与SELECT、INSERT等语句一样的形式来发出请求,但也有几个重要的不同:1. 特定的PRAGMA语句可能被移走,新的PRAGMA语句可能在新的版本中添加。因此,后向兼容无法保证。2. 未知的PRAGMA命令不会有错误消息出现,它只是简单的忽略。3. 有些PRAGMA只在SQL的编译阶段起作用,而不是执行阶段。 这意味着如果使用C语言,sqlite3_prepare(), sqlite3_step(), sqlite3_finalize()这几个API,pragma命令可能只在prepare()的调用里运行,而不是在后两个API当中执行。或
发布时间:2012-03-25 | 类别:MySQL|Others | 阅读:1654 | 评论:0 | 标签:SQLite

修改与破解MySQL root用户密码的几种方法

方法一使用phpmyadmin,这是最简单的了,修改mysql库的user表,不过别忘了使用PASSWORD函数。方法二使用mysqladmin,这是前面声明的一个特例。mysqladmin -u root -p password mypasswd输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。把命令里的root改为你的用户名,你就可以改你自己的密码了。当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,那么这种方法就是无效的,而且mysqladmin无法把密码清空。下面的方法都在mysql提示符下使用,且必须有mysql的root权限:方法三mysql> Insert INTO mysql.user (Host,U
发布时间:2012-03-25 | 类别:MySQL|Others | 阅读:2541 | 评论:0 | 标签:MySQL

SQLite中重复值的插入

sqlite> create table t(id integer primary key autoincrement, col2 varchar(32));  sqlite> insert into t values((select (max(rowid) % 8192 + 1) from t), 'fdasfaf');  sqlite> select * from t;  1|fdas
发布时间:2012-03-25 | 类别:MySQL|Others | 阅读:2457 | 评论:0 | 标签:SQLite

SQLite指南(0) 表和索引的文件存储结构 编辑

SQLite采用的是B+树来存储表中的索引和数据。B树的键及其值既存储在内部节点上,也存储在叶节点上,所有的叶节点具有相同的深度。B+树作了些微改变,键和数据会存储到叶节点上,并且按照键值排好序。而内部节点只存储键值。相当于有两条查找路径。SQLite从根叶开始创建B+树,一般从页1开始。它以独立的页来存储树节点,每页一个节点,这些页要分内部页还是叶子页。对于每个节点,任何项(数据)及其键值组合成一个payload, 每页都会预设一个payload值,当实际的payload超过此值时,超出的字节就会填充到溢出页,多余的payload会依次存储到溢出页形成的链表里。内部页和叶子页都可以有溢出页。SQLite的页结构:SQLite数据库文件是由固定大小的页组成的。 也就是说该文件大小肯定是页大小的整数倍。其中的B+
发布时间:2012-03-25 | 类别:MySQL|Others | 阅读:1733 | 评论:0 | 标签:SQLite

SQLite指南(6)-处理database is locked的方法

解决方法有:1。使用进程或线程间的同步机制以避免同时操作;如用信号量,互斥锁等(pthread_mutex_lock,pthread_mutex_unlock),如果你的项目工程较大要求较高的话建议用此方法自行封装函数处理同步2。使用sqlite提供的两个busy handler函数,但对于一个连接来说,只能有一个busy handle,两个函数会相互影响,设置一个的同时会清除另一个,应根据需要来选择。int sqlite3_busy_handler(sqlite3 *, int (*)(void *, int), void *)不注册此函数时默认回调函数为NULL,清除busy handle,申请不到锁直接返回;函数可以定义一个回调函数,当出现数据库忙时sqlite会调用该函数进行延时并返回非0会重试本次操作
发布时间:2012-03-25 | 类别:MySQL|Others | 阅读:1821 | 评论:0 | 标签:SQLite

做了一个Windows下自动下载安装MySQL(4.1,5.1,5.5)工具包

随然前边写了一篇:http://iihero.com/?id=16, 用于命令行下安装mysql非安装版。但总觉不够。我承认自己很懒,每次下载,并手动配置一些东西,很浪费时间。于是做了这么一个东东。直接将mysql_install_auto.zip解压到某盘,如d:\mysql_install_auto下边。然后进到d:\mysql_install_auto下边,使用命令行执行:mysql_install.bat [version] [port]这里[version]是版本号值,可是4.1, 5.1或者5.5,必须指定[port]值可以是3306或者3307,用于你的机器上已经安装了3306端口的mysql,想指定一个不同的端口时的情形。等待下载安装完成之后,应该会有一个mysql服务名为iihero
发布时间:2012-03-25 | 类别:MySQL|Others | 阅读:1920 | 评论:0 | 标签:MySQL

MySQL load_file然后用out file再还原成本地二进制文件

mysql> create table test(id int not null, context longblob);Query OK, 0 rows affected (0.14 sec)mysql> insert into test values(1, load_file(\'c:/juniper_log.jpg\'));Query OK, 1 row affected (0.22 sec)mysql> select length(context) from test;+-----------------+| length(context) |+-----------------+|           52884 |+---------
发布时间:2012-03-25 | 类别:MySQL|Others | 阅读:2316 | 评论:0 | 标签:MySQL

SQLite Blob读写的局限性

    在使用SQLite在Windows Mobile上的大容量BLOB读写时,遇到一个OOM的问题,让我们都觉得不可思议:     executeStmt(db, stmt, "create table foo(id integer not null primary key, content blob null, content2 blob null)");         sqlite3_stmt* stmt2 = NULL;     executeStmt(db, stmt, "insert in
发布时间:2012-03-25 | 类别:MySQL|Others | 阅读:1199 | 评论:0 | 标签:SQLite BLOB

公告

欢迎光临本站, SQL9.com,联系方式:
Tel:

欢迎使用SQL6生活搜索[由iihero labs提供]
天气|IP|身份证搜索|邮编|电话区号|JSON格式化

标签云