linux(ubuntu12.04 )及S3C2440 开发板安装和使用sqlite

SQLite,是一款轻型的数据库,实现了多数的SQL-92标准,包括事务,就是代表原子性、一致性、隔离性和持久性的(ACID),触发器和多数的复杂查询。SQLite数据库是Android平台软件开发必备数据库产品!
在Ubuntu 12.04下进行SQLite开发简单实例如下:
1、 安装SQLite3   
       hadron@hadron ~ $ sudo apt-get install sqlite sqlite3
2、 查看版本号   
       hadron@hadron ~ $ sqlite3 -version
3、 创建test数据库
       hadron@hadron ~ $ sqlite3 test.db    
       SQLite version 3.7.9 2011-11-01 00:52:41
       Enter ".help" for instructions
       Enter SQL statements terminated with a ";"
       sqlite> 
4、 查看数据库
       sqlite> .database
       seq  name             file                                                      
       ---  ---------------  ----------------------------------------------------------
       0    main             /home/hadron/test.db                                      
5、 创建数据表
       sqlite> create table user(id,username,password);
6、 插入数据
       sqlite> insert into user(id,username,password) values(1,'abc','123');
7、 查询数据
       sqlite> select * from user;
       1|abc|123
8、 退出数据库
       sqlite> .exit
9、 再次进入数据库
       hadron@hadron ~ $ sqlite3
      SQLite version 3.7.9 2011-11-01 00:52:41
      Enter ".help" for instructions
      Enter SQL statements terminated with a ";"
      sqlite> 
10、安装可视化工具:
      hadron@hadron ~ $ sudo apt-get install sqlitebrowser


问题:输入字符后使用退格键进行清除时不能进行清除操作。

解决办法是结束sqlite程序然后在超级终端输入“stty erase ^H”即可。

sqlite3S3C2440上的移植

一、开发环境:

linux_2.6.32.2内核,

ubuntu12.04arm-linux-gcc-4.4.3

http://www.sqlite.org/上下载sqlite源代码sqlite-autoconf-3071700.tar.gz

二、移植步骤

1.解压数据库源文件并进入解压后的目录,如下:

tar -zxvf sqlite-autoconf-3071700.tar.gz

cd sqlite-autoconf-3071700

2.创建一个目录build并进入该目录,用于在这个目录中进行交叉编译,如下:

mkdir build

cd build

3.build目录中运行sqlite-autoconf-3071700中的configure脚本生成Makefile文件,如下:

../configure --host=arm-linux --prefix=/root/sqlite-autoconf-3071700/build/target

选项host指定的是用arm交叉编译器进行编译

选项prefix后面的路径是到时候编译安装后目标存放的目录,你可以任意设置

4.执行makemake install命令,如下:

make

make install

编译和安装完后,在/root/sqlite-3.6.22/build/target目录中会生成三个目标文件夹,分别是:bininclude、 lib,然后分别将bin下的文件下载到开发板的/usr/bin目录中,lib下的所有文件下载到开发板的/usr/lib目录中即可。include目录下是sqliteC语言API的头文件,编程时会用到。

5.在开发板上测试移植的sqlite数据库。登录开发板的Linux,执行:

sqlite3 demo.db

sqlite3是一个sqlite的命令行访问程序,demo.db是新建的数据库的名字,必须以db作后缀。然后会看到下面的画面,说明移植成功。

三、测试

1、新建数据库

[rootMrFeng]#sqlite3 test.db

SQLite version 3.7.17

Enter ".help" for instructions

Enter SQL statements terminated with a ";"

sqlite> create table film (number,name);

sqlite> insert into film values (1,'lixiangwei');

sqlite> insert into film values (2,'xiangdong');

sqlite> select * from film;

1|aaa

2|bbb

sqlite>.quit

[rootMrFeng]#

蓝色部分为输入。

2、测试程序

这里以SQLite官方站点http://sqlite.orgquick start文档中的测试程序为例对移植到ARM-Linux上的SQLite3进行测试。该程序清单如下:

//test_sqlite.c

#include <stdlib.h>

#include <stdio.h>

#include <sqlite3.h>

static int callback(void *NotUsed, int argc, char **argv, char **azColName)

{

int i;

for(i=0; i<argc;i++)

{

printf("%s = %s/n", azColName[i], argv [i]);

}

printf("/n");

return 0;

}

int main(int argc, char **argv)

{

sqlite3 *db;

char *zErrMsg = 0;

int rc;

if( argc!=3 )

{

fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT/n", argv[0]);

}

rc = sqlite3_open(argv[1], &db);

if( rc )

{

fprintf(stderr, "Can't open database: %s/n", sqlite3_errmsg(db));

sqlite3_close(db);

}

rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);

if( rc!=SQLITE_OK )

{

fprintf(stderr, "SQL error: %s/n", zErrMsg);

}

sqlite3_close(db);

return 0;

}

使用如下命令编译测试程序:

交叉编译时采用arm-linux-gcc -I /……(安装路径)/include -L/……(安装路径)/lib -o target src -lsqlite3

arm-linux-gcc -o test_sqlite test_sqlite.c -lsqlite3 -L /.../buid/lib/ -I /.../build/include/

3、在上面新建的数据库目录下测试:

[rootMrFeng]#./test_sqlite test.db "select * from film"

number = 1

name = lixiangwei

number = 2

name = xiangdong

[rootMrFeng]#

1)

创建数据库文件:

>SQLite3 test.db 回车

就生成了一个test.dbd盘。

这样同时也SQLite3挂上了这个test.db

2)

.help可以看看有什么命令

>.help 回车即可

3)可以在这里直接输入SQL语句创建表格用;结束,然后回车就可以看到了

4)看看有创建了多少表

>.tables

5)看表结构

>.schema 表名

6)看看目前挂的数据库

>.database

7)如果要把查询输出到文件

>.output 文件名

> 查询语句;

查询结果就输出到了文件c:/query.txt

把查询结果用屏幕输出

>.output stdout

8)把表结构输出,同时索引也会输出

.dump 表名

9)退出

>.exit 或者.quit




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值