当前位置:文档之家› Sqlite使用文档

Sqlite使用文档

SQLite的配置和使用文档一.引言:本文将简要介绍如何在Linux和ARM-Linux平台上移植SQLite嵌入式数据库,以及一些简单的测试案例。

嵌入式数据库采用程序方式直接驱动,而传统数据库则采用引擎响应方式驱动。

由于嵌入式数据库的体积通常很小,这使得嵌入式数据库常常应用在移动设备上。

SQLite是一种嵌入式数据库。

SQLite的目标是尽量简单,因此它抛弃了传统企业级数据库的种种复杂特性,只实现那些对于数据库而言非常必要的功能。

尽管简单性是SQLite追求的首要目标,但是其功能和性能都非常出色由于SQLite具有功能强大、接口简单、速度快、占用空间小等优点,因此特别适合于应用在嵌入式环境中。

SQLite在手机、PDA、机顶盒等设备上已获得了广泛应用。

二.软硬件平台:OS:fedora7;编译器:gcc 版本 4.1.2 20070502 (Red Hat 4.1.2-12):开发板:基于Sep4020的UB4020EVB(1.6) 开发套件;Linux内核:Linux Kernel v2.6.16:交叉编译器:gcc version 3.4.1:Sqlite:sqlite-3.3.8三.PC端编译环境的安装:此处使用的为SQLite版本为sqlite-3.3.8.tar.gz,可以通过以下方式获得此压缩包/sqlite-3.3.8.tar.gz(利用迅雷等工具下载)。

将此压缩包拷贝到/root目录下,在终端中进入此目录,并解压sqlite-3.3.8.tar.gz压缩包:[root@localhost ~]# cd /root/[root@localhost ~]# tar -zxvf sqlite-3.3.8.tar.gz将sqlite-3.3.8更名为sqlit_pc,并进入sqlite_pc目录:[root@localhost ~]# mv sqlite-3.3.8 sqlite_pc[root@localhost ~]# cd sqlite_pc//进入目录后采用默认配置生成Makefile文件:[root@localhost sqlite_pc]# ./configure配置结束后进行编译并且将所生成的文件安装:[root@localhost sqlite_pc]# make[root@localhost sqlite_pc]# make installMake install 安装以后会生成以下文件,系统默认的目录为/usr/local:lib:libsqlite3.a libsqlite3.so libsqlite3.so.0libsqlite3.so.0.8.6include:sqlite3.hbin: sqlite3由于/usr/local为系统路径,此时只要在终端直接输入sqlite3 [数据库名] 即可打开(没有时创建)一个数据库文件。

例1:在终端输入以下语句:[root@localhost sqlite-3.3.8]# sqlite3 prochip.dbSQLite version 3.3.8Enter ".help" for instructionssqlite>此时就会正确的打开(没有时创建)prochip.db数据库文件。

sqlite> .e退出数据库操作,具体的数据库操作在后节会有示例。

四.交叉编译环境下SQLite的安装:此处使用的为SQLite版本为sqlite-3.3.8.tar.gz,可以通过以下方式获得此压缩包/sqlite-3.3.8.tar.gz(利用迅雷等工具下载)。

将此压缩包拷贝到/usr/local/arm目录下,在终端中进入此目录,并解压sqlite-3.3.8.tar.gz压缩包:[root@localhost sqlite_pc]# cd /usr/local/arm/[root@localhost arm]# tar -zxvf sqlite-3.3.8.tar.gz将此目录更名为sqlite_arm,然后进入此目录:[root@localhost arm]# mv sqlite-3.3.8 sqlite_arm[root@localhost arm]# cd sqlite_arm与在PC环境下编译SQLite3不同,不能通过sqlite_arm目录下的configure 脚本来生成Makefile文件。

而是必须手动修改Makefile文件。

在sqlite_arm目录下有一个Makefile范例文件Makefile.linux-gcc首先通过下面的命令拷贝此文件并重命名为Makefile:[root@localhost sqlite_arm]# cp Makefile.linux-gcc Makefile利用gedit打开Makefile文件并手动修改Makefile文件的内容。

