SQLite
文章平均质量分 64
iihero
微信:_iihero 原创文章集中在公众号: 数据库杂记
SAP研究院数据库技术专家, PostgreSQL ACE
涉猎于Sybase,Oracle,HANA,MySQL等多种数据库。
三本著作:<Java2网络协议内幕><OracleSpatial及OCI高级编程>
<SybaseASE15.X In Action>
同时也是中国武术六段 陈式太极拳教练 国家一级段位考评员
北京陈式太极拳研究会副秘书长
也欢迎联系我学太极拳,强身健体!
展开
-
聊聊装机使用量最大的SQLite数据库
我曾经在DuckDB与PostgreSQL结合一下,PostgreSQL会如虎添翼一文中简要提过DuckDB与SQLite两者之间的关系。在嵌入式开源数据库里头,SQLite是绝对的OLTP的王者,而DuckDB则是或者将是OLAP的王者。本文就简单聊聊SQLite数据库。SQLite的代码质量非常高,一个重要的保证是它的测试覆盖率几乎100%。这种要求尽乎苛刻。盈利思路也非常明确。以它目前的财务状况,很容易支撑到20年后。但是有很重要的一点是,它的专业服务与支持是它生存的亮点。原创 2024-04-08 08:49:39 · 1264 阅读 · 1 评论 -
写了一个sqlite自动下载并编译的批处理脚本(windows下)
好久没有光顾sqlite了,没想到已经到了3.7.8了。以前手动下载,并且建工程,编译,挺浪费时间的。干脆用wget, 7z, 结合批处理,整理成一个可以下载并编译成dll和exe的脚本。运行脚本之前,请先将vs2008的vcvar运行一下,得到vc的编译环境。内容如下:[code="java"]@echo offset version=%1set os_cpu=w...原创 2011-09-20 08:53:00 · 293 阅读 · 1 评论 -
SQLite指南(0) 表和索引的文件存储结构
SQLite采用的是B+树来存储表中的索引和数据。B树的键及其值既存储在内部节点上,也存储在叶节点上,所有的叶节点具有相同的深度。B+树作了些微改变,键和数据会存储到叶节点上,并且按照键值排好序。而内部节点只存储键值。相当于有两条查找路径。SQLite从根叶开始创建B+树,一般从页1开始。它以独立的页来存储树节点,每页一个节点,这些页要分内部页还是叶子页。对于每个节点,任何项(数据...原创 2011-09-20 21:56:07 · 323 阅读 · 1 评论 -
SQLite指南(1) -- SQLite的特性
使用SQLite也有一段时日了,一直想整理出一份比较完整的SQLite指南,可惜时间总是不够。就从这里开始吧,能写多少就写多少。[b]总特性:[/b]1. SQLite支持事务,满足(ACID)特性:atomic, consistent, isolated, durable。即使在系统crash掉或者掉电的情况下,一样可以恢复。2. 0配置,不需要安装或者初始化管理即可使用。(不就...原创 2011-09-27 13:34:21 · 177 阅读 · 1 评论 -
SQLite指南(2) -- 帮助及编译SQLite
关于SQLite的帮助,直接上http://www.sqlite.org/docs.html看即可。但是它不是单个文件形式的,唯一的好处就是更新比较及时。如果你想看单个chm文件的,可以从我这里下载单个chm文件:http://download.csdn.net/detail/iihero/2890372至于编译SQLite,如果只是出于学习的目的,完全可以只在windows下编译...原创 2011-09-27 14:04:44 · 121 阅读 · 1 评论 -
SQLite指南(3) - 5分钟了解熟悉SQLite
在没有大量阅读SQLite在线文档并且不了解相关配置之前,几分钟的时间可以让你快速了解SQLite.1. 下载源代码,你总能从http://www.sqlite.org/download.html 这里下载到最新的SQLite发行版本对应的源码。2. 创建数据库你可以从http://www.sqlite.org/download.html这里下载到sqlite3.exe,也可以...原创 2011-09-28 07:18:56 · 146 阅读 · 1 评论 -
SQLite指南(4) - FAQ列表(important)
如若转载,请加上本文链接,以示尊重个人劳动,谢谢。本文严格整理自最新的:http://www.sqlite.org/faq.html, (3.7.8) (多说一句,看一个系统的发布,经常首先要看的就是,readme, 新特性,然后就是FAQ列表, 即所谓的常见问题列表)1. 如何创建一个自增字段(autoincrement)?在sqlite中,创建一个integer prima...原创 2011-09-30 07:53:06 · 228 阅读 · 1 评论 -
SQLite指南(5) - PRAGMA命令用法(完整)
如若转载,请加上本文链接,以示尊重个人劳动,谢谢。 PRAGMA语句是SQLITE数据的SQL扩展,是它独有的特性,主要用于修改SQLITE库或者内数据查询的操作。它采用与SELECT、INSERT等语句一样的形式来发出请求,但也有几个重要的不同:1. 特定的PRAGMA语句可能被移走,新的PRAGMA语句可能在新的版本中添加。因此,后向兼容无法保证。2. 未知的PRAGMA命令不...原创 2011-10-11 14:55:26 · 2023 阅读 · 1 评论 -
SQLite中重复值的插入
[code="java"]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...原创 2011-09-13 13:22:36 · 433 阅读 · 1 评论 -
SQLite 指南之FAQ(中文)
1. 如何创建自增字段? 2. SQLite 支持哪些数据类型? 3. 为什么能向 SQLite 数据库的整型字段中插入字符串? 4. 为什么 SQLite 认为表达式 '0'=='00' 为真? 5. 为什么 SQLite 不允许在同一张表里使用 '0' 和 '0.0' 作为两个不同的行的主键? 6. 为什么不能在 Linux box 中读取在 SparcStation 中创建的 SQLite ...原创 2008-09-05 09:55:00 · 117 阅读 · 1 评论 -
sqlite3 jdbc、c接口、python接口处理中文时遇到的问题及其解决方法
sqlite(版本3),以下简称sqlite3,目前功能已经非常强大。目前支持的字符集,包括UTF-8, UTF-16,UTF-16le,UTF-16be。可是在我们直接使用gbk编码的时候,很可能就会遇到问题。因为目前,很多人会使用c/c++接口来访问sqlite3数据库,当然,也有人使用python接口来访问它。1. 使用python时,要想正确的取到c++接口insert/update以...原创 2008-03-03 12:41:00 · 120 阅读 · 1 评论 -
发布sqlite在win下自动下载编译开源项目
为了维护方便,将其开源了。 代码在:http://code.google.com/p/sqlite-autobuild-win/原理比较简单:提供一下版本号,执行脚本sqlite_build.bat 时,会自动从sqlite官网上下载相关源码,最终为你编译生成你要的sqlite3.dll以及独立的sqlite3.exe。同时你也拥有完整的源代码,非常方便。目前支持如下版本号:3_6_163_6_2原创 2013-12-28 10:37:25 · 2805 阅读 · 0 评论 -
使用SQL语句获取SQLite中的表定义
1. 问题提出有人问,在sqlite中怎么用sql语句得到一个表的列定义语句。第一反应,可能就是用.schema 可是这是sqlite的shell命令行。使用代码,好像得不到结果。幸好,sqlite它有比较特殊的系统表:sqlite_mastersqlite_temp_master这两张系统表的表结构完全相同,如下所示:sqlite> .schema sqlite_masterCREATE TA原创 2013-12-11 11:23:25 · 6123 阅读 · 0 评论 -
数据库设计常见问题、基本惯用法及规范(总结)
如果转载本文,请注明出处以示尊重个人劳动, (iihero@CSDN):http://blog.csdn.net/iihero/article/details/8210516, 谢谢。1. 概述近几年,在各数据库论坛以及别的场合,有很多人问起这类问题或是遇到此类问题。有命名方面的,有表结构设计方面的,有针对关系范式争论的,有是否要求使用约束、触发器和存储过程的,当然,也有基于建模工具来建模的,如原创 2012-11-22 07:28:05 · 4173 阅读 · 0 评论 -
sqlite3 jdbc、c接口、python接口处理中文时遇到的问题及其解决方法
sqlite(版本3),以下简称sqlite3,目前功能已经非常强大。目前支持的字符集,包括UTF-8, UTF-16,UTF-16le,UTF-16be。可是在我们直接使用gbk编码的时候,很可能就会遇到问题。因为目前,很多人会使用c/c++接口来访问sqlite3数据库,当然,也有人使用python接口来访问它。1. 使用python时,要想正确的取到c++接口insert/update以后的原创 2008-03-03 12:41:00 · 3474 阅读 · 0 评论 -
数据访问技术路线图(ADO与ADO.NET自由转换)
数据访问技术路线图发布日期: 3/22/2005 | 更新日期: 3/22/2005Prash Shirolkar, AuthorAlyssa Henry, ContributorStephen Pepitone, ContributorAcey J. Bunch, ContributorMicrosoft Corporation摘要:了解 Microsoft 数据访问技术的过去、现在和未来。本页原创 2005-12-15 19:04:00 · 3068 阅读 · 0 评论 -
SQLite Blob读写的局限性
在使用SQLite在Windows Mobile上的大容量BLOB读写时,遇到一个OOM(Out Of Memory)的问题,让我们都觉得不可思议: 试看下边的SQL语句代码片段: executeStmt(db, stmt, "create table foo(id integer not null primary key, content blob null, content2 blob原创 2012-04-28 11:50:27 · 5868 阅读 · 0 评论 -
Comparison of different SQL implementations(整理)
Comparison of different SQL implementationsThe goal of this page — which is a work in progress — is to gather information relevant for people who are porting SQL from one product to another and/or are转载 2010-05-15 10:02:00 · 3989 阅读 · 0 评论 -
SQLite 指南之FAQ(中文)
1. 如何创建自增字段? 2. SQLite 支持哪些数据类型? 3. 为什么能向 SQLite 数据库的整型字段中插入字符串? 4. 为什么 SQLite 认为表达式 '0'=='00' 为真? 5. 为什么 SQLite 不允许在同一张表里使用 '0' 和 '0.0' 作为两个不同的行的主键? 6. 为什么不能在 Linux box 中读取在 SparcStation 中创建的 SQLite原创 2008-09-05 09:55:00 · 2503 阅读 · 0 评论 -
删除数据库(ASE/ASA/Oracle)表中的重复行(小结)
本文为iihero原创,如若转载,请注明出处。谢谢。 为简化问题:设表:t(id int, col2 varchar(32)) 1. ASE: 选出重复的行:select * from t group by id, col2 having count(*)>1删掉重复的行,alter table t add col3 int identity not null;delete from t wher原创 2010-04-06 22:57:00 · 1941 阅读 · 1 评论 -
ADO在.NET应用程序中挥洒自如
ADO 在 .NET 应用程序中挥洒自如发布日期: 4/1/2004 | 更新日期: 4/1/2004Dino Esposito2001 年 2 月 22 日下载 Data02222001.exe。软件地质学家声称这种岩石起源于后 Internet 时代,即在第一次 ODBC 冰河期后出现。在过去的数年时间里建立的所有 DNA 系统中,都多次发现了这种矿石代码 — 在这段时间里,无疑存在地质学时代原创 2005-12-15 19:09:00 · 2345 阅读 · 1 评论 -
sqlite3数据库的性能问题报告
使用jdbc测了一下sqlite3的插入数据的效率,使用整体事务与不使用整体事务,差别非常明显。 cpu: 1G, 内存:512MB使用整体事务:1000000条记录,需要93秒钟。使用逐个插入提交事务:1秒钟只能处理20条记录。启动程序时把java堆最大空间设大一些,不然可能出现内存不够的异常。java -Xmx256M TestConn测试后的结果显示如下:以下是测试代码:import jav原创 2005-07-02 19:00:00 · 2873 阅读 · 0 评论 -
SQLite指南(1) -- SQLite的特性
使用SQLite也有一段时日了,一直想整理出一份比较完整的SQLite指南,可惜时间总是不够。就从这里开始吧,能写多少就写多少。总特性:1. SQLite支持事务,满足(ACID)特性:atomic, consistent, isolated, durable。即使在系统crash掉或者掉电的情况下,一样可以恢复。2. 0配置,不需要安装或者初始化管理即可使用。(不就是嵌入式应用吗?:))3. 整原创 2012-11-15 20:10:24 · 1232 阅读 · 0 评论 -
SQLite指南(4) - FAQ列表(important)
如若转载,请加上本文链接,以示尊重个人劳动,谢谢。本文严格整理自最新的:http://www.sqlite.org/faq.html, (3.7.8) (多说一句,看一个系统的发布,经常首先要看的就是,readme, 新特性,然后就是FAQ列表, 即所谓的常见问题列表)1. 如何创建一个自增字段(autoincrement)?在sqlite中,创建一个integer primary key,即可让原创 2012-11-15 20:13:20 · 2628 阅读 · 0 评论 -
SQLite指南(2) -- 帮助及编译SQLite
关于SQLite的帮助,直接上http://www.sqlite.org/docs.html看即可。但是它不是单个文件形式的,唯一的好处就是更新比较及时。如果你想看单个chm文件的,可以从我这里下载单个chm文件:http://download.csdn.net/detail/iihero/2890372至于编译SQLite,如果只是出于学习的目的,完全可以只在windows下编译。我甚至还为此写原创 2012-11-15 20:11:10 · 1058 阅读 · 0 评论 -
SQLite指南(3) - 5分钟了解熟悉SQLite
在没有大量阅读SQLite在线文档并且不了解相关配置之前,几分钟的时间可以让你快速了解SQLite.1. 下载源代码,你总能从http://www.sqlite.org/download.html 这里下载到最新的SQLite发行版本对应的源码。2. 创建数据库你可以从http://www.sqlite.org/download.html这里下载到sqlite3.exe,也可以直接依据下文:htt原创 2012-11-15 20:11:56 · 1448 阅读 · 0 评论 -
SQLite指南(5) - PRAGMA命令用法(完整)
如若转载,请加上本文链接,以示尊重个人劳动,谢谢。 PRAGMA语句是SQLITE数据的SQL扩展,是它独有的特性,主要用于修改SQLITE库或者内数据查询的操作。它采用与SELECT、INSERT等语句一样的形式来发出请求,但也有几个重要的不同:1. 特定的PRAGMA语句可能被移走,新的PRAGMA语句可能在新的版本中添加。因此,后向兼容无法保证。2. 未知的PRAGMA命令不会有错误消息出现原创 2012-11-15 20:14:06 · 9776 阅读 · 1 评论 -
SQLite指南(6)-处理database is locked的方法
解决方法有:1。使用进程或线程间的同步机制以避免同时操作;如用信号量,互斥锁等(pthread_mutex_lock,pthread_mutex_unlock),如果你的项目工程较大要求较高的话建议用此方法自行封装函数处理同步2。使用sqlite提供的两个busy handler函数,但对于一个连接来说,只能有一个busy handle,两个函数会相互影响,设置一个的同时会清除另一个,应根据需要来原创 2012-11-15 20:14:54 · 3084 阅读 · 0 评论 -
DBeaver数据库管理工具连接Sybase数据库使用体验
从http://dbeaver.jkiss.org/下载了一个DBeaver1.4版,该软件完全免费,功能与DBVisualizer相比,稍差一些,但是简单易用,运行效率似乎要高一些。这里以Sybase ASA, Sybase ASE, MySQL为例,介绍一下它的简单配置和使用。1. 下载http://dbeaver.jkiss.org/ DBeaver1.4 我向来只使用解压缩版:http原创 2012-11-15 20:16:41 · 21705 阅读 · 1 评论 -
数据库各厂商发展历史之(7. 补记: SAP MaxDB)
如若转载,请务必注明出处,尊重个人劳动。iihero 2010.5.18 于CSDN原本以为会在MySQL的发展历史里交代清楚,才发现,MaxDB在MySQL的发展过程中只是一个过客。 本文写于SAP收购Sybase之际,是想说明SAP公司自身也有一款数据库,叫MaxDB。 MaxDB是一种大型高效的企业数据库。数据库管理通过了SAP认证。MaxDB是数据库管理系统的新名称,以前称为SAP DB。原创 2010-05-18 07:17:00 · 3597 阅读 · 0 评论