我在 CSDN 学院发布的 SQL 入门视频教程。
什么是RDBMS?
RDBMS表示关系数据库管理系统(Relational Database Management System)。RDBMS是SQL以及所有现代数据库系统的基础,例如MS SQL Server、IBM DB2、Oracle、MySQL和Microsoft Access等。
关系数据库管理系统是基于E. F. Codd的关系模式的数据库管理系统(DBMS)。
什么是表?
RDBMS中的数据存储在称为表的数据库对象中。表是相关数据实体的集合,由列和行组成。
记住,表是关系数据库中存储数据的最常用和最简单的形式。以下是一个CUSTOMERS表的示例:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
什么是字段?
每个表可以分解为称为字段的更小实体。CUSTOMERS表的字段包括ID、NAME、AGE、ADDRESS和SALARY。
字段是表中用于存储每个记录的具体信息的列。
什么是记录或行?
记录,也称为数据行,是表中的每个单独实体。例如,上面的CUSTOMERS表包含7条记录。以下是CUSTOMERS表中的单行数据或记录:
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
+----+----------+-----+-----------+----------+
一条记录是表中的一个水平实体。
什么是列?
列是表的垂直实体,它包含了表中具体字段所有相关的信息。
例如,CUSTOMERS表中的一个列为ADDRESS,表示位置信息,包含以下内容:
+-----------+
| ADDRESS |
+-----------+
| Ahmedabad |
| Delhi |
| Kota |
| Mumbai |
| Bhopal |
| MP |
| Indore |
+----+------+
| ADDRESS |
+-----------+
| Ahmedabad |
| Delhi |
| Kota |
| Mumbai |
| Bhopal |
| MP |
| Indore |
+----+------+
什么是NULL值?
表中的NULL值是空白的字段值,表示该字段没有值。
重要的一点是NULL值与0值和包含空格的字段不同。值为NULL的字段是在创建记录时留空的字段。
SQL约束
约束是表的数据列上的强制规则。约束用于限制表中数据类型。它可以确保数据的准确性和可靠性。
约束可以是列级别或表级别的。列级别约束只应用到一个列上,而表级别约束作用到整个表。
以下是SQL中常用的约束:
- NOT NULL约束:确保列不存在NULL值。
- DEFAULT约束:在没有指定值的时候为列提供一个默认值。
- UNIQUE约束:确保列中的值都不相同。
- 主键:唯一标识表中的每一行/记录。
- 外键约束:唯一标识另一个表中的每一行/记录。
- CHECK约束:确保列中的值满足特定条件。
- INDEX:用于快速检索数据。
数据完整性
每个RDBMS中都支持以下种类的数据完整性:
- 实体完整性:表中不存在重复的行。
- 域完整性:通过限制类型、格式或者值的范围强制指定列只包含有效的实体。
- 参照完整性:被其他记录使用的行不能被删除。
- 用户定义的完整性:强制无法通过实体完整性、域完整性或参照完整性实施的特殊业务规则。
数据库规范化
数据库规范化是有效组织数据的过程。使用规范化过程的原因有两个:
- 减少冗余数据,例如,在多个表中存储的相同数据。
- 确保数据依赖性存在的意义。
这两者都是具有价值的目标,因为它们减少了数据库的存储空间,并且确保了数据的逻辑存储。规范化包含一系列的指导准则,可以帮助你创建一个良好的数据库结构。
规范化准则分成多个范式;范式可以看作数据库结构布局的格式或方式。范式的目的就是让数据库的结构满足第一范式的准则,然后是第二范式,最后市第三范式。
你可以选择进一步规范化到第四范式,第五范式等等,但是通常第三范式就已经足够了。