news 2026/6/22 18:57:30

SQLite数据库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SQLite数据库

1.SQLite简介

轻量化,易用的嵌入式数据库,用于设备端的数据管理,可以理解成单点的数据库。传统服务器型数据库用于管理多端设备,更加复杂。
• SQLite是一个无服务器的数据库,是自包含的(可以SQLite理解为一个"文件")。这也称为嵌入式数据库,这意味着数据库引擎作为 应用程序的一部分运行。

1.1 安装

1. 把下载的文件sqlite-autoconf-3390000.tar.gz上传到开发板 2. tar xvf sqlite-autoconf-3390000.tar.gz 解压 3. cd sqlite-autoconf-3390000 进入文件夹 4. ./configure --prefix=/usr/local 配置安装路径在/usr/local 5. make 编译//比较久10分钟 6. sudo make install 安装

2. SQLite语句

2.1 创建数据库

方式一 sqlite3 进入数据库 .open test.db .quit 数据库退出后在命令当前路径创建数据库test.db。 方式二 sqlite3 test.db //在命令运行当前窗口创建数据库test.db //在数据库命令下 .databases 列出当前打开的数据库 .quit 退出

2.2 其他语句

1. 创建一张表格: create table stu2(id Integer,name char,score Integer); 2. 插入一条记录: insert into stu values(18130106,'huang',99); insert into stu2 values(18130101,"gang",100); ''和""都行 insert into stu(name,score) values("huanggang",98); 插入部分字段内容 3. 查看数据库的记录 select * from stu; //查询所有字段的结果 select name,score from stu; //查询数据库中部分字段的内容 4. 删除一条记录 delete from stu where id = 18130101; 5. 更改一条记录 update stu set name = 'huangg' where id = 18130106; 6. 删除一张表 drop table stu; 7. 增加一列 alter table stu add column sex char;

3.SQLite的编程操作

1. sqlite3_open(const char *filename, sqlite3 **ppDb) : 该例程打开一个指向 SQLite 数据库文件的连接,返回一个用于其他 SQLite 程序的数据库连接对象。 2. sqlite3_close(sqlite3*) : 该例程关闭之前调用 sqlite3_open() 打开的数据库连接。所有与连接相关的语句都应在连接关闭之前完 成。如果还有查询没有完成,sqlite3_close() 将返回 SQLITE_BUSY 禁止关闭的错误消息。 3. const char *sqlite3_errmsg(sqlite3*) : sqlite3_errcode() 通常用来获取最近调用的API接口返回的错误代码。 4. sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg) : 该例程提供了一个执行 SQL 命令的快捷方式,SQL 命令由 sql 参数提供,可以由多个 SQL 命令组成。 在这里,第一个参数 sqlite3 是打开的数据库对象,sqlite_callback 是一个回调,data 作为其第一个 参数,errmsg 将被返回用来获取程序生成的任何错误。 sqlite3_exec() 程序解析并执行由 sql 参数所给的每个命令,直到字符串结束或者遇到错误为止。 int callback(void *arg, int column_size, char *column_value[], char *column_name[]) 参数分析:void *arg:是sqlite3_exec函数的第四个参数 column_size:数据库的字段 数 column_value[]:列的值 column_name:字段名字

这是错误代码,如图:

• 代码

#include <stdio.h> #include <sqlite3.h> int callback(void *arg, int column_size, char *column_value[], char *column_name[]){ int i; printf("arg=%s\n",(char *)arg); for(i=0;i<column_size;i++){ printf("%s = %s\n", column_name[i], column_value[i]); } printf("=======================\n"); return 0;//必须返回0,这样数据库中有多少条数据,这个回调函数就会被调用多少次 } int main(char argc, char **argv){ sqlite3 *db; char *errorMes = NULL; int ret; if(argc < 2){ printf("Usage: %s xxx.db\n",argv[0]); return -1; } if( (ret = sqlite3_open(argv[1],&db)) == SQLITE_OK){ printf("open %s success\n",argv[1]); }else{ printf("error:%s,%d\n",sqlite3_errmsg(db),ret); if(ret == 14){ printf("permission den\n"); } return -1; } //sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg) sqlite3_exec(db, "select * from stu;",callback, "content of sql:", &errorMes);//errorMes 不会发生段错误,会分配空间的 sqlite3_close(db); printf("done\n"); return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 16:23:53

【课程设计/毕业设计】基于Web的自驾游旅游攻略网站设计与实现基于Java的自驾游攻略查询系统的设计与实现【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/20 12:41:14

一键修复DLL运行库缺失,DirectX Repair优化增强版轻松解决DLL缺失DirectX报错,DirectX 修复工具图文安装教程

一键修复DLL运行库缺失&#xff0c;DirectX Repair优化增强版轻松解决DLL缺失DirectX报错,DirectX 修复工具图文安装教程 安利这个DirectX 运行库修复工具&#xff0c;一键完成dll缺失修复、解决99.99%程序故障、闪退、卡顿等常见问题 一、DirectX修复工具介绍 DirectX修复工…

作者头像 李华
网站建设 2026/6/20 12:41:33

Java计算机毕设之基于 Java 与 Vue 的基于springboot+BS构架的失物招领系统设计与实现基于Sprinboot的失物招领系统设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/20 12:34:53

Python模式匹配与正则高效实践

好的&#xff0c;我们将从 Python 的模式匹配&#xff08;结构化模式匹配&#xff09;和正则表达式两个方面展开&#xff0c;并结合工程实践中的高效用法。内容会包含基础语法、高效技巧和简单实践案例。 一、Python 的模式匹配&#xff08;Structural Pattern Matching&#x…

作者头像 李华
网站建设 2026/6/20 12:38:13

【课程设计/毕业设计】基于BS招投标管理系统的设计与实现基于springboot+bs架构的招投标管理系统的设计与实现【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华