在没有大量阅读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全路径>,即可为你创建一个数据库文件。如果是sqlite3 demo.db,则会在当前目录为你创建该数据库。

Java代码

  1. D:\shared>sqlite3 d:\shared\demo\test.db

  2. SQLite version 3.7.6

  3. Enter ".help" for instructions

  4. Enter SQL statements terminated with a ";"

  5. sqlite> create table t(id int primary key, col2 varchar(32));

  6. sqlite> insert into t values(1, 'iihero');

  7. sqlite> insert into t values(2, '中国');

  8. sqlite> select * from t;

  9. 1|iihero

  10. 2|中国

  11. sqlite>

3.编写简单的使用SQLite的应用程序 
使用C-API来访问SQLite数据库:

Java代码

  1. #include <stdio.h>

  2. #include <sqlite3.h>

  3. static int callback(void *NotUsed, int argc, char **argv, char **azColName){

  4. int i;

  5. for(i=0; i<argc; i++){

  6. printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");

  7. }

  8. printf("\n");

  9. return 0;

  10. }

  11. int main(int argc, char **argv){

  12. sqlite3 *db;

  13. char *zErrMsg = 0;

  14. int rc;

  15. if( argc!=3 ){

  16. fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);

  17. exit(1);

  18. }

  19. rc = sqlite3_open(argv[1], &db);

  20. if( rc ){

  21. fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));

  22. sqlite3_close(db);

  23. exit(1);

  24. }

  25. rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);

  26. if( rc!=SQLITE_OK ){

  27. fprintf(stderr, "SQL error: %s\n", zErrMsg);

  28. sqlite3_free(zErrMsg);

  29. }

  30. sqlite3_close(db);

  31. return 0;

  32. }

逻辑很简单,就带两个参数,每一个参数为db文件的路径,第2个参数为要执行的sql语句。

设该文件为demo.c. 
编译,需要sqlite3.h, sqlite3.c以及这个demo.c 
下边看看我的整个编译及测试过程:

Java代码

  1. E:\learn\db_research\sqlite\sqlite_auto_build>cd sqlite-amalgamation-3070800

  2. E:\learn\db_research\sqlite\sqlite_auto_build\sqlite-amalgamation-3070800>cl -Gs -GX -D_WIN32 -nologo -Zi -DOS_WIN=1 -DSQLITE_DEBUG=1 -DWIN32=1 -DTHREADSAFE=1 -DSQLITE_OS_WIN=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_SOUNDEX=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -I. demo.c sqlite3.c -o demo.exe

  3. cl : Command line warning D9035 : option 'GX' has been deprecated and will be removed in a future release

  4. cl : Command line warning D9036 : use 'EHsc' instead of 'GX'

  5. cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release

  6. demo.c

  7. sqlite3.c

  8. Generating Code...

  9. E:\learn\db_research\sqlite\sqlite_auto_build\sqlite-amalgamation-3070800>dir demo.exe

  10. 驱动器 E 中的卷没有标签。

  11. 卷的序列号是 04EC-044E

  12. E:\learn\db_research\sqlite\sqlite_auto_build\sqlite-amalgamation-3070800 的目录

  13. 2011-09-27  21:32         1,221,120 demo.exe

  14. 1 个文件      1,221,120 字节

  15. 0 个目录  8,856,236,032 可用字节

  16. E:\learn\db_research\sqlite\sqlite_auto_build\sqlite-amalgamation-3070800>demo.exe d:\shared\demo\test.db  "create table t123(id int primary key, col2 varchar(32)); insert into t123 values(1, 'iihero')"

  17. E:\learn\db_research\sqlite\sqlite_auto_build\sqlite-amalgamation-3070800>d:\shared\sqlite3.exe d:\shared\demo\test.db

  18. SQLite version 3.7.6

  19. Enter ".help" for instructions

  20. Enter SQL statements terminated with a ";"

  21. sqlite> select * from t123;

  22. 1|iihero

  23. sqlite>

上边的例子,我并没有创建一个独立的VC工程,因为不过是几个源文件,加一条编译命令。没必要弄得那么烦琐。如果您有兴趣,也可以根据上边的编译命令,建立一个Win32 console工程,应该很简单。

至于tcl编译并绑定的示例,有兴趣的,可以自行下载http://www.sqlite.org/sqlite-autoconf-3070800.tar.gz, 并搭建tcl环境进行实验。

