。
数据库可根据规模分为大型(如Oracle)、中型(如MySQL/MSSQL)和小型(如SQLite)。常见类型包括关系型数据库,它使用结构化查询语言(SQL)进行管理。相关名词包括:
- DB(数据库):存储数据的实体。
- DBMS(数据库管理系统):软件系统,用于管理数据库。
- MIS(管理信息系统):集成数据库的业务系统。
- OA(办公自动化):利用数据库的办公应用。
嵌入式数据库与SQLite
SQLite(www.sqlite.org)是一个开源的嵌入式数据库,由C语言开发,常用于Linux内核(www.kernel.org)和GNU项目。其特点包括:
- 开源且代码量少(约1万行),总大小在10MB以内。
- 绿色软件,无需安装即可使用。
- 文件型数据库,数据库文件可移动。
- 支持数据容量高达2TB。
安装与编译
在Linux系统中,安装SQLite及其开发库的命令如下:
bash
sudo apt-get install sqlite3
sudo apt-get install libsqlite3-dev
编译SQLite程序时,使用gcc链接SQLite库:
bash
gcc test.c -lsqlite3
SQLite终端指令
在SQLite命令行界面中,常用指令包括:
.database:查看关联的数据库文件。.table:列出数据库中的表。.schema:显示表的创建语句。.q、.quit或.exit:退出数据库。.header on:启用表头显示。
SQL语句基础
SQL语句必须以分号结尾。以下是基本操作示例:
-
创建表 :定义表结构。
sqlCREATE TABLE user(id INT, name CHAR, age INT); -
删除表 :移除表及其数据。
sqlDROP TABLE user; -
插入数据 :添加新记录。
sqlINSERT INTO user VALUES(3, 'wang', 11); -
查询数据 :检索满足条件的记录。
sqlSELECT * FROM user WHERE age > 20 OR age < 50; -
修改数据 :更新现有记录。
sqlUPDATE user SET id = 1 WHERE name = 'li'; -
删除数据 :移除指定记录。
sqlDELETE FROM user WHERE id = 1 OR id = 2;
SQLite编程(C语言API)
SQLite提供了C API用于数据库操作,基本步骤为:
- 打开数据库 :使用
sqlite3_open函数。 - 执行SQL语句 :使用
sqlite3_exec函数。 - 关闭数据库 :使用
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, "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;
}