-
SQLite v3.47.0官方版
C语言库
- 大小 3MB
- 更新时间 2024-11-05
- 类别 运行库
- 版本 3.47.0
- 系统 Win11/Win10/Win8...
软件简介
SQLite是一种C语言库,具有小型、快速、自包含、高可靠性等优势,是功能齐全的SQL数据库引擎。SQLite内置于所有手机和大多数计算机中,并捆绑在每天使用的无数其他应用程序中。
SQLite文件格式稳定,跨平台且向后兼容,SQLite数据库文件通常用作在系统之间传输丰富内容的容器,以及用作数据的长期归档格式。
SQLite是一个进程库,也是是世界上部署广泛的数据库,其应用程序数量超出我们的想象。
SQLite是嵌入式SQL数据库引擎。与大多数其他SQL数据库不同,SQLite没有单独的服务器进程。SQLite直接读取和写入普通磁盘文件。具有多个表,索引,触发器和视图的完整SQL数据库包含在单个磁盘文件中。数据库文件格式是跨平台的-您可以在32位和64位系统之间或在big-endian和 little-endian 体系结构之间自由复制数据库。这些功能使SQLite成为应用程序文件格式的流行选择。
SQLite是一个紧凑的库。启用所有功能后,库大小可以小于600KiB,具体取决于目标平台和编译器优化设置。(64位代码更大。某些编译器优化(例如激进的函数内联和循环展开可能会使目标代码变得更大)。)在内存使用和速度之间需要权衡。SQLite通常为您提供的内存越多,运行速度就越快。但是,即使在低内存环境下,性能通常也相当不错。根据使用方式,SQLite可能 比直接文件系统I / O更快。
SQLite 在每个发行版之前都经过了非常仔细的测试,SQLite可以对内存分配失败和磁盘I / O错误做出优雅响应。交易为 ACID 即使由于系统崩溃或电源故障而中断。所有这些都通过使用特殊的测试工具(模拟系统故障)的自动化测试进行了验证。当然,即使进行了所有这些测试,仍然存在错误。但是与某些类似的项目(尤其是商业竞争对手)不同,SQLite对所有错误都开放且诚实,并提供了错误列表和每分钟的代码更改时间顺序。
SQLite代码库由一支全职从事SQLite工作的国际开发人员团队支持。开发人员将继续扩展SQLite的功能并增强其可靠性和性能,同时保持与已发布的接口规范,SQL语法和数据库文件格式的向后兼容性。源代码对于任何想要它的人都是绝对免费的,但也可以提供专业支持。
操作方法:
下载代码
获取适用于您计算机的预编译二进制文件的副本,或者获取源代码的副本并自己进行编译。访问下载页面以获取更多信息。
创建一个新的数据库
在shell或DOS提示符下,输入:“ sqlite3 test.db ”。这将创建一个名为“ test.db”的新数据库。(如果愿意,可以使用其他名称。)
在提示符下输入SQL命令以创建并填充新数据库。
编写使用SQLite的程序
下面是一个简单的 TCL程序,该程序演示了如何将TCL接口用于SQLite。程序在由第一个参数定义的数据库上执行作为第二个参数给出的SQL语句。要监视的命令是第7行的sqlite3命令,该命令打开一个SQLite数据库并创建一个名为“ db ”的新对象来访问该数据库,并在第8行的db对象上使用eval方法对SQLite运行SQL命令。数据库,并在脚本的最后一行关闭数据库连接。
01#!/ usr / bin / tclsh
02如果{$ argc!= 2} {
03将stderr放入“用法:%s DATABASE SQL-STATEMENT”
04出口1
05}
06套餐需要sqlite3
07 sqlite3 db [lindex $ argv 0]
08 db eval [lindex $ argv 1] x {
09 foreach v $ x(*){
10看跌“ $ v = $ x($ v)”
11}
12把“”
13}
14 分贝关闭
下面是一个简单的C程序,演示了如何使用C / C ++接口连接SQLite。数据库的名称由第一个参数指定,第二个参数是要针对该数据库执行的一个或多个SQL语句。这里要注意的函数调用是第22行的sqlite3_open()打开数据库的调用,第28行的sqlite3_exec()对数据库执行SQL命令,第33行的sqlite3_close()关闭数据库连接。
另请参阅《 SQLite C / C ++接口简介》,以获取有关数十种SQLite接口功能的介绍性概述和路线图。
01 #include
02 #include
03
04 static int callback(void * NotUsed,int argc,char ** argv,char ** azColName){
05 int i;
06 for(i = 0; i
07 printf(“%s =%s \ n”,azColName [i],argv [i]?argv [i]:“ NULL”);
08}
09 printf(“ \ n”);
10返回0;
11}
12
13 int main(int argc,char ** argv){
14 sqlite3 * db;
15个字符* zErrMsg = 0;
16 int rc;
17
18 if(argc!= 3){
19 fprintf(stderr,“用法:%s DATABASE SQL-STATE \ n”,argv [0]);
20 return(1);
21}
22 rc = sqlite3_open(argv [1],&db);
23 if(rc){
24 fprintf(stderr,“无法打开数据库:%s \ n”,sqlite3_errmsg(db));
25 sqlite3_close(db);
26 return(1);
27}
28 rc = sqlite3_exec(db,argv [2],callback,0,&zErrMsg);
29 if(rc!= SQLITE_OK){
30 fprintf(stderr,“ SQL错误:%s \ n”,zErrMsg);
31 sqlite3_free(zErrMsg);
32}
33 sqlite3_close(db);
34返回0;
35}