数据库入门:SQLite实战指南

数据库基础概念

数据库是用于存储和管理海量数据的系统,支持增删改查(CRUD)等操作。其层级结构为:数据库(DB)→ 表(行、列)→ 记录(行)→ 字段(列)。

数据库分类

关系型数据库

  • 大型:Oracle
  • 中型:MySQL、MSSQL
  • 小型:SQLite、DBII、PowDB

嵌入式数据库

以SQLite为例,特点如下:

  1. 开源,基于C语言开发,代码量约1万行,体积小于10MB。
  2. 无需安装,绿色软件,数据以文件形式存储,可移动。
  3. 单文件容量上限为2TB。

核心名词解释

  • DB :数据库,如执行SELECTUPDATE等操作的对象。
  • DBMS:数据库管理系统(如MySQL、SQLite)。
  • MIS:管理信息系统,整合数据支持决策。
  • OA:办公自动化系统,依赖数据库管理流程。

SQLite安装与编译

安装命令

bash 复制代码
sudo apt-get install sqlite3 libsqlite3-dev

编译代码

bash 复制代码
gcc test.c -lsqlite3

SQLite常用指令

  • .database:查看关联的数据库文件。
  • .table:列出所有表。
  • .schema:显示建表语句。
  • .header on:启用表头显示。
  • .quit.exit:退出交互环境。

SQL语句示例

创建表

sql 复制代码
CREATE TABLE user(id INT, name CHAR, age INT);

删除表

sql 复制代码
DROP TABLE user;

插入数据

sql 复制代码
INSERT INTO user VALUES(3, "wang", 11);

查询数据

sql 复制代码
SELECT * FROM user WHERE age > 20 OR age < 50;

更新数据

sql 复制代码
UPDATE user SET id = 1 WHERE name = 'li';

删除数据

sql 复制代码
DELETE FROM user WHERE id = 1 OR id = 2;

SQLite编程接口

核心函数

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

示例代码

c 复制代码
#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, "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);";
    ret = sqlite3_exec(db, sql_cmd, NULL, NULL, &errmsg);
    if (ret != SQLITE_OK) {
        fprintf(stderr, "SQL error: %s\n", errmsg);
        sqlite3_free(errmsg);
    }
    sqlite3_close(db);
    return 0;
}

关键注意事项

  • 错误处理:检查sqlite3_opensqlite3_exec的返回值,通过sqlite3_errmsg获取错误信息。
  • 资源释放:务必调用sqlite3_closesqlite3_free避免内存泄漏。

通过上述内容可快速掌握SQLite的基础操作与编程方法。

相关推荐
viqjeee21 小时前
RK3288设备树介绍和配置
linux·设备树
末日汐21 小时前
Linux进程信号
linux·运维·服务器
无垠的广袤21 小时前
【工业树莓派 CM0 NANO 单板计算机】YOLO26 部署方案
linux·python·opencv·yolo·树莓派·目标识别
皮蛋sol周1 天前
嵌入式学习数据结构(二)双向链表 内核链表
linux·数据结构·学习·嵌入式·arm·双向链表
Sleepy MargulisItG1 天前
【Linux网络编程】网络层协议:IP
linux·网络·tcp/ip
叠叠乐1 天前
移动家庭云电脑linux docker 容器登陆移动家庭云电脑
linux·运维·docker
Volunteer Technology1 天前
Centos7安装python和jupyter
linux·python·jupyter
馨谙1 天前
Linux面试题----rpm,dnf,Application Streams,Modules软件存储库
linux·运维·服务器
wdfk_prog1 天前
[Linux]学习笔记系列 -- [drivers][base]core
linux·笔记·学习
tan 911 天前
KaliLinux2025.4 root用户修改显示语言
linux·服务器·前端·安全