Linux下数据库(sqlite3)学习笔记

                                                                       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 失败返回错误码

                                                       代码示例

 

功能: 建立一个数据库 对其能进行删减改查的操作

Linux下数据库(sqlite3)学习笔记

Linux下数据库(sqlite3)学习笔记

Linux下数据库(sqlite3)学习笔记

Linux下数据库(sqlite3)学习笔记

Linux下数据库(sqlite3)学习笔记

Linux下数据库(sqlite3)学习笔记

Linux下数据库(sqlite3)学习笔记

Linux下数据库(sqlite3)学习笔记

Linux下数据库(sqlite3)学习笔记

Linux下数据库(sqlite3)学习笔记