sqlite3 数据库安装
1. 本地安装
sudo dpkg -i *.deb
2.在线安装
sudo apt-get install sqlite3
3.使用压缩包解压
压缩包下载路径:链接:https://pan.baidu.com/s/1xHLZGObQODUGBReNEi3KKQ
提取码:zjqv
SQLITE3 基本命令
两种命令
1.以 . 开头的称之为系统命令
.help 帮助
.quit 退出
.exit 退出
.databases 查看打开的数据库(显示数据库的名字和路径)
.table 查看当前数据库的表格
2. 以 , 结尾的 sql命令
创建一张数据库表 stu :
creat table stu(Id Integer, name char, score Integer );
查看表的结构图:
.schema
在数据表中插入数据(完全插入 所有参数必须都有)
insert into +数据表名 values(相应数据)
在数据表中插入数据(部分插入 部分参数就行)
insert into +数据表名((参数名一,。。。。。, 参数名N)values(参数值一, 。。。。,参数值N))
查看数据表中的内容(查询全部内容)
select * from +数据表名
查询数据表中的内容 (查询部分内容)
select name, sroce from +数据表名
查询数据表内容 (查询特定内容)
select * from +数据表名 where 参数=?;(一个限定条件)
select * from +数据表名 where 参数1=? and 参数2=?;(两个限定条件必须同时满足)
select * from +数据表名 where 参数1=? or 参数2=?;(两个限定条件满足一个就行)
删数据表中的内容
delete frm +数据表名 ;(删除整个数据表)
delete from +数据表名 where 参数=?;(删除特定内容)
其他和查询内容都一样 依然可以使用and 和or
设置数据表中的内容
update +数据表名 set 参数1=?where 参数2=?;
update +数据表名 set 参数1=?, 参数2=?where 参数3=? ;
删除数据表
drop table 数据表名
给数据表重命名
alter table +原的数据表名 rename to 要改成的数据表名
给数据库添加一列统计信息
alter table +数据表名 add column 要添加的统计信息 要添加的信息的类型;
sqlite不支持删除一列信息
所以只能间接删除 步骤如下:
1.创建一张新表
2.删除原有的表
3.将新表的名字改成原来的表的名字
这样旧表的内容会自动写入到新表中
API()
头文件:#include <stdlib.h>
编译指令·: gcc 文件名.c -lsqlite3
int sqlite3_open(const char *filename, sqlite3 **ppDb);
作用:打开一个数据库
参数:filename 数据库路径
ppDb 代表数据库的操作句柄(指针)
返回值: 成功返回 SQLITE_OK 失败返回错误码
int sqlite3_close(sqlite3 *db);
作用:关闭数据库
参数: db操作数据库的指针
返回值:成功返回SQLITE_OK 失败返回错误码
const char *sqlite3_errmsg(sqlite3 *db)
功能 :通过db句柄 得到数据库操作的错误信息
int sqlite3_exec{
sqlite3 *db;
const char *sql;
int (*callback)(void *, int char **, char **);
void *arg;
char **errmsg;
};
功能:执行一条sql语句
参数: db 数据库操作句柄
sql:一条sql语句(末尾的分号可省略)
callback:回调函数 是一个函数指针类型 传递的参数是函数名(只有sql为查询语句时 才会执行回调函数)
arg:表示给回调函数传递的参数
errmsg 错误信息
返回值 成功SQLITE_OK
typedef int (*sqlite3_callback)(void *para, int f_num, char **f_value, char **f_name)
功能:每找到一条记录自动执行一次回调函数
para:传递给回调函数的参数
f_num: 记录中包含的字段数目
f_value:包含每个字段值的指针数组
f_name 包含每个字段名称的指针数组
成功返回0 失败返回-1
int sqlite3_get_table(sqlite3 *db, const char *sql, char ***resultp, int nrow, int *ncolum, char **errmsg)
db:数据库句柄
resultp: 用来指向sql执行结果的指针
nrow:满足条件的记录的数目
ncolumn: 每条记录包含的字段数
errmsg:错误信息指针的地址
返回值: 成功返回0 失败返回错误码
代码示例
功能: 建立一个数据库 对其能进行删减改查的操作