1. 数据库(Database, DB)
定义:结构化数据的集合,类似一个电子文件柜。
MySQL 示例:`CREATE DATABASE school;` 创建一个名为"school"的数据库。
2. 表(Table)
定义:数据库中存储数据的二维结构,由行和列组成。
类比:Excel 的工作表。
示例:`学生表(学号, 姓名, 年龄)`
3. 行(Row) / 记录(Record)
定义:表中的一条数据记录。
示例:`(1001, '张三', 20)` 是学生表的一行。
4. 列(Column) / 字段(Field)
定义:表的垂直分类,表示数据的属性。
示例:学生表中的"姓名"列。
5. 主键(Primary Key, PK)
定义:唯一标识表中每行数据的列(不可重复,不能为NULL)。
示例:`学号` 可作为学生表的主键。
SQL:`CREATE TABLE students (id INT PRIMARY KEY, ...);`
6. 外键(Foreign Key, FK)
定义:关联两个表的字段,确保数据完整性。
示例:成绩表中的`学号`关联学生表的`学号`。
SQL:`FOREIGN KEY (student_id) REFERENCES students(id)`
7. 索引(Index)
定义:加速数据检索的数据结构(类似书籍目录)。
注意:索引会占用存储空间,降低写入速度。
SQL:`CREATE INDEX idx_name ON students(name);`
8. SQL(Structured Query Language)
定义:用于操作数据库的标准语言。
分类:
DDL(数据定义语言):`CREATE`, `ALTER`, `DROP`
DML(数据操作语言):`SELECT`, `INSERT`, `UPDATE`, `DELETE`
DCL(数据控制语言):`GRANT`, `REVOKE`
9. 事务(Transaction)
定义:一组原子性的SQL操作(要么全部成功,要么全部失败)。
特性(ACID):
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
示例:银行转账(扣钱和加钱必须同时成功)。
10. 存储引擎(Storage Engine)
定义:MySQL处理数据的底层组件。
常见类型:
InnoDB(默认):支持事务、行级锁
MyISAM:不支持事务,查询速度快
查看引擎:`SHOW ENGINES;`
11. 视图(View)
定义:虚拟表,基于SQL查询结果生成。
作用:简化复杂查询,控制数据访问权限。
SQL:`CREATE VIEW v_students AS SELECT id, name FROM students;`
12. 触发器(Trigger)
定义:在表发生特定事件(INSERT/UPDATE/DELETE)时自动执行的代码。
示例:插入新学生时自动记录日志。
13. 存储过程(Stored Procedure)
定义:预编译的SQL语句集合,类似函数。
优势:减少网络传输,提高安全性。
调用:`CALL sp_get_student(1001);`
14. 范式(Normalization)
定义:数据库设计规范,减少数据冗余。
常见范式:
第一范式(1NF):每列不可再分
第二范式(2NF):满足1NF,且非主键字段完全依赖主键
第三范式(3NF):满足2NF,且消除传递依赖
15. 连接查询(JOIN)
定义:合并多个表的数据。
类型:
INNER JOIN(内连接):只返回匹配的行
LEFT JOIN(左连接):返回左表所有行 + 匹配的右表行
RIGHT JOIN(右连接):返回右表所有行 + 匹配的左表行
FULL JOIN(全连接):返回所有行)
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程