前言
最近视频监控项目用到sqlite3数据库存储设备信息,从DVR中读取设备信息写入数据库,然后另一方读设备信息并上传至管理平台。写数据库用c++实现,而读取则用java实现。先通过c++练习如何简单操作sqlite3,自然需要相关头文件、静态库和动态库。
一、准备工作
官网点击打开链接下载的
sqlite-dll-win32-x86-3160100.zip,包含sqlite3.def文件、sqlite3.dll文件,解压至D:\sqlite3文件夹;
sqlite-tools-win32-x86-3160100.zip包含sqlite3.exe等数据库执行文件,解压至D:\sqlite3文件夹。
二、编译生成sqlite3.lib
从C:\Program Files\Microsoft Visual Studio 12.0\VC\bin(我的本地VS2013安装目录)拷贝 lib.exe, link.exe 和 mspdb120.dll 三个文件 至D:\sqlite3文件夹;
在该文件夹内按住shift键和鼠标右键,选择“在此处打开命令窗口”,进入命令行窗口界面
输入下述命令:
d:\sqlite3> lib.exe /MACHINE:IX86 /DEF:sqlite3.def /OUT:sqlite3.lib
执行后,在该文件夹内生成sqlite3.lib和sqlite3.exp文件,成功。
三、运行sqlite3
打开环境变量项PATH,在值后追加sqlite3.exe所在路径:;D:\sqlite3
打开命令行窗口并输入: sqlite3
运行后提示:
表示运行成功。
四、创建数据库testDB.db并查看
在D:\sqlite3中新建文件夹db,在该文件夹内按住shift点击鼠标右键,进入cmd窗口,输入以下指令:
sqlite3 testDB.db
回车后,就创建数据库testDB.db,我的电脑中文件生成路径为C:\Users\Administrator\testDB.db。
随后运行指令:
sqlite> .databases
可以看到输出信息:
main: D:\sqlite3\db\testDB.db
在sqlite>前缀符前输入 .quit,即可退出命令行输入。
五、创建数据表
进入数据库testDB.db : sqlite3 testDB.db (注意打开的是默认路径的库文件C:\Users\Administrator\testDB.db,可以指定绝对路径库文件)
创建数据表: sqlite> CREATE TABLE user(
ID INTEGER PRIMARY KEY NOT NULL,
NAME TEXT,
SALARY REAL);
查看当前库中临时数据表命令: .tables
如果此时直接输入命令:.quit 或 按 CTRL + C退出,此临时表并不会写入数据库testDB.db中,下次登录会发现数据表未创建。
使数据表生效的命令为:.schema user_ , 意思为主表中保存数据库表的关键信息,并把它命名为 user_。
而查看一个表的结构也是:
sqlite> .schema user_
六、插入数据
进入数据库testDB.db: sqlite3 testDB.db
查看数据库:
sqlite> .tables
查看数据表结构:
sqlite> .schema user_
插入数据:
sqlite> insert into user_ values( 1, 'fst', '10500.00);
七、查询数据
为更好在命令行窗口中显示数据,可以临时设置显示效果,命令如下:
sqlite> .header on
sqlite> .mode column
sqlite> .timer on
查询并显示指令:
sqlite> select * from user_;
八、 删除数据行
sqlite> delete from user_ where ID=1;
而清空数据表全部数据为:
sqlite> delete from user_;
九、 修改/更新数据
sqlite> update user set SALARY=11000.00 where NAME='fst';