新闻详情

新闻详情

首页 / 资讯中心 / 详情

【SQLite3 数据库】从安装、SQL 操作到 C/C++ API 实战

发布时间:2026/9/6 3:28:51来源:尧图网络
【SQLite3 数据库】从安装、SQL 操作到 C/C++ API 实战
四、数据库1.数据库文件与普通文件区别1.普通文件对数据管理(增删改查)效率低 2.数据库对数据管理效率高,使用方便2.常用数据库:1.关系型数据库 将复杂的数据结构简化为二维表格形式 大型:Oracle、DB2 中型:MySql、SQLServer 小型:Sqlite 2.非关系型数据库 以键值对存储且结构不固定 //JSON Redis MongoDB3.嵌入式数据库sqlite3 stu.db 1.开源免费 c语言开发 2.代码量少1万行左右总大小10M以内 3.文件型数据库可以移动 4.数据容量最大2T4.sqlite3的安装1.在线安装 sudo apt-get install sqlite3 sudo apt-get install libsqlite3-dev5.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 id1 ! 连接多个条件 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_openint sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */ ); 功能打开一个数据库文件 参数 filename 数据库名称 ppDb 保存数据库句柄的指针 sqlite3 * 返回值 成功SQLITE_OK 失败错误码sqlite3_errmsgconst char *sqlite3_errmsg(sqlite3* pdb); 功能获取当前数据库错误码对应的错误信息 参数 pdb 数据库句柄 返回值 错误信息字符串sqlite3_execint 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,charvalue,charname) 功能select查询到数据时执行的回调函数 参数 arg 由sqlite3_exec的第4个参数传递的参数值形参 n select查询到的数据的列数 value查找到的数据的每一列的值 char *value[]; name : 查找到的数据列的表头 char *name[]; 返回值 成功0 失败!0注意callback必须要有返回值返回0表示正常当select查询数据时每找到一条数据callback就会被触发一次数据库中的数据通过select查询出时统一按照字符串处理
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Linux seq命令详解:生成序列、格式化输出与脚本高效实践 2026/9/6 4:04:55

Linux seq命令详解:生成序列、格式化输出与脚本高效实践

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

阅读更多 →
8.4 C++实战100例——条件变量虚假唤醒 2026/9/6 4:04:55

8.4 C++实战100例——条件变量虚假唤醒

8.4 C++实战100例——条件变量虚假唤醒 ——用 strace 追踪 futex 系统调用,解析 wait 返回的三种原因与 predicate 强制重检 一:总纲和5篇免费文章分流 C++ 踩坑排雷手册 总纲目录与逻辑索引 1.1 构造完成前对象不存在:构造函数体内调用虚函数不会按派生类分发 1.2 对象…

阅读更多 →
经济学专业考经济师有用吗:先看方向,再选证书 2026/9/6 4:04:55

经济学专业考经济师有用吗:先看方向,再选证书

经济学专业的学生问得最多的问题之一就是:考经济师到底有没有用?答案其实取决于你的职业方向。 经济师是国家统一设置的经济专业技术资格,分初级、中级、高级三个级别。如果你目标是国企、银行、事业单位或政府部门,经济师证书确实…

阅读更多 →
同事偷偷在用的 Git 技巧,学会之后团队协作直接开挂 2026/9/6 4:04:55

同事偷偷在用的 Git 技巧,学会之后团队协作直接开挂

前言Git 是目前全球最主流的分布式版本控制系统,不管是个人开发、团队协作、企业项目开发都必须掌握。相比于 SVN 的集中式管理,Git 速度更快、分支更灵活、离线可用、容错性更强。本文将从零梳理 Git 完整知识点,涵盖基础概念、核心命令、工…

阅读更多 →
Linux 下给文件做 “指纹“:sha256sum 批量校验与防篡改巡检 2026/9/6 4:04:55

Linux 下给文件做 “指纹“:sha256sum 批量校验与防篡改巡检

下载开源软件、同步备份、安全团队例行巡检,都绕不开一个问题: 文件到底还是不是原来的文件。 哈希校验就是给文件打一个 “指纹”,内容只要变一个字节,指纹就完全变样。 Linux 自带的 sha256sum 就能干这件事,不用装任…

阅读更多 →
Unity 2D角色行走动画与路径跟随系统开发指南 2026/9/6 4:01:55

Unity 2D角色行走动画与路径跟随系统开发指南

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

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