sliqte3数据库:slqite3 xxx.db
sqlite3相关的命令:
.tables 查看数据库中的表
.headers on/off 打开或者关闭表头
.mode column 列按照左对齐
.schema 表名 查看表被创建时的语句
sqlite3的SQL语句:
数据类型:
NULL 值是一个 NULL 值。
INTEGER:整形
REAL : 浮点型
TEXT: 文本类型
1. 创建表:
create table 表名(列名 数据类型, 列名 数据类型, ...);
2. 插入数据
insert into 表名 values(值1, 值2, ....);
3. 查询表的内容:
select * from 表名;
select 列名1,列名2,... from 表名;
条件查找:
slelect * from 表名 where 列 关系运算符 值;
>
>=
<
<=
=
!=
and (&&)
or (||)
模糊查找:
select * from 表名 where 列名 like xx%;
% : 可以匹配一个或者多个字符。
_ : 只能匹配一个字符
按升序查询:
select * from 表名 order by 列名 ASC;
按照降序查询
select * from 表名 order by 列名 DESC;
4. 删除数据
delete from 表名 where 条件;
5. 修改数据
update 表名 set 列名1=新值1,列名2=新值2 where 条件;
6. 删除表
drop table 表名;
7. 时间函数
datetime("now", "+8 hours");
8. 自动增长列
主键值自动增长
INTEGER
id INTEGER PRIMARY KEY AUTOINCREMENT,
sqlite3数据库可视化工具:
sudo apt-get install sqlitebrowser
sqlitebrowser stu.db
sqlite3提供的C API接口:
int sqlite3_open(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb /* OUT: SQLite db handle */
);
功能:创建并打开数据库
参数:
filename:数据库名称
ppDb : 数据库操作句柄
返回值:
成功:SQLITE_OK
const char *sqlite3_errmsg(sqlite3*);
功能:获取数据库执行过程中的错误信息
int sqlite3_exec(
sqlite3*pdb, /* An open database */
const char *sql, /* SQL to be evaluated */
int (*callback)(void*,int,char**,char**), /* Callback function */
void *arg, /* 1st argument to callback */
char **errmsg /* Error msg written here */
);
功能:执行SQL语句
参数:
pdb:数据库句柄
sql : 需要执行的sql语句
当执行的sql语句是select时,用到回调函数
callback :select查询时,每查到一条数据,该回调会被调用一次
arg:被回调函数第一个参数接收
errmsg :保存错误信息
返回值:
成功:SQLITE_OK
int (*callback)(void*arg,int n ,char**column_value,char**column_name):
功能:select查询时,每查到一条数据,该回调会被调用一次(select从数据库查找的数据都当字符串处理)
参数:
arg:接收sqlite3_exec的第四个参数
n:查询到的数据的列数
column_value:保存查找到的一行数据各列的指针(指针数组)
column_name:保存查找到的一行数据各列的列名的指针(指针数组)
注意:
1. 回调函数一定要有返回值
2. 每找到一条数据,回调会被触发一次