sqlite数据库在linux下安装,配置,移植,使用,QT调用

前端之家收集整理的这篇文章主要介绍了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 libsqlite3.so libsqlite3.so.0 拷贝到ARM板根目录/lib目录下。

测试方法也是一样

# 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可以储存任何东西:文字、数字、大量文字,不用标识输入类型,它会在自动转换。这是它与其他数据库的一个很大区别。

语法为

 
 
  1. createtabletable_name(field1,field2,field3,...);

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也是直接就可以使用

猜你在找的Sqlite相关文章