一、数据库的安装
// 准备软件包
libsqlite3-0_3.7.2-1ubuntu0.1_i386.deb
libsqlite3-dev_3.7.2-1ubuntu0.1_i386.deb
sqlite3_3.7.2-1ubuntu0.1_i386.deb
// 安装
sudo dpkg -i *.deb
二、 数据库命令
(一)系统命令(以.开头)
.exit
.quit
.table //查看表
.schema //查看表的结构
(二)sql语句(以‘;’结尾)
// 1-- 创建一张表
create table stuinfo(id integer, name text, age integer, score float);
// 2-- 插入一条记录
insert into stuinfo values(1001, 'zhangsan', 18, 80);
insert into stuinfo (id, name, score) values(1002, 'lisi', 90);
// 3-- 查看数据库记录
select * from stuinfo;
select * from stuinfo where score = 80;
select * from stuinfo where score = 80 and name= 'zhangsan';
select * from stuinfo where score = 80 or name='wangwu';
select name,score from stuinfo; //查询指定的字段
select * from stuinfo where score >= 85 and score < 90;
// 4-- 删除一条记录
delete from stuinfo where id=1003 and name='zhangsan';
// 5-- 更新一条记录
update stuinfo set age=20 where id=1003;
update stuinfo set age=30, score = 82 where id=1003;
// 6-- 删除一张表
drop table stuinfo;
// 7-- 增加一列
alter table stuinfo add column sex char;
// 8-- 删除一列
create table stu as select id, name, score from stuinfo;
drop table stuinfo;
alter table stu rename to stuinfo;
// 数据库设置主键:
create table info(id integer primary key autoincrement, name vchar);
三、sqlite3 数据库 C语言 API
int sqlite3_open(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb /* OUT: SQLite db handle */
);
- 功能:打开数据库
- 参数:filename 数据库名称
ppdb 数据库句柄
- 返回值:成功为0 SQLITE_OK ,出错 错误码
int sqlite3_close(sqlite3* db);
功能:关闭数据库
参数:db 数据库句柄
返回值:成功为0
SQLITE_OK ,出错 错误码
const char *sqlite3_errmsg(sqlite3*db);
int sqlite3_exec(
sqlite3* db, /* An open database */
const char *sql, /* SQL to be evaluated */
int (*callback)(void* arg,int,char**,char**), /* Callback function */
void * arg, /* 1st argument to callback */
char **errmsg /* Error msg written here */
);
- 功能:执行一条sql语句
- 参数:db 数据库句柄
sql sql语句
callback 回调函数,只有在查询时,才传参
arg 为回调函数传递参数
errmsg 错误消息
- 返回值:成功 SQLITE_OK
查询回调函数:
int (*callback)(void* arg,int ncolumns ,char** f_value,char** f_name), /* Callback function */
- 功能:查询语句执行之后,会回调此函数
- 参数:arg 接收sqlite3_exec 传递来的参数
ncolumns 列数
f_value 列的值得地址
f_name 列的名称
- 返回值:0
查询:
int sqlite3_get_table(
sqlite3 *db, /* An open database */
const char *zSql, /* SQL to be evaluated */
char ***pazResult, /* Results of the query */
int *pnRow, /* Number of result rows written here */
int *pnColumn, /* Number of result columns written here */
char **pzErrmsg /* Error msg written here */
);
void sqlite3_free_table(char **result);
数据库官网API:https://www.sqlite.net.cn/c3ref/sqlite3.html