当前位置: 首页 > backend >正文

Linux学习——sqlite3

1.sqlite3的使用

1.打开数据库

sqlite3 stu.db  //database

2.操作

输入 sqlite3,进入软件后,输入 sqlite3  软件自带的命令(.help,.databases,·quit,.exit)

3.增删改查

CREATE TABLE database_name.table_name(column1 datatype  PRIMARY KEY(one or more columns),column2 datatype,column3 datatype,.....columnN datatype,
);例子:
create table stu(name, sex, age, score);
create table stu1(name text, sex text, age int, score real);
创建一张表验证:.table //可以看到表的名字.schema//可以看到表的字段
//往表中添加信息
插入一条记录
语法:
INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]  
VALUES (value1, value2, value3,...valueN);//全部列都给到
insert into stu values("tom", "male", 19, 88.5);
insert into stu1 values("ousca", "fmale", 18, 98.5);//给一部分列插入数据
insert into stu1(name, sex) values("jack", "male");

注意:sql语句后面必须以分号结尾

删除表中的数据
DELETE FROM table_name WHERE [condition];delete from 表名 where 条件;删除表
DROP TABLE database_name.table_name;drop table 表名;

添加字段
ALTER TABLE database_name.table_name RENAME TO new_table_name;
alter table 表名 add 列名;例子:
alter table stu add stuno;
name        sex         age         score       stuno     
----------  ----------  ----------  ----------  ----------
ousca       fmale       18          98.5                  
tom         male        19          88.5  
修改表的数据
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];update 表名 set 列1=值1 [,列2=值2,...][匹配条件];条件语句:
where 字句
where 列名 操作符 列值
where age    >     10update stu set stuno=110 where name="ousca"
name        sex         age         score       stuno     
----------  ----------  ----------  ----------  ----------
ousca       female      18          98.5        110       
tom         male        19          88.5        111 

//查询
SELECT column1, column2, columnN FROM table_name;select 列名1, 列名2,... from 表名;select * from 表名;//查看表的所有信息sqlite3命令:
.headers on //打开表头
.mode column //指定查询的输出格式, column是以列对齐的方式name        sex         age         score     
----------  ----------  ----------  ----------
ousca       female      18          98.5      
tom         male        19          88.5 
查询:
1.查询部分字段
select name from stu where score>80;
2.in语句
selectt * from stu where age in(18,19);
3.and语句//多个条件
select * from stu where age >18 and score > 80;
4.or语句
select * from stu where age > 18 or score > 80;
5.范围between...and ...
select * from stu where age between 19 and 20;
6. like
select * from stu where name like "tom";
select*from stuwhere name 1ike"&tom&";//%表示匹配任意多个字符
select * from stu where name like "_tom_";表示匹配任意一个字符

4.补充

//插入时间信息
create table user1(id int,name char,age int,dt datetime);
eg:insert into user1 values (1,'张三',18,datetime('now','+8 hours')); //utcid          name        age         dt                 
----------  ----------  ----------  -------------------
1           张三          18          2025-08-29 15:38:02
//自动增长列
create table user5 (id INTEGER PRIMARY KEY ASC,name char, age int);
PRIMARY KEY//主键
ASC//自动增长的顺序//int需要写成INTEGER才能实现自动增长
create table user4 (id int PRIMARY KEY ASC,name char, age int) ;id          name        age         dt                 
----------  ----------  ----------  -------------------
1           李四          21          2025-08-29 15:48:10
2           王二          22          2025-08-29 15:48:21
3           张三          25          2025-08-29 15:48:34

2.函数学习

类似于文件操作 ---- stu.db (单独的数据库文件)

1.打开

#include <sqlite3.h>
int sqlite3_open(char *db_name,sqlite3 **db);
功能:打开数据库。
参数:@db_name:数据库文件名,若文件名包含ASCII码表范围的之外的字符,则其必需是(UTF-8)编码。@db:数据库标识,此结构体为数据库操作句柄。通过此句柄可对数据库文件进行相应操作。
返回值:成功返回     SQLITE_OK失败返回     非SQLITE_OK