SQLite指南(3) - 5分钟了解熟悉SQLite相关推荐

  1. SQLite指南(1) -- SQLite的特性

    使用SQLite也有一段时日了,一直想整理出一份比较完整的SQLite指南,可惜时间总是不够.就从这里开始吧,能写多少就写多少. 总特性:  1. SQLite支持事务,满足(ACID)特性:atom ...

  2. SQLite 指南之FAQ(中文)

    1. 如何创建自增字段?  2. SQLite 支持哪些数据类型?  3. 为什么能向 SQLite 数据库的整型字段中插入字符串?  4. 为什么 SQLite 认为表达式 '0'=='00' 为真 ...

  3. SQLite指南(4) - FAQ列表(important)

    如若转载,请加上本文链接,以示尊重个人劳动,谢谢.  http://iihero.iteye.com/blog/1182108 本文严格整理自最新的:http://www.sqlite.org/faq ...

  4. SQLite 创建数据库(http://www.w3cschool.cc/sqlite/sqlite-create-database.html)

    SQLite 创建数据库 SQLite 的 sqlite3 命令被用来创建新的 SQLite 数据库.您不需要任何特殊的权限即可创建一个数据. 语法 sqlite3 命令的基本语法如下: $sqlit ...

  5. 一个可以编辑sqlite数据库的 数据库编辑小工具 sqlite数据库 替换字段,sql替换数据库中某个字段的所有值

    一个可以编辑sqlite数据库的 数据库编辑小工具,由于showdoc是不支持mysql数据库的,而我们需要去修改部分数据的时候需要用到sqlite数据库工具,因此这里推荐这个轻量工具: DB.Bro ...

  6. android sqlite fts4,FTS4 sqlite MATCH查询不起作用(FTS4 sqlite MATCH query not working)

    FTS4 sqlite MATCH查询不起作用(FTS4 sqlite MATCH query not working) 我有一个外部数据库,我使用sqlite 3版本3.13.0与2表这样. 我创建 ...

  7. mac新手教程:十分钟轻松熟悉操作Mac系统

    习惯了Windows系统,刚刚触摸到Mac电脑是不是感觉很不习惯呢?mac os是 苹果 公司为苹果品牌计算机打造的操作系统.如果您是初次接触Mac系统,那么不用紧张,建议您从这里开始学起.macw小 ...

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

    如若转载,请加上本文链接,以示尊重个人劳动,谢谢. PRAGMA语句是SQLITE数据的SQL扩展,是它独有的特性,主要用于修改SQLITE库或者内数据查询的操作.它采用与SELECT.INSERT等 ...

  9. SQLite指南(2) -- 帮助及编译SQLite

    关于SQLite的帮助,直接上http://www.sqlite.org/docs.html看即可.但是它不是单个文件形式的,唯一的好处就是更新比较及时.  如果你想看单个chm文件的,可以从我这里下 ...

最新文章

  1. css中div标签不置顶
  2. windows服务器连接linux nfs,windows设置通过NFS连接到Linux共享数据
  3. JavaScript中字符串去掉特殊字符和转义字符
  4. 京东网络接入体系解密之高性能四层网关DLVS
  5. 更改ubuntu的默认shell
  6. AngularJS集合数据遍历显示
  7. 软件设计原则(六)迪米特法则 -Law of Demeter
  8. 零中频接收机频率转换图_接收机抗噪声技术
  9. P4867-Gty的二逼妹子序列【平衡结合,莫队,分块】
  10. 随想录(做自己代码的测试工程师)
  11. spring mvc静态资源放行
  12. 计算机丢失d3dx935.dll,d3dx943.dll丢失的解决方法
  13. 惠普服务器装系统ESXI,在惠普服务器上安装ESXI 5.5卡在LSI_MR3.V00的解决方案
  14. 串口 单片机 文件_单片机引脚介绍
  15. 网络打印机计算机服务,在Windows7中添加网络打印机的解决方案提示“本地打印机后台处理程序服务未运行”...
  16. VS2010/MFC编程入门教程之目录和总结(鸡啄米)
  17. 云呐|医院医疗的IT设备信息化资产盘点管理系统
  18. java高效随机生成随机(英文+数字),可自定义
  19. L1-051 打折 (5 分) pta天梯赛 详解
  20. 从西安到深圳——一路向南

热门文章

  1. python字符串的删除操作_Python字符串操作
  2. Android UI开发第四十篇——ScrollTricks介绍
  3. Git学习系列(五)分支管理详解
  4. myeclipse新建JSP中DOCTYPE问题
  5. jsp或java中前后台传值乱码解决
  6. 深入动态人脸识别小场景应用,2019年或将迎来爆发期
  7. 账户注销完自动登录账户,并且不需要再点击屏幕的账户头像
  8. 移动办公之路的行业探索
  9. Openstack M版快速配置(二)--刷数据库
  10. DES加密/解密类。