数据库的操作以及数据库sqlite3常用的API接口

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常用的API接口

退出 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);

关系型数据库表结构:

数据库的操作以及数据库sqlite3常用的API接口

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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球