SQLite是一个非常轻量级自包含(lightweight and self-contained)的DBMS,它可移植性好,很容易使用,很小,高效而且可靠。SQLite嵌入到使用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。从外部看,它并不像一个RDBMS,但在进程内部,它却是完整的,自包含的数据库引擎。
嵌入式数据库的一大好处就是在你的程序内部不需要网络配置,也不需要管理。因为客户端和服务器在同一进程空间运行。SQLite 的数据库权限只依赖于文件系统,没有用户帐户的概念。SQLite 有数据库级锁定,没有网络服务器。它需要的内存,其它开销很小,适合用于嵌入式设备。你需要做的仅仅是把它正确的编译到你的程序。
下面将介绍SQLite的使用:
一、创建SQLite数据库
1、手工创建
使用sqlite3 工具,通过手工输入SQL命令完成数据库创建,用户在Linux 的命令行界面中输入 sqlite3 可启动 sqlite3工具。
2、代码创建
在代码中动态创建数据库。
在程序执行过程中,当需要进行数据库操作时,应用程序会首先尝试打开数据库,此时如果数据库并不存在,程序会自动建立数据库,然后打开数据库。
二、SQLite常用命令介绍
1、sqlite3 指令(通常以 . 开头)
1)创建或打开一个数据库文件
在终端下运行
sqlite3 < *.db > 指令:
<*.db> 是要打开的数据库文件。若该文件不存在,则自动创建。
2)显示当前打开的数据库文件
sqlite > .database
可以看到当前打开的数据库文件正是刚刚建立的 message.db文件;
3)显示数据库中所有表名
sqlite > .tables
可以看到当前用户下有一个名为 user 的表;
4)查看表的结构
sqlite > .schema
其实这里显示的正是我们创建新表时输入的命令;
5)显示所有命令
sqlite > .help
6) 退出 sqlite3
sqlite > .quit
2、SQL命令
每个命令以 ;结束
1)创建新表
sqlite > create table (f1 type1, f2 type2,...);
type为数据类型:
NULL
INTEGER
REAL
TEXT
BLOB
注意:若未指定类型,默认是字符串,向表中添加新纪录时要加 “”;
2)删除表
sqlite > drop table ;
可以看到原来有两个表 user与user2 ,使用 drop table user2 后可以看到 只剩下 user;
3)查询表中所有记录
sqlite >select * from ;
4) 按指定条件查询表中记录
sqlite >select * from where ;
这里的条件是 id < 2 ,可以看到 id < 3 的数据被挑选出来;
5)向表中添加新纪录
sqlite >insert into values(value1,value2,...);
可以看到最新的记录被添加进去;
6)按指定的条件删除表中记录
sqlite >delete from where ;
可以看到 passwd=1 的被删除;
7) 更新表中记录
sqlite > updata set ,... where ;
可以看到 id=3 的数据被更新。
再次提醒,未定义类型的记录默认是字符串,添加时一定要用“” ;
8)在表中添加字段
sqlite > alter table add column defalut... ;
可以看到 age 被添加进去;
三、SQLite 编程接口
1、打开sqlite 数据库 sqlite3_open
函数原型:
int sqlite3_open(const char *fileName, sqlite3 **ppDB);
函数功能:打开一个数据库;若该数据库文件不存在,则自动创建。打开或者创建数据库的命令会被缓存,直到这个数据库真正被调用的时候才会被执行。
输入参数:fileName,待打开的数据库文件名称,包括路径,以’
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