2.sql语句

sqlite3_exec 函数:
int sqlite3_exec(sqlite3*db,const char *sql,exechandler_t callback,void *arg,char **errmsg);功能:
执行sql指向的SQL 语句,若结果集不为空,函数会调用函数指针callback所指向的函数。参数:db:数据库的标识。sql:SQL语句(一条或多条),以';'结尾。callback:是回调函数指针,当这条语句执行之后,sqlite3会去调用你提供的这个函数。arg:当执行 sqlite3_exec 的时候传递给回调函数的参数。errmsg:存放错误信息的地址,执行失败后可以查阅这个指针。返回值:成功返回SQLITE_OK,失败返回 非SQLITE_OK。打印错误信息方法:printf("%s\n"errmsg);
回调函数指针:
typedef int(*exechandler_t)(void *para,int n_column,char **column_value,char **column_name);功能:此函数由用户定义,当sqlite3_exec函数执行sql查询语句后,结果集不为空时sqlite3_exec函数会自动调用此函数,每次调用此函数时会把结果集的一行信息传给此函数。参数:@para:sqlite3_exec传给此函数的参数,para为任意数据类型的地址。@n_column:结果集的列数。@column_value:指针数组的地址,其存放一行信息中各个列值的首地址。@column_name:指针数组的地址,其存放一行信息中各个列值对应列名的首地址。返回值:若为非0值,则通知 sqlite3_exec终止回调。

3.关闭

int sqlite3_close(sqlite3 *db);
功能:关闭数据库、释放打开数据库时申请的资源。 
参数:db:数据库的标识。
返回值:成功返回  SQLITE_OK。失败返回 非 SQLITE_OK。
http://www.xdnf.cn/news/19031.html

相关文章:

  • 【系列01】端侧AI:构建与部署高效的本地化AI模型
  • 【Linux】Make/Makefile (自动化构建):从“是什么”到“会用它”
  • 软考-系统架构设计师 专家系统(ES)详细讲解
  • Azure、RDP、NTLM 均现高危漏洞,微软发布2025年8月安全更新
  • PlotJuggler如何安装和使用
  • AI 自动化编程 trae 体验3 开发小程序
  • (Nginx)基于Nginx+PHP 驱动 Web 应用(上):配置文件与虚拟主机篇
  • 网络编程(2)—多客户端交互
  • Uniapp + UView + FastAdmin 性格测试小程序方案
  • Qt类-扩充_xiaozuo
  • 龙巍:探究青铜器在木雕中的运用
  • 学习:uniapp全栈微信小程序vue3后台(6)
  • 【国内电子数据取证厂商龙信科技】ES 数据库重建
  • 【Flask】测试平台开发,产品管理实现添加功能-第五篇
  • DevOps
  • 沃尔玛AI系统Wally深度拆解:零售业库存周转提速18%,动态定价争议与员工转型成热议点
  • GitHub宕机自救指南
  • 2024年12月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 构建免费的音视频转文字工具:支持多语言的语音识别项目
  • 2025 DDC系统选型白皮书:构建高效低碳智慧楼宇的核心指南
  • MySQL 深分页:性能优化
  • SQL-Server分页查询多种方法讲解以及分页存储过程
  • Total PDF Converter多功能 PDF 批量转换工具,无水印 + 高效处理指南
  • 【Big Data】Alluxio 首个基于云的数据分析和开源AI数据编排技术
  • Zynq开发实践(FPGA之按键输入)
  • el-select多选下拉框出现了e611
  • 参数模板优化配置指南:从基础到进阶的完整解决方案
  • 学习游戏制作记录(音频的制作和使用)8.28
  • iOS开发之苹果系统包含的所有字体库
  • Node.js汉字转拼音指南:pinyin-pro全解析