sqlite3

  1. sqlite相关的命令

.tables 查看数据库中的表

.headers on/off 开启或者关闭表头

.mode column 列对齐

.width 列宽1 列宽2 设置每一列的列宽

.schema 表名 查看表的结构

  1. sqlite的SQL语句

每个sql语句后面必须要有一个;

INTEGER : 整形

REAL: 浮点型

TEXT:文本类型,字符串

NULL : 空

  1. 1.创建表

create table 表名(列名1 数据类型 ,列名2 数据类型, 类名3 数据类型) ;

2.2. 插入数据

insert into 表名 values(值1, 值2, 值3);

2.3. 查询

select 列名1,列名2 from 表名;

select * from 表名;

条件查找:

select * from 表名 where 列 关系运算符 值;

关系运算符:

like : 模糊匹配

% 可以通配多个字符

_ 只能通配一个字符

升序排列

select * from 表名 order by 列名 ASC;

降序排列:

select * from 表名 order by 列名 DESC;

    1. 删除一行

delect from 表名 where 列名 关系运算符 值;

    1. 删除一张表

drop 表名;

2.6. 修改

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

    1. 设置主键值自动增长列
  1. 主键值自动增长列的数据类型必须是INTEGER

  2. 类名 INTEGER PRIMARY KEY AUTOINCREMENT,

2.8 .多表联查

内连接 INNER JOIN

外连接 LEFT OUTER JOIN

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

int sqlite3_open(

const char *filename, /* Database filename (UTF-8) */

sqlite3 **ppDb /* OUT: SQLite db handle */

);

功能:打开数据库,如果不存在,则创建

参数:

filename : 数据库名称

ppDb :保存数据库句柄的地址

返回值:

成功:SQLITE_OK

失败:错误码

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:当执行select语句时,使用到,传递给回调函数的第一个参数

errmsg :存储错误信息的地址

返回值:

成功:SQLITE_OK

失败:错误码

int (*callback)(void*,int column_cnt,char**column_value,char**column_name),

int callback(void* arg, int , char **, char **);

功能:在使用sqlite3_exec执行select语句时, 每查找到一条数据,则调用一次回调

参数:

arg : sqlite3_exec传递的第4个参数

column_cnt: 查找到的数据的列数

column_value: 查找到的一行数据的每一列值的地址的集合

column_name:查找到的一行数据的每一列列名的地址的集合

返回值:

0

注意:1.每找到一行,回调被触发一次

  1. 回调函数必须返回0;

创建表格

查找

相关推荐
小宁爱Python20 分钟前
FastAPI+Sqlite+HTML的登录注册与文件上传系统:完整实现指南
sqlite·html·fastapi
爱上语文23 分钟前
Redis基础(4):Set类型和SortedSet类型
java·数据库·redis·后端
lifallen37 分钟前
Paimon vs. HBase:全链路开销对比
java·大数据·数据结构·数据库·算法·flink·hbase
Brookty2 小时前
【MySQL】JDBC编程
java·数据库·后端·学习·mysql·jdbc
先做个垃圾出来………2 小时前
SQL的底层逻辑解析
数据库·sql
码不停蹄的玄黓2 小时前
深入拆解MySQL InnoDB可重复读(RR)隔离级别:MVCC+临键锁如何「锁」住一致性?
数据库·mysql·可重复读
paopaokaka_luck3 小时前
基于SpringBoot+Vue的酒类仓储管理系统
数据库·vue.js·spring boot·后端·小程序
薛晓刚4 小时前
哪个领域数据库最难替换?
数据库
芷栀夏4 小时前
基于Anything LLM的本地知识库系统远程访问实现路径
数据库·人工智能
软件2054 小时前
【redis使用场景——缓存——数据淘汰策略】
数据库·redis·缓存