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

相关推荐
张某人的胡思乱想2 小时前
周末随笔-整理ubuntu环境
linux·运维·ubuntu
翔云 OCR API2 小时前
智能发票查验接口在财务自动化中的技术实现与应用价值
linux·运维·自动化
硬核子牙2 小时前
送别2025,喜迎2026
linux
大聪明-PLUS3 小时前
FUSE:如何编写自己的文件系统
linux·嵌入式·arm·smarc
松涛和鸣4 小时前
41、Linux 网络编程并发模型总结(select / epoll / fork / pthread)
linux·服务器·网络·网络协议·tcp/ip·算法
大聪明-PLUS4 小时前
Linux 实时应用程序检查清单
linux·嵌入式·arm·smarc
山上三树4 小时前
Linux动静态库与动静态链接
linux
G_H_S_3_4 小时前
【网络运维】OpenStack镜像管理:Glance篇
linux·运维·openstack
Muscleheng4 小时前
Linux安装LibreOffice
linux·运维·服务器