sqlite数据库在linux下安装,配置,移植,使用,QT调用
一,安装编译,移植 1.首先下载sqlite源码包,sqlite-autoconf-3080403.gz下载地址:http://www.sqlite.org/download.html 2.解压 # tar zxvf sqlite-autoconf-3080403.gz # cd sqlite-autoconf-3080403 3.新建两个文件夹用于编译不同版本 # mkdir sqlite-x86 sqlite-arm 4.先编译电脑版 # cd sqlite-x86/ # ../configure --prefix=/usr/local # make # make install # ldconfig 由于库安装的路径可能不在系统的默认路径上,而引起出现”SQLite header and source version mismatch“这个错误,所以用ldconfig命令来解决。 如果不成功可以采用以下方法 解决方法:将安装目录/usr/local/lib里面的libsqlite3.so.0和libsqlite3.so.0.8.6复制到/usr/lib/i386-linux-gnu,替换原有文件。 检验是否安装成功 # sqlite3 -version 出现版本号就是已经成功,如下 # sqlite3 -version 3.8.4.3 2014-04-03 16:53:12 a611fa96c4a848614efe899130359c9f6fb889c3 5.编译ARM版 # cd ../sqlite-arm/ # ../configure CC=arm-linux-gcc-4.5.1 --host=arm-linux --prefix=/usr/local/arm/target # make # make install 经过上步所得到的文件已经可以放到ARM板上使用的了,但为了节省ARM板的存储空间,我们先对该文件瘦身,去掉没用的调试信息
# arm-linux-strip /usr/local/arm/target/lib/libsqlite3.so.0.8.6 # arm-linux-strip /usr/local/arm/target/lib/libsqlite3.so # arm-linux-strip /usr/local/arm/target/bin/sqlite3把bin/sqlite3拷贝到ARM板上的根目录/bin下,把/lib下的libsqlite3.so.0.8.6 测试方法也是一样
# sqlite3 -version出现版本号就是已经成功了。
PC和ARM方法一样 1.创建数据库,student.db # sqlite3 student.db 已经存在则打开,还没存在就会创建并打开 打开后出现 SQLite version 3.8.4.3 2014-04-03 16:53:12 Enter ".help" for usage hints. 使用 .help 查看帮助, .quit退出 SQL的指令格式 所有的SQL指令都是以分号(;)结尾的。如果遇到两个减号(--)则代表注解,sqlite3会略过去。 2.建立表
sqlite> create table student(id,name,gender,age); 这里在数据库student.db里创建了一个表,名为student的表,包含元素,id,age, sqlite可以储存任何东西:文字、数字、大量文字,不用标识输入类型,它会在自动转换。这是它与其他数据库的一个很大区别。 语法为
table_name是资料表的名称,fieldx则是字段的名字。 2. 建立索引如果资料表有相当多的资料,我们便会建立索引来加快速度。 这里例如以id为索引
sqlite> create index stu_id on student(id);这里创建了一个stu_id的索引,它为表student中的id作为索引
这个指令的语法为create index index_name on table_name(field_to_be_indexed); 一旦建立了索引,sqlite3会在针对该字段作查询时,自动使用该索引。这一切的操作都是在幕后自动发生的,无须使用者特别指令。 3.插入数据
sqlite> insert into student values(1,'li','man',23); sqlite> insert into student values(2,'lt','woman',22); 如果是空,则填 NULL; 4.查看数据
sqlite> select * from student; 1|li|man|23 2|lt|woman|22 *为查看条件,查看student全部内容 ---------------------------------------------------------
sqlite> select name from student; li lt 查看所有的name --------------------------------------------------------
select * from film limit 10; 只输出10个结果 --------------------------------------------------------
sqlite> select * from student where id=1; 1|li|man|23 查看id为1的所有结果 -------------------------------------------------------
sqlite> select * from student order by id; 以id为条件从小到大 ------------------------------------------------------- sqlite> select * from student where id<3; 列出所有id小于3所有内容 ------------------------------------------------------
sqlite> select count(*) from student; 4 ------------------------------------------------------ 其他指令不详细写了,类似SQL指令 三,QT调用 在工程文件.pro中加入
LIBS += -lsqlite3然后加入头文件
#include <sqlite3.h> 然后在.cpp文件中编写程序, 新建一个数据库db sqlite3 *db; SQL指令
QString cmd="select * from student;";sqlite储存数据是以二维数组形式 定义用于装得到的数据有几行几列
int h,l;定义用于装返回的数据
char** result;打开一个数据库到db;
sqlite3_open("student.db",&db); 数据库调用函数
sqlite3_get_table(db,cmd.toAscii(),&result,&h,&l,NULL); 第一个参数为要操作的数据库,第二个为操作指令,第三装返回数据,第四个装得到数据的行,第五为列,第六为装错误信息 -------------------------------------------------------------------------------------------------------- 然后释放内存
sqlite3_free_table(result);操作完了就关闭
sqlite3_close(db);电脑上编写的QT程序只要环境都搭建好了在ARM也是直接就可以使用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |