一、什么是数据库
数据库是一种能够对大量数据进行增、删、改、查管理的软件。
简单理解:
程序 ↓ 数据库 ↓ 保存大量数据 ↓ 增、删、改、查例如学生信息:
学号 姓名 年龄 1001 张三 20 1002 李四 21 1003 王五 22程序可以通过 SQL 语句对这些数据进行操作。
二、数据库的分类
课程中主要介绍两种数据库。
1. 关系型数据库
关系型数据库的数据通常按照表格的形式进行组织。
常见的关系型数据库:
Oracle MySQL SQLite课程文档中将关系型数据库列为一类,并列出了 Oracle、MySQL、SQLite。
例如:
学生表 +------+--------+------+ | id | name | age | +------+--------+------+ | 1 | 张三 | 20 | | 2 | 李四 | 21 | +------+--------+------+2. 非关系型数据库
非关系型数据库一般不采用传统的关系表结构。
课程文档中列举:
Redis NoSQL并将 Redis 作为内存数据库进行介绍。
三、SQLite数据库
本次课程重点学习的是:
SQLite
SQLite 是一种轻量级关系型数据库。
它的特点是使用简单,不需要单独启动数据库服务器,数据库通常就是一个文件。
例如:
student.db里面可以保存我们的数据表。
四、SQLite基本操作
进入 SQLite:
sqlite3 test.db进入以后可以使用 SQLite 命令。
1. 查看数据库
.databases功能:
查看当前数据库以及相关文件。
2. 查看数据表
.tables功能:
查看当前数据库中的表名称。
3. 查看表结构
.schema也可以指定表:
.schema student功能:
查看表的创建结构。
4. 设置表头
.headers on打开列名称显示。
关闭:
.headers off5. 设置数据显示格式
.mode column可以让查询结果按照列的形式显示。
课程文档中列出了:
.tables .databases .headers on/off .mode .schema这些 SQLite 常用命令。
五、SQLite数据类型
课程中主要介绍4种数据类型:
INTEGER REAL TEXT BLOB1. INTEGER
表示整数。
例如:
20 100 -52. REAL
表示实数、小数。
例如:
3.14 99.53. TEXT
表示文本、字符串。
例如:
'张三' 'hello'4. BLOB
用于保存二进制数据。
例如:
图片 音频 文件等二进制内容。
六、创建数据表
使用:
CREATE TABLE例如创建学生表:
CREATE TABLE student ( id INTEGER, name TEXT, age INTEGER );表示创建一个student表:
student ├── id ├── name └── age七、插入数据
使用:
INSERT INTO例如:
INSERT INTO student VALUES (1, '张三', 20);再插入一条:
INSERT INTO student VALUES (2, '李四', 21);现在表中有:
id name age 1 张三 20 2 李四 21课程文档将insert into作为基本 SQL 语句之一。
八、查询数据
使用:
SELECT查询所有数据:
SELECT * FROM student;结果:
1|张三|20 2|李四|21也可以只查询指定字段:
SELECT name FROM student;结果:
张三 李四九、WHERE条件查询
WHERE用来设置查询条件。
例如:
SELECT * FROM student WHERE age = 20;表示:
查询年龄等于20岁的学生。
查询结果:
1|张三|20例如:
SELECT * FROM student WHERE id = 2;表示查询id为2的数据。
课程文档中也将where子句和匹配条件作为基本内容。
十、基本SQL操作总结
数据库最重要的就是:
增 ↓ INSERT 删 ↓ DELETE 改 ↓ UPDATE 查 ↓ SELECT本节课程重点学习的基本 SQL 包括:
CREATE TABLE INSERT INTO SELECT WHERE十一、一个完整的SQLite操作示例
首先创建数据库:
sqlite3 student.db创建表:
CREATE TABLE student ( id INTEGER, name TEXT, age INTEGER );插入数据:
INSERT INTO student VALUES (1, '张三', 20); INSERT INTO student VALUES (2, '李四', 21); INSERT INTO student VALUES (3, '王五', 22);查询全部:
SELECT * FROM student;查询指定条件:
SELECT * FROM student WHERE age = 21;查看表:
.tables查看表结构:
.schema student十二、数据库和C语言程序
在 Linux C 程序中,可以使用 SQLite 提供的接口操作数据库。
基本流程:
C程序 ↓ 打开SQLite数据库 ↓ 执行SQL语句 ↓ 获取查询结果 ↓ 处理数据 ↓ 关闭数据库例如:
sqlite3 *db = NULL; sqlite3_open("student.db", &db); /* 执行SQL语句 */ sqlite3_close(db);这样就可以让 C 程序和 SQLite 数据库进行交互。
十三、本节重点
1. 数据库
用来对大量数据进行增、删、改、查管理。
2. 两种数据库
关系型数据库 ↓ Oracle、MySQL、SQLite 非关系型数据库 ↓ Redis、NoSQL3. SQLite
轻量级 关系型数据库 数据库文件4. SQLite常用命令
.tables .databases .headers on .mode column .schema5. 常见数据类型
INTEGER REAL TEXT BLOB6. 基本SQL
CREATE TABLE INSERT INTO SELECT WHERE