设为首页 加入收藏

TOP

SQLite数据库使用(二)
2015-07-24 11:09:59 来源: 作者: 【 】 浏览:3
Tags:SQLite 数据库 使用
d B;

注:匹配字符串时会以ascii顺序匹配。

在终端输入:select * from persons where id between 1 and 3;

select * from persons where addr between 'a' and 'c';

18、like 用于模糊查找。匹配条件语法:where 列名 like 列值

1、若列值为数字相当于列名=列值。

2、若列值为字符串可以用通配符“%”代表缺少的字符(一个或多个)。

在终端输入:select * from persons where id like 3;

select * from persons where addr like '%jing%';

19、not 可取出原结果集的补集。匹配条件语法:例:

1、where 列名 not in (列值1, 列值2, ...)

2、 where not (列1 = 值1 [and 列2 = 值2 and...])

3、where not (列1 = 值1 [or 列2 = 值2 or ...])

4、where 列名 not between A and B

5、where 列名 not like 列值

在终端输入:select * from persons where id not in ( 1 );

select * from persons where addr not like '%jing%';

20、order by 语句根据指定的列对结果集进行排序。默认按照升序对结果集进行排序,可使用 desc 关键字按照降序对结果集进行排序。例:

升序 : select * from 表名 order by 列名;

降序 : select * from 表名 order by 列名 desc;

在终端输入:select * from persons order by name;

select * from persons order by id;

select * from persons order by id desc;

四、SQLite C语言编程

1、int sqlite3_open(char *db_name,sqlite3 **db);

功能:打开数据库

参数:db_name:数据库文件名,若文件名包含ASCII码表范围的之外的字符,则其必需是(UTF-8)编码。

sqlite3:数据库标识,此结构体为数据库操作句柄。通过此句柄可对数据库文件进行相应操作。

返回值:成功返回SQLITE_OK,失败返回非 SQLITE_OK。

2、int sqlite3_close(sqlite3 *db);

功能:关闭数据库、释放打开数据库时申请的资源。

参数:db:数据库的标识。

返回值:成功返回 SQLITE_OK。失败返回非 SQLITE_OK。

注意:sqlite3使用了两个库:pthread、dl,故链接时应加上 -lpthread和 -ldl。

3、sqlite3_exec函数:int sqlite3_exec(sqlite3 *db, const char *sql,exechandler_t callback,void *arg, char **errmsg);

功能:执行sql指向的SQL语句,若结果集不为空,函数会调用函数指针callback所指向的函数。

参数:db:数据库的标识。

sql:SQL语句(一条或多条),以’;’结尾。

callback:是回调函数指针,当这条语句执行之后,sqlite3会去调用你提供的这个函数。

arg:当执行sqlite3_exec的时候传递给回调函数的参数。

errmsg:存放错误信息的地址,执行失败后可以查阅这个指针。

打印错误信息方法:printf("%s\n", errmsg);

4、回调函数指针:typedef int (*exechandler_t)(void *para, int n_column, char **column_value,char **column_name);

功能:此函数由用户定义,当sqlite3_exec函数执行sql语句后,结果集不为空时sqlite3_exec函数会自动调用此函数,每次调用此函数时会把结果集的一行信息传给此函数。

参数:para:sqlite3_exec传给此函数的参数,para为任意 数据类型的地址。

n_column:结果集的列数。

column_value:指针数组的地址,其存放一行信息中 各个列值的首地址。

column_name:指针数组的地址,其存放一行信息中各 个列值对应列名的首地址。

返回值:若为非0值,则通知sqlite3_exec终止回调。

5、sqlite3_get_table函数:int sqlite3_get_table(sqlite3 *db, const char *sql,char ***resultp, int *nrow,int *ncolumn,char **errmsg);

功能:执行sql指向的SQL语句,函数将结果集相关的数据的地址保存在函数的参数中。

参数:db:数据库的标识。

sql:SQL语句(一条或多条),以’;’结尾。

resultp:指针数组的地址,其记录了结果集的数据。内存布局:先依次存放各列的列名,然后是每一行各列的值。

nrow:结果集的行数(不包含列名)。

ncolumn:结果集的列数。

errmsg:错误信息。

6、sqlite3_free_table函数:void sqlite3_free_table(char **resultp);

功能:释放sqlite3_get_table分配的内存。

参数:结果集数据的首地址。

?

?

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇高聚合低耦合 下一篇视图

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·数据库:推荐几款 Re (2025-12-25 12:17:11)
·如何最简单、通俗地 (2025-12-25 12:17:09)
·什么是Redis?为什么 (2025-12-25 12:17:06)
·对于一个想入坑Linux (2025-12-25 11:49:07)
·Linux 怎么读? (2025-12-25 11:49:04)