学习嵌入式的第三十四天-数据结构-(2025.7.29)数据库

数据库基础概念

数据库是用于存储和管理海量数据的应用程序,提供数据增删改查及统计功能(如最大值、最小值、平均数等)。通过SQL语句操作数据,以表格形式管理存储。

数据库分类

  • 关系型数据库
    Oracle(大型)、MySQL/MSSQL(中型)、SQLite/DBIl(小型)
  • 非关系型数据库
    MongoDB

SQL语言分类

  • DDL (Data Definition Language)
    建表语句,如 CREATE TABLE
  • DML (Data Modification Language)
    数据操作语句,如 INSERTUPDATEDELETE
  • DQL (Data Query Language)
    查询语句,如 SELECT

嵌入式数据库 SQLite3

特点

  1. 开源,C语言开发
  2. 代码量约1万行,体积小于10MB
  3. 绿色软件,无需安装
  4. 文件型数据库,可移动
  5. 最大支持2TB数据容量
  6. 需定期维护

安装与验证

bash 复制代码
sudo apt-get install sqlite3 libsqlite3-dev
gcc test.c -lsqlite3 -lpthread
sqlite3 --version  # 验证安装

SQLite3 基本操作

启动与退出

bash 复制代码
sqlite3 test.db  # 启动并打开数据库
.quit            # 退出

常用指令

sql 复制代码
.database    # 查看关联文件
.headers on  # 显示表头
.schema      # 显示建表语句
.table       # 列出所有表

数据操作示例

sql 复制代码
-- 创建表
CREATE TABLE 表名(字段1 类型, 字段2 类型);
-- 插入数据
INSERT INTO 表名 VALUES(值1, 值2);
-- 查询数据
SELECT 列名 FROM 表名 WHERE 条件;
-- 修改数据
UPDATE 表名 SET 列名=值 WHERE 条件;
-- 删除数据
DELETE FROM 表名 WHERE 条件;

条件语法

  • 数字类型:WHERE id > 20
  • 字符串模糊匹配:
    • WHERE name LIKE 'zhang%'%匹配任意字符)
    • WHERE name LIKE 'zhang_'_匹配单个字符)

C 语言编程接口

参考 SQLite 官方文档:
sqlite.org/capi3ref

核心函数

c 复制代码
sqlite3_open();   // 打开数据库
sqlite3_exec();   // 执行SQL语句
sqlite3_close();  // 关闭数据库
相关推荐
不羁。。44 分钟前
【撸靶笔记】第八关:GET - Blind - Boolian Based - Single Quotes
数据库·sql·mybatis
AwhiteV1 小时前
利用图数据库高效解决 Text2sql 任务中表结构复杂时占用过多大模型上下文的问题
数据库·人工智能·自然语言处理·oracle·大模型·text2sql
m0_595199852 小时前
Redis(以Django为例,含具体操作步骤)
数据库·redis·缓存
爱尚你19932 小时前
MySQL 三大日志:redo log、undo log、binlog 详解
数据库·mysql
月盈缺3 小时前
学习嵌入式的第二十二天——数据结构——双向链表
数据结构·学习·链表
小猿姐3 小时前
KubeBlocks AI:AI时代的云原生数据库运维探索
数据库·人工智能·云原生·kubeblocks
科大饭桶4 小时前
C++入门自学Day14-- Stack和Queue的自实现(适配器)
c语言·开发语言·数据结构·c++·容器
★YUI★4 小时前
学习游戏制作记录(制作系统与物品掉落系统)8.16
学习·游戏·ui·unity·c#
努力还债的学术吗喽5 小时前
【速通】深度学习模型调试系统化方法论:从问题定位到性能优化
人工智能·深度学习·学习·调试·模型·方法论
NocoBase5 小时前
10 个开源工具,快速构建数据应用
数据库·低代码·开源