数据库基础概念
数据库是用于存储和管理海量数据的系统,支持增删改查(CRUD)等操作。其层级结构为:数据库(DB)→ 表(行、列)→ 记录(行)→ 字段(列)。
数据库分类
关系型数据库
- 大型:Oracle
- 中型:MySQL、MSSQL
- 小型:SQLite、DBII、PowDB
嵌入式数据库
以SQLite为例,特点如下:
- 开源,基于C语言开发,代码量约1万行,体积小于10MB。
- 无需安装,绿色软件,数据以文件形式存储,可移动。
- 单文件容量上限为2TB。
核心名词解释
- DB :数据库,如执行
SELECT、UPDATE等操作的对象。 - 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编程接口
核心函数
sqlite3_open:打开数据库连接。sqlite3_exec:执行SQL语句。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_open和sqlite3_exec的返回值,通过sqlite3_errmsg获取错误信息。 - 资源释放:务必调用
sqlite3_close和sqlite3_free避免内存泄漏。
通过上述内容可快速掌握SQLite的基础操作与编程方法。