Linux:SQLite 数据库

1. SQLite相关命令

  • .tables:查看数据库中的表
  • .headers on/off:开启或关闭表头显示
  • .mode column:设置输出模式为列对齐
  • .width 列宽1 列宽2:这个命令实际上是.width 列名1 列宽1 列名2 列宽2,用于设置特定列的宽度
  • .schema 表名:查看表的结构

2. SQLite的SQL语句

基本数据类型
  • INTEGER:整形
  • REAL:浮点型
  • TEXT:文本类型,字符串
  • NULL:空
  • SQL 操作
  • 创建表:CREATE TABLE 表名 (列名1 数据类型, 列名2 数据类型, ...);
  • 插入数据:INSERT INTO 表名 VALUES (值1, 值2, ...);INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);
  • 查询:
    • SELECT 列名1, 列名2 FROM 表名;
    • SELECT * FROM 表名;
    • 条件查找:SELECT * FROM 表名 WHERE 列名 关系运算符 值;
  • 模糊匹配:SELECT * FROM 表名 WHERE 列名 LIKE '内容%';
  • 排序:
    • 升序:SELECT * FROM 表名 ORDER BY 列名 ASC;
    • 降序:SELECT * FROM 表名 ORDER BY 列名 DESC;
  • 删除数据 (注意这里是删除数据行,不是列):DELETE FROM 表名 WHERE 列名 关系运算符 值;
  • 删除表:DROP TABLE 表名;
  • 修改数据:UPDATE 表名 SET 列名 = 新值 WHERE 列名 = 条件值;
  • 设置主键值自动增长:确保主键列是INTEGER PRIMARY KEY AUTOINCREMENT
  • 多表联查:使用INNER JOINLEFT OUTER JOIN

3. SQLite3提供的C/C++ API接口

  • sqlite3_open:打开(或创建)数据库
  • const char *filename, /* Database filename (UTF-8) */
    sqlite3 **ppDb /* OUT: SQLite db handle */
    );
  • 功能:打开数据库,如果不存在,则创建
  • 参数:
  • filename : 数据库名称
  • ppDb :保存数据库句柄的地址
    返回值:
    成功:SQLITE_OK
    失败:错误码
  • sqlite3_exec:执行SQL语句
    • 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
      失败:错误码

    • callback函数

    • 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;
相关推荐
ChineHe20 分钟前
Redis数据类型篇002_详解Strings核心命令与存储结构
数据库·redis·缓存
清水白石00840 分钟前
《从零到进阶:Pydantic v1 与 v2 的核心差异与零成本校验实现原理》
数据库·python
电商API&Tina43 分钟前
京东 API 数据采集接口接入与行业分析
运维·服务器·网络·数据库·django·php
柠檬叶子C1 小时前
PostgreSQL 忘记 postgres 密码怎么办?(已解决)
数据库·postgresql
864记忆2 小时前
Qt创建连接注意事项
数据库·qt·nginx
毕设十刻2 小时前
基于Vue的迅读网上书城22f4d(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
薛定谔的猫19823 小时前
Langchain(十二)LangGraph 实战入门:用流程图思维构建 LLM 工作流
数据库·microsoft
坐吃山猪3 小时前
ChromaDB02-代码实战
数据库·向量数据库·chromadb
摇滚侠3 小时前
MySQL 中 utf8mb4 字符集,字母a占几个字节,一个汉字占几个字节 / MySQL 中 utf8mb3 字符集,字母a占几个字节,一个汉字占几个字节
数据库·mysql
ChineHe3 小时前
Redis数据类型篇001_数据类型梳理与选择指南
数据库·redis·缓存