news 2026/4/16 17:29:01

自学嵌入式day41,数据库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自学嵌入式day41,数据库

数据库可根据规模分为大型(如Oracle)、中型(如MySQL/MSSQL)和小型(如SQLite)。常见类型包括关系型数据库,它使用结构化查询语言(SQL)进行管理。相关名词包括:

  • DB(数据库):存储数据的实体。
  • DBMS(数据库管理系统):软件系统,用于管理数据库。
  • MIS(管理信息系统):集成数据库的业务系统。
  • OA(办公自动化):利用数据库的办公应用。
嵌入式数据库与SQLite

SQLite(www.sqlite.org)是一个开源的嵌入式数据库,由C语言开发,常用于Linux内核(www.kernel.org)和GNU项目。其特点包括:

  1. 开源且代码量少(约1万行),总大小在10MB以内。
  2. 绿色软件,无需安装即可使用。
  3. 文件型数据库,数据库文件可移动。
  4. 支持数据容量高达2TB。
安装与编译

在Linux系统中,安装SQLite及其开发库的命令如下:

sudo apt-get install sqlite3 sudo apt-get install libsqlite3-dev

编译SQLite程序时,使用gcc链接SQLite库:

gcc test.c -lsqlite3
SQLite终端指令

在SQLite命令行界面中,常用指令包括:

  • .database:查看关联的数据库文件。
  • .table:列出数据库中的表。
  • .schema:显示表的创建语句。
  • .q.quit.exit:退出数据库。
  • .header on:启用表头显示。
SQL语句基础

SQL语句必须以分号结尾。以下是基本操作示例:

  • 创建表:定义表结构。
    CREATE TABLE user(id INT, name CHAR, age INT);
  • 删除表:移除表及其数据。
    DROP TABLE user;
  • 插入数据:添加新记录。
    INSERT INTO user VALUES(3, 'wang', 11);
  • 查询数据:检索满足条件的记录。
    SELECT * FROM user WHERE age > 20 OR age < 50;
  • 修改数据:更新现有记录。
    UPDATE user SET id = 1 WHERE name = 'li';
  • 删除数据:移除指定记录。
    DELETE FROM user WHERE id = 1 OR id = 2;
SQLite编程(C语言API)

SQLite提供了C API用于数据库操作,基本步骤为:

  1. 打开数据库:使用sqlite3_open函数。
  2. 执行SQL语句:使用sqlite3_exec函数。
  3. 关闭数据库:使用sqlite3_close函数。

以下是一个完整示例,演示如何插入数据:

#include <sqlite3.h> #include <stdio.h> int main(int argc, char** argv) { sqlite3* db = NULL; int ret = sqlite3_open("123.db", &db); // 打开数据库文件 if (ret != SQLITE_OK) { fprintf(stderr, "sqlite3_open error: %s\n", sqlite3_errmsg(db)); sqlite3_close(db); return 1; } char* errmsg = NULL; char sql_cmd[512] = "INSERT INTO user VALUES(6, 'lvbu', 31);"; // SQL插入语句 ret = sqlite3_exec(db, sql_cmd, NULL, NULL, &errmsg); // 执行语句 if (ret != SQLITE_OK) { fprintf(stderr, "sqlite3_exec error: %s\n", errmsg); sqlite3_free(errmsg); // 释放错误消息内存 sqlite3_close(db); return 1; } sqlite3_close(db); // 关闭数据库 return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 12:58:00

AKShare股票数据接口异常修复指南:stock_zh_a_spot_em完整解决方案

AKShare股票数据接口异常修复指南&#xff1a;stock_zh_a_spot_em完整解决方案 【免费下载链接】aktools AKTools is an elegant and simple HTTP API library for AKShare, built for AKSharers! 项目地址: https://gitcode.com/gh_mirrors/ak/aktools 在量化投资和金融…

作者头像 李华
网站建设 2026/4/16 11:12:27

鸿蒙系统专属阅读神器:从零开始打造你的私人数字书房

鸿蒙系统专属阅读神器&#xff1a;从零开始打造你的私人数字书房 【免费下载链接】legado-Harmony 开源阅读鸿蒙版仓库 项目地址: https://gitcode.com/gh_mirrors/le/legado-Harmony 还在为手机阅读App的广告和内容限制而烦恼吗&#xff1f;开源阅读鸿蒙版为你提供了完…

作者头像 李华
网站建设 2026/4/16 15:15:16

UEFITool完整指南:快速掌握固件分析与编辑技巧

想要深入了解计算机启动的底层机制吗&#xff1f;UEFITool作为一款专业的UEFI固件分析工具&#xff0c;提供了强大的固件解析和编辑功能。这款开源工具让固件分析变得简单直观&#xff0c;无论你是系统管理员、开发者还是硬件爱好者&#xff0c;都能轻松上手。 【免费下载链接】…

作者头像 李华
网站建设 2026/4/16 13:44:04

FGA自动战斗助手:告别枯燥刷本的智能解决方案

还在为FGO里那些日复一日的刷本任务感到疲惫吗&#xff1f;每天机械地点击屏幕&#xff0c;手指都要麻木了&#xff1f;别担心&#xff0c;FGA自动战斗工具就是你期待已久的游戏救星&#xff01;这款革命性的应用让游戏自动化变得简单高效&#xff0c;真正解放你的双手。 【免费…

作者头像 李华
网站建设 2026/4/16 13:44:31

PyTorch-CUDA-v2.9镜像能否用于摘要生成?BART模型实战

PyTorch-CUDA-v2.9镜像能否用于摘要生成&#xff1f;BART模型实战 在自然语言处理任务日益复杂、模型规模持续膨胀的今天&#xff0c;如何快速搭建一个稳定高效的深度学习环境&#xff0c;已成为开发者面临的核心挑战之一。尤其是在文本摘要这类对计算资源要求较高的生成式任务…

作者头像 李华
网站建设 2026/4/16 12:54:37

KeymouseGo鼠标键盘录制:5分钟掌握自动化办公神器

KeymouseGo鼠标键盘录制&#xff1a;5分钟掌握自动化办公神器 【免费下载链接】KeymouseGo 类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input 项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo 厌倦了每天重…

作者头像 李华