[root@localhost sqlite_arm]#gedit Makefile找到Makefile文件中的下面这样一行(line 17):TOP = ../sqlite将其修改为:TOP = .找到下面这样一行(line 73):TCC = gcc -O6将其修改为:TCC = arm-linux-gcc -O6找到下面这样一行(line 81):AR = ar cr将其修改为:AR = arm-linux-ar cr找到下面这样一行(line 83):RANLIB = ranlib将其修改为:RANLIB = arm-linux-ranlib找到下面这样一行(line 86):MKSHLIB = gcc -shared将其修改为:MKSHLIB = arm-linux-gcc -shared找到下面这样一行(line 96):TCL_FLAGS = -I/home/drh/tcltk/8.4linux将其修改为:#TCL_FLAGS = -I/home/drh/tcltk/8.4linux注释掉下面这一行(line 103):LIBTCL = /home/drh/tcltk/8.4linux/libtcl8.4g.a -lm –ldl将其修改为:#LIBTCL = /home/drh/tcltk/8.4linux/libtcl8.4g.a -lm –ldl原则上,对Makefile的修改主要包括两个方面:首先是将编译器、归档工具等换成交叉工具链中的对应工具,比如:gcc换成arm-linux-gcc,ar换成ar-linux-ar,ranlib换成arm-linux-ranlib等等;其次是去掉与TCL相关的编译选项,因为默认情况下,将会编译SQLite3的Tcl语言绑定,但是在移植到ARM-Linux的时候并不需要,因此将两个与TCL有关的行注释掉。

关闭并保存Makefile文件。

然后通过下面的命令修改main.mk文件,因为Makefile包含了这个文件。

[root@localhost sqlite_arm]# gedit main.mk找到这个文件中的下面一行(line 63):select.o table.o tclsqlite.o tokenize.o trigger.o \把它替换成:select.o table.o tokenize.o trigger.o \也就是把该行上的tclsqlite.o去掉。

这样编译的时候将不会编译SQLite3的Tcl语言绑定。

自此,修改工作就完成了,接下来就可以开始编译SQLite3了,这通过make 命令即可完成:[root@localhost sqlite_arm]# make编译完成之后,将在sqlite_arm目录下生成一下文件:库函数文件:libsqlite3.a头文件:sqlite3.h应用程序; sqlite3此时将sqlite3应用程序拷贝到文件系统的系统路径bin目录下,这样就可以在嵌入式开发平台上使用SQLite了。

例2:打开嵌入式开发平台,在串口终端中输入语句。

/# sqlite3 prochip.dbSQLite version 3.3.8Enter ".help" for instructionssqlite>此时就会正确的打开(没有时创建)prochip.db数据库文件。

sqlite> .e退出数据库操作,具体的数据库操作在后节会有示例。

注:在嵌入式环境和PC环境下生成数据库文件的存储格式是相同的,在PC 端和嵌入式端可以操作同一个数据库。

五.SQLite命令行功能的使用介绍:在SQLite的的使用中,在sqlite>下,我们可以直接使用一些命令行来直接对数据库进行操作,也可以直接输入标准的SQL语言来进行操作。

下面就介绍一些简单的命令行和SQL语句的使用方式:5.1 SQL语言:1.建立表:sqlite> create table test(name varchar(10),age smallint);2.插入表:sqlite> insert into test values("prochip",5);3.查询表:sqlite> select * from test;prochip|54.修改表记录:sqlite> update test set age = 6 where name = "prochip";5.删除表记录:sqlite> delete from test where name = "prochip";6.删除表; sqlite> drop table test;5.2 命令行语言:1).help查看命令行的帮助文件sqlite> .help.bail ON|OFF Stop after hitting an error. Default OFF.databases List names and files of attached databases.dump ?TABLE? ... Dump the database in an SQL text format…….width NUM NUM ... Set column widths for "column" mode2).tables 第一步建立好表后,可以通过此语句来查看已经存在的表:sqlite> .tablestest3).dump 第一步建立好表后,可以通过此语句生成数据库表的SQL脚本:sqlite> .dumpBEGIN TRANSACTION;CREATE TABLE test(name varchar(10),age smallint);INSERT INTO "test" V ALUES('prochip',5);COMMIT;4).schema ?TABLE?第一步建立好表后,可以通过此语句生成形成数据库表的SQL脚本:sqlite> .schema testCREATE TABLE test(name varchar(10),age smallint);5).quit 或者.exit 退出命令行窗口。

相关主题