数据库入门: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的基础操作与编程方法。

相关推荐
桑榆4165 小时前
双系统(Windows + Ubuntu)安装流程
linux·windows·ubuntu
ltl11 小时前
实时 OS 巡礼:VxWorks、QNX、Zephyr 与 PREEMPT_RT
linux
我是谁??11 小时前
Ubuntu22.04更换清华源
linux·运维·服务器
Shell运维手记12 小时前
Linux 常用基础命令学习笔记
linux·运维·笔记·学习·算法·github
测试运维日常笔记14 小时前
Linux系统安装配置TigerVNC服务器完整指南
linux·运维·服务器
雾时之林14 小时前
Linux----cron定时服务
linux·运维·服务器
wengqidaifeng16 小时前
1.从“会敲命令”到理解 Linux:15 个基础指令、文件树与命令执行的本质
linux·运维·服务器·ubuntu
奔跑的架构师18 小时前
[A-49]ARMv9/v8-PSCI接口规范与工作流程简介
android·linux·arm开发·arm
(╹◡╹)18 小时前
11.RK3588本地大模型内存评估优化
java·linux·前端
码农客栈19 小时前
Linux 设备树
linux