较全面的sqlite数据库汇总博客

前端之家收集整理的这篇文章主要介绍了较全面的sqlite数据库汇总博客前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

http://iihero.iteye.com/category/151894?show_full=true

文章列表

在使用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,"insert into foo(id) values(10)"); ...
解决方法有: 1。使用进程或线程间的同步机制以避免同时操作;如用信号量,互斥锁等(pthread_mutex_lock,pthread_mutex_unlock),如果你的项目工程较大要求较高的话建议用此方法自行封装函数处理同步 2。使用sqlite提供的两个busy handler函数,但对于一个连接来说,只能有一个busy handle,两个函数会相互影响,设置一个的同时会清除另一个,应根据需要来选择。 int sqlite3_busy_handler(sqlite3 *,int (*)(void *,int),void *) 不注册函数时默认回调函数为NULL,清除busy han ...
如若转载,请加上本文链接,以示尊重个人劳动,谢谢。 PRAGMA语句是sqlITE数据的sql扩展,是它独有的特性,主要用于修改sqlITE库或者内数据查询的操作。它采用与SELECT、INSERT等语句一样的形式来发出请求,但也有几个重要的不同: 1. 特定的PRAGMA语句可能被移走,新的PRAGMA语句可能在新的版本中添加。因此,后向兼容无法保证。 2. 未知的PRAGMA命令不会有错误消息出现,它只是简单的忽略。 3. 有些PRAGMA只在sql的编译阶段起作用,而不是执行阶段。 这意味着如果使用C语言,sqlite3_prepare(),sqlite3_step(),sqlite ...
如若转载,请加上本文链接,以示尊重个人劳动,谢谢。本文严格整理自最新的:http://www.sqlite.org/faq.html,(3.7.8) (多说一句,看一个系统的发布,经常首先要看的就是,readme,新特性,然后就是FAQ列表,即所谓的常见问题列表) 1. 如何创建一个自增字段(autoincrement)? 在sqlite中,创建一个integer primary key,即可让它自增,太变态了。创建了该类型字段以后,即算你插入NULL值,NULL也会自动转为最后一次插入的值+1。最大可能的整数值为9223372036854775807,越过此值后,将会随机生成一个值。 ...
在没有大量阅读sqlite在线文档并且不了解相关配置之前,几分钟的时间可以让你快速了解sqlite. 1. 下载源代码,你总能从http://www.sqlite.org/download.html 这里下载到最新的sqlite发行版本对应的源码。 2. 创建数据库你可以从http://www.sqlite.org/download.html这里下载到sqlite3.exe,也可以直接依据下文: http://iihero.iteye.com/blog/1175595,自己动手编译出该可执行文件。进到cmd窗口,进到sqlite3所在目录,执行sqlite3 <demo.db全路径&g ...
关于sqlite的帮助,直接上http://www.sqlite.org/docs.html看即可。但是它不是单个文件形式的,唯一的好处就是更新比较及时。如果你想看单个chm文件的,可以从我这里下载单个chm文件: http://download.csdn.net/detail/iihero/2890372 至于编译sqlite,如果只是出于学习的目的,完全可以只在windows下编译。我甚至还为此写了一个自动下载并编译的脚本,参看: http://iihero.iteye.com/blog/1175595 脚本里边的wget.exe,7z.dll,7z.exe。前者来源于http:/ ...
使用sqlite也有一段时日了,一直想整理出一份比较完整的sqlite指南,可惜时间总是不够。就从这里开始吧,能写多少就写多少。总特性: 1. sqlite支持事务,满足(ACID)特性:atomic,consistent,isolated,durable。即使在系统crash掉或者掉电的情况下,一样可以恢复。 2. 0配置,不需要安装或者初始化管理即可使用。(不就是嵌入式应用吗?:)) 3. 整个数据库存储在跨平台的磁盘文件里头,何谓跨平台,就是说这个文件放到任意平台上,都可以用相同版本的sqlite打开(这个确实强大,目前,即算商用的大型DBMS,其数据文件也没几个是跨平台的,越大越 ...
从http://dbeaver.jkiss.org/下载了一个DBeaver1.4版,该软件完全免费,功能与DBVisualizer相比,稍差一些,但是简单易用,运行效率似乎要高一些。这里以Sybase ASA,Sybase ASE,MysqL为例,介绍一下它的简单配置和使用。 1. 下载http://dbeaver.jkiss.org/ DBeaver1.4 我向来只使用解压缩版:http://dbeaver.jkiss.org/files/dbeaver-1.4.0-win32.win32.x86.zip 2. 将其解到d:\tools,这样会有一个根目录dbeaver,里边有 ...
sqlite采用的是B+树来存储表中的索引和数据。 B树的键及其值既存储在内部节点上,也存储在叶节点上,所有的叶节点具有相同的深度。 B+树作了些微改变,键和数据会存储到叶节点上,并且按照键值排好序。而内部节点只存储键值。相当于有两条查找路径。 sqlite从根叶开始创建B+树,一般从页1开始。它以独立的页来存储树节点,每页一个节点,这些页要分内部页还是叶子页。对于每个节点,任何项(数据)及其键值组合成一个payload,每页都会预设一个payload值,当实际的payload超过此值时,超出的字节就会填充到溢出页,多余的payload会依次存储到溢出页形成的链表里。内部页和叶子页都可以有溢出 ...
好久没有光顾sqlite了,没想到已经到了3.7.8了。以前手动下载,并且建工程,编译,挺浪费时间的。干脆用wget,7z,结合批处理,整理成一个可以下载并编译成dll和exe的脚本。运行脚本之前,请先将vs2008的vcvar运行一下,得到vc的编译环境。内容如下: @echo off set version=%1 set os_cpu=win32-x86 rem rem from sqlite3.7.4,rem sqlite3-product-version.zip rem sqlite3-product-version.tar.gz rem sqlite3-p ...
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|fdasfaf sqlite> replace into t values((select (max(rowid) % 10 + 1) from t),'k9'); sqlite> ...
如若转载,请务必注明出处。iihero 2008.9.26于CSDN 本来想写写MS sql Server的发展历史。但想想,基本上在谈Sybase ASE的时候,也把它都谈到了。MS sql Server发展到现在,确实是非常的成功。 它的传播面很广,总结起来,有几点: 1. 似乎盗版传播很容易,一个序列号破解,就可以无限期使用。对于Sybase ASE,简直是不可能的事。它的license策略极为严格,因而安全度也极高。 2. 用起来,GUI的方式被微软引导了很多个,想不习惯也难。你用长了微软的那一套界面,再去用用Oracle的,Sybase的,或者IBM ...
如若转载,请尊重个人劳动,务必注明出处。 iihero 2008.9.26于CSDN 本来,应该把Teradata放到第4篇的,因为它的市场份额快与Sybase ASE差不多了。也算是数据库大厂商了。 1979年7月Teradata成立于Calif的Brentwood的一个车库里。在美国,那些IT名企,好多都始于车库,MS,苹果,google,Yahoo好像都是:-),这个名字的本意就是想支持Tera bytes数据的存储。虽然,现在TB级的数据库也蛮多的,那时可没有。也算是有雄心壮志了。 1980年,风投来了,开始一笔是给了150K$,后来又来了一笔,2.5M$,这下 ...
第一次用Postgre,已经是好多年以前了,隐约记得是在linux下边,build半天,然后手动配置库文件之类。今天在整理资料的时候发现,Postgre出现了解压缩直接使用的版本,上边注明了for expert only. 呵呵,看来,不推荐生手使用。为了试验一把,索性从它的官网上直接下载了一份postgresql-8.3.3-1-binaries-no-installer.zip 1. 将其解压到d:\pgsql8.3.3 2. 设置环境变量,我不想直接添加,而是写到了一个batch文件里,名为pgenv.bat set PGHOME=d:\pgsql8.3.3set PA ...
1. 如何创建自增字段? 2. sqlite 支持哪些数据类型? 3. 为什么能向 sqlite 数据库的整型字段中插入字符串? 4. 为什么 sqlite 认为表达式 '0'=='00' 为真? 5. 为什么 sqlite 不允许在同一张表里使用 '0' 和 '0.0' 作为两个不同的行的主键? 6. 为什么不能在 Linux Box 中读取在 SparcStation 中创建的 sqlite 数据库? 7. 多个应用程序或者同一个应用程序的多个例程能同时存取同一个数据库文件吗? 8. sqlite是线程安全的吗? 9. 如何列出一个 sqlite 数据库中的所有的表/索引? 10. sqli ...
sqlite(版本3),以下简称sqlite3,目前功能已经非常强大。目前支持的字符集,包括UTF-8,UTF-16,UTF-16le,UTF-16be。可是在我们直接使用gbk编码的时候,很可能就会遇到问题。因为目前,很多人会使用c/c++接口来访问sqlite3数据库,当然,也有人使用python接口来访问它。1. 使用python时,要想正确的取到c++接口insert/update以后的数据,需要设定Connection的text_factory值为str,意思是直接使用原来存储时的encoding形式。 con=sqlite3.connect(r"e:\t\test ...
作为初学才,学起python,是挺快,但是也不免常常出些小错。在访问sqlite3的时候,我写了下边的测试代码文件test.py是utf-8编码的,OK,结果没问题。 #!/usr/bin/envpython#coding=utf-8importsqlite3#con=sqlite3.connect(r"sqlite.db")con=sqlite3.connect(r"e: estsqlite3.db")#con.text_factory=strcur=con.cursor()#cur.execute("insertintobasv ...
使用jdbc测了一下sqlite3的插入数据的效率,使用整体事务与不使用整体事务,差别非常明显。 cpu: 1G,内存:512MB使用整体事务:1000000条记录,需要93秒钟。使用逐个插入提交事务:1秒钟只能处理20条记录。启动程序时把java堆最大空间设大一些,不然可能出现内存不够的异常。java -Xmx256M TestConn测试后的结果显示如下: 以下是测试代码:import java.sql.*; public class TestConn {void test(){Connection conn = null;Statement stmt = null;ResultS ...

猜你在找的Sqlite相关文章