SQLite3 数据库
SQLite 是一种文件型数据库,也即一个数据库就是一个文件。即使在数据库里建立很多表、索引和触发器等,在物理上也仅仅是一个文件。这样方便了数据库的备份。SQLite 的使用也不需要任何数据库引擎,不需要安装其他数据库服务器。因此非常适合嵌入式设备使用,实际上,在嵌入式领域也得到了广泛应用,比如 iphone。
SQLite 将早期版本的很多文件,合并成一个 sqlite3.c 文件。这样方便了其移植,但却增加了合并后文件体积。
SQLite3 库移植
目前,已将 SQLite3 库移植到了 SylixOS 下,并可以使用 RealEvo-IDE 编译。编译后在 Debug 目录下会生成文件 libsqlite3/.so 和 sqlite3。
注意:
可以参考 zlib 库的移植方法,对 SQLite3 进行移植。
SQLite3 库验证
将 libsqlite3.so 文件上传到 SylixOS 设备的/lib 目录下,将 sqlite3 文件上传到 SylixOS 设备的/apps/sqlite3/目录下。执行程序 sqlite3 效果如下:
# ls
sqlite3
# ./sqlite3
SQLite version 3.8.5 2014-04-28 17:56:19
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>
使用 SQL 指令创建一个数据库文件,并写入数据。SQL 指令均是以“;”结尾。
# ls
sqlite3
# ./sqlite3 test.db /* 创建一个数据库文件 */
SQLite version 3.8.5 2014-04-28 17:56:19
Enter ".help" for usage hints.
sqlite> create table mytable(name varchar(40), /* 建立一个表 */
age smallint);
sqlite> insert into mytable values('sylixos tianhe',10);/* 向表中插入一条记录 */
sqlite> select *from mytable; /* 查看表的内容 */
sylixos tianhe|10 /* 控制台输出的表内容 */
sqlite> .quit
# ls /* 查看当前目录 */
test.db sqlite3 /* 多出一个数据库文件 */