news 2026/9/11 20:00:36

SQLite3 学习笔记:数据库基础、SQL 语句与 C 语言 API 详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SQLite3 学习笔记:数据库基础、SQL 语句与 C 语言 API 详解

数据库

1 . 数据库文件与普通文件区别:

1)普通文件对数据管理(增删改查)效率低
2)数据库对数据管理效率高,使用方便

2. 常用数据库:

1.关系型数据库:
将复杂的数据结构简化为二维表格形式
大型:Oracle、DB2
中型:MySql、SQLServer
小型:Sqlite

2.非关系型数据库
以键值对存储,且结构不固定
//JSON
Redis
MongoDB

3. 嵌入式数据库:

sqlite3:
stu.db
1.开源免费, c语言开发
2.代码量少,1万行左右,总大小10M以内
3.文件型数据库,可以移动
4.数据容量最大2T

4. sqlite3的安装

在线安装
sudo apt-get install sqlite3
sudo apt-get install libsqlite3-dev

5. sqlite3相关命令

创建数据库:sqlite3 xxx.db

.help .tables 查看数据库中的表名 .headers on/off 打开/关闭表头 .mode column 设置表左对齐 .quit 退出数据库

6. sqlite3提供的SQL语句

不区分大小写:
sqlite数据类型:
NULL : 空类型
INTEGER: 整数类型
REAL :浮点型
TEXT :字符串类型(文本)
BLOB:根据输入确定

1. 创建数据库中的表

create table 表名(列名1 数据类型1, 列名2 数据类型2, 列名3 数据类型3); CREATE TABLE 表名(列名1 数据类型1, 列名2 数据类型2, 列名3 数据类型3); create table class1(id INTEGER, name TEXT, score REAL);

2. 插入数据库数据

insert into 表名 values(值1, 值2, 值3); insert into class1 values(1, "zhangsan", 88.5); TEXT类型的数据,插入时需要用"", ''引起来。

3. 查找数据库

查找数据库中的所有数据: select * from 表名; 查找指定列数据: select 列名1, 列名2 from 表名; 条件查找: select * from where 列 关系运算符 值; select * from where id=1; = > >= <= < != 连接多个条件: and or 模糊查找: % :模糊匹配若干个字符 _ : 模糊匹配一个字符 select * from class1 where name like "马%"; select * from class1 where name like "马__"; 马冬梅 有序查找: select * from 表名 order by 列名 ASC; //升序显示 select * from 表名 order by 列名 DESC; //降序显示

4. 删除数据库数据

delete from 表名 where 条件;

5. 修改数据库数据

update 表名 set 列=新值 where 条件;

6. 删除表

drop table 表名;

7. 主键值自动增长列

create table 表名(列名 INTEGER PRIMARY KEY AUTOINCREMENT, 列名 数据类型);

8. 数据库的可视化工具

sudo apt-get install sqlitebrowser 打开数据库: sqlitebrowser xxx.db NavicatSqlite3 -》Windows数据库可视化工具

7. sqlite3提供的c/c++ API接口

-sqlite3_open

int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */ ); 功能:打开一个数据库文件 参数: filename :数据库名称 ppDb :保存数据库句柄的指针 sqlite3 * 返回值: 成功:SQLITE_OK 失败:错误码

-sqlite3_errmsg

const char *sqlite3_errmsg(sqlite3* pdb); 功能:获取当前数据库错误码对应的错误信息 参数: pdb :数据库句柄 返回值: 错误信息字符串

-sqlite3_exec

int sqlite3_exec( sqlite3* pdb, /* An open database */ const char *sql, /* SQL to be evaluated */ int (*callback)(void*,int,char**,char**), /* Callback function */ void *arg, /* 1st argument to callback */ char **errmsg /* Error msg written here */ );

功能:执行SQL语句
参数
pdb:数据库句柄
sql :要执行的SQL语句
callback :回调函数,当select查询时,若查询到数据,会触发回调函数执行
arg :传递给callback的参数(实参)
errmsg :保存出错信息
返回值
成功:SQLITE_OK
失败:错误码

int (*callback)(void *arg,int n,char**value,char**name);

功能:select查询到数据时执行的回调函数
参数
arg :由sqlite3_exec的第4个参数传递的参数值(形参)
n :select查询到的数据的列数
value:查找到的数据的每一列的值 char *value[];
name : 查找到的数据列的表头 char *name[];
返回值
成功:0
失败:!0

注意

  1. callback必须要有返回值,返回0,表示正常;
  2. 当select查询数据时,每找到一条数据,callback就会被触发一次;
  3. 数据库中的数据,通过select查询出时,统一按照字符串处理;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 19:58:35

招聘数据可视化:Python爬虫与MapReduce全链路实践

简介&#xff1a;基于Python爬虫与MapReduce分析的招聘信息大数据可视化系统&#xff0c;是一份高分毕业设计整套资料&#xff0c;面向软件工程、计算机科学、人工智能等专业的学生&#xff0c;解决招聘信息采集、分布式分析及可视化展示的综合问题。资源内含完整系统源码、部署…

作者头像 李华
网站建设 2026/9/11 19:58:33

PCA异常检测完全指南:重构误差原理、代码实现与应用

简介&#xff1a;基于Python与PCA的异常检测算法设计实现资源&#xff0c;面向机器学习初学者和数据分析从业者&#xff0c;帮助理解利用主成分分析识别数据中异常模式的方法。内容覆盖PCA标准化、协方差矩阵、特征值分解、主成分选择与数据重构等核心步骤&#xff0c;并结合异…

作者头像 李华
网站建设 2026/9/11 19:57:38

降重改写到崩溃?2026年论文降重方法避坑指南

写论文最折磨人的阶段&#xff0c;往往不是写初稿&#xff0c;而是降重。对着标红的段落反复删改&#xff0c;改完一查还是飘红&#xff0c;这种挫败感经历过的人都知道。其实多数人降重效率低&#xff0c;不是不够努力&#xff0c;而是方法本身就有问题。 aicheck官网直达入口…

作者头像 李华
网站建设 2026/9/11 19:57:24

降重会不会影响质量?aicheck实测说真话

aicheck官网直达入口&#xff1a;https://aicheck.cc/ 论文查重率超标&#xff0c;是每个毕业生都绕不过去的坎。改到凌晨三点&#xff0c;把"然而"换成"但是"&#xff0c;把"因此"换成"所以"&#xff0c;重复率纹丝不动&#xff0c;…

作者头像 李华
网站建设 2026/9/11 19:56:22

ESP32-S3端云协同AI陪伴设备:架构设计与工程实践复盘

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华