1.1 数据库的安装
(VMware虚拟机下)
离线安装:
sudo dpkg -i libsqlite3-dev_3.22.0-1ubuntu0.4_amd64.deb
sudo dpkg -i sqlite3_3.22.0-1ubuntu0.4_amd64.deb
在线安装:
sudo apt-get install libsqlite3-dev sqlite3
在终端输入 sqlite3 能进到sqlite的命令行 表示安装成功了
退出 sqlite3 命令行 : .quit
1.2 打开数据库文件
注意:如果直接在sqlite3的命令行操作,而不打开文件的话,所有操作都是在内存上操作的,程序退出,数据就没有了。
数据文件名没有强制要求,一般情况是以 .db 结尾的
打开数据库文件的方式:
方式1:
sqlite3 数据库文件名
方式2:
先使用 sqlite3 进入sqlite的命令行
然后使用 .open 数据库文件名 打开数据库文件
1.3 数据库的操作
1.3.1 系统命令
不同的数据软件 系统命令可能存在差异
sqlite3数据库的系统命令 是以 . 开头的 结尾不能加分号
.help 打开帮助手册
.exit 退出数据库程序
.quit 数据库程序 或者 .q 也可以
.open 打开数据库文件
.schema 查看当前数据库文件中的建表语句(表的结构)
.tables 查看当前数据库文件中有哪些表
.headers on/off 查询的结果是否显示表头
1.3.2 sql语句
不同的数据库,sql语句都是通用的(在sqlite3中会用了,其他数据库也一样)
sql语句不能以 . 开头 结尾必须要有分号 ;
注:sql语句不区分大小写,但是一般 关键字 我们都是用大写
1.建表语句:CREATE TABLE 表名(字段名1 类型1,字段名2 类型2);
例如:CREATE TABLE student(id INT, name CHAR, score INTEGER);
2.插入数据
例如:INSERT INTO student VALUES(1001, ‘小明’, 98);
3.查询数据
SELECT * FROM student;(查询student表中的所有数据)
4、修改数据
UPDATE student SET score=%d WHERE id=%d;(根据id修改score的值,也可以增加其他字段);
UPDATE student SET id=1005,score=90 WHERE name=’赵六’;(把赵六的id和成绩改成1005,90);
5、删除数据
DELETE FROM student WHERE score=100;(删除student表中成绩为100的数据,score也可以换成其他字段);
6、删除数据表
DROP TABLE 表名;
7、主键 —-重点PRIMARY KEY
建表时将某个字段设置成 主键 表示后续插入操作不允许主键冲突
例如:CREATE TABLE student(id INT PRIMARY KEY, name CHAR, score INTEGER);
关系型数据库表结构:
1.4 sqlite3常用的API接口
函数声明在 sqlite3.h 中
编译时 需要链接 sqlite3 的库 -lsqlite3
1.打开数据库文件的函数
int sqlite3_open( const char filename,sqlite3 *ppDb );
功能:打开一个数据库
参数:filename 数据库名字
ppdb 操作数据库的句柄
返回值:
成功 SQLITE_OK
失败 error_code
2.获取错误信息描述
const char sqlite3_errmsg(sqlite3 db);
功能:获取最后一次的出错信息
参数:db 数据库句柄
返回值:指向错误信息字符串的指针
3.执行sql语句的函数
int sqlite3_exec(sqlite3 db, const char sql, int (callback)(void,int,char,char), void * arg, char **errmsg);
功能:执行一条sql语句
参数: db 数据库的句柄指针
sql 将要被执行sql语句
callback 回调函数, 只要查询语句会用到回调函数
arg 为callback 传参的,只有在查询语句时,才给回调函数传参
errmsg 错误信息的地址 如果使用了errmsg参数,需要调用 sqlite3_free 来释放空间
返回值:
成功 SQLITE_OK
出错 errcode
注:
sqlite3_exec 的回调函数
int (callback)(void arg ,int ncolumn , char f_value, char f_name);
功能: 得到查询结果
参数:
arg 为回调函数传递参数使用的 不传参可以置NULL
ncolumn 记录中包含的字段的数目
f_value 包含每个字段值的指针数组
f_name 包含每个字段名称的指针数组
返回值:
成功 0
出错 非0
4.关闭数据库句柄
int sqlite3_close(sqlite3* db);
5.释放由sqlite3_get_table产生的结果集
void sqlite3_free_table(char **result);
未完待续!
Original: https://blog.csdn.net/m0_72772534/article/details/125921879
Author: 好运呱呱
Title: 数据库的操作以及数据库sqlite3常用的API接口
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/816178/
转载文章受原作者版权保护。转载请注明原作者出处!