SQL 结构
SQL 中的结构关系从上到下依次为:数据库、数据表、数据记录,且均为 1 对多关系。

SQL 范式(Normalization)
主要意义为避免了大量的数据冗余,节省了存储空间,保持了数据的一致性,SQL 设计共有六范式:1NF、2NF、3NF、BCNF、4NF、5NF
数据库范式是为了减少数据冗余和提高数据完整性而设计的一系列规则。通过规范化过程,可以将数据分解到多个表中,确保每个表只存储相关的信息。常见的范式包括:
- 第一范式(1NF):确保表中的每个字段都是原子性的,也就是说,字段的值是不可分割的最小单位。例如,不能在一个字段中存储多个值。
- 第二范式(2NF):在满足第一范式的基础上,确保每个非主键字段完全依赖于主键。也就是说,表中的每个非主键字段都必须依赖于整个主键,而不是主键的一部分。
- 第三范式(3NF):在满足第二范式的基础上,确保表中的每个非主键字段不依赖于其他非主键字段。换句话说,表中的每个非主键字段只依赖于主键,不依赖于其他非主键字段。
- 博茨-科得范式(BCNF):这是对第三范式的进一步改进。BCNF 规定了每个决定因素必须是候选键。它解决了一些特殊情况下的依赖问题。
- 第四范式(4NF):解决多值依赖的问题。确保在满足第三范式的基础上,没有非平凡的多值依赖。
- 第五范式(5NF):解决连接依赖的问题。确保在满足第四范式的基础上,所有的连接依赖都能通过自然连接来实现。
- 第六范式(6NF):这是一个更高层次的范式,处理的是时间依赖性数据的规范化。它适用于需要记录时间相关数据的场景。
规范化可以帮助数据库设计者创建一个更高效、易维护的数据库结构。不过,在实际应用中,规范化的程度需要根据具体的业务需求来决定,过度规范化可能会导致性能问题,因此在设计时需要权衡数据冗余和查询效率。
SQL 分类
在 SQL 中,操作通常被划分为不同的类别,这些类别包括 DDL、DML、DQL 和 DCL。每个类别包含不同的 SQL 语句,用于执行不同类型的操作。
- DDL:定义数据库结构(如
CREATE、ALTER、DROP)。 - DML:操作数据(如
INSERT、UPDATE、DELETE)。 - DQL:查询数据(如
SELECT)。 - DCL:控制权限(如
GRANT、REVOKE)。
1. DDL(Data Definition Language,数据定义语言)
DDL 语句用于定义和管理数据库的结构,包括创建、修改和删除数据库对象,如表、索引和视图。DDL 操作对数据库结构进行更改,因此通常会对数据库进行永久性更改。
常见的 DDL 语句包括:
- CREATE:创建新的数据库对象(如表、视图、索引)。
- ALTER:修改现有的数据库对象的结构。
- DROP:删除数据库对象中的数据表。
- TRUNCATE:清空表中的所有记录,但保留表结构。
- DESC:查询表结构。
2. DML(Data Manipulation Language,数据操作语言)
DML 语句用于操作数据库中的数据。与 DDL 不同,DML 操作不会改变数据库结构,只会影响数据的内容。
常见的 DML 语句包括:
- SELECT:查询数据。
- INSERT:插入新数据。
- UPDATE:更新现有数据。
- DELETE:删除数据。
3. DQL(Data Query Language,数据查询语言)
DQL 主要指的是 SELECT 语句,用于从数据库中查询和检索数据。DQL 的目标是获取数据,不对数据进行修改。
常见的 DQL 语句包括:
- SELECT:用于从一个或多个表中检索数据。
- JOIN:用于将来自多个表的数据结合在一起。
4. DCL(Data Control Language,数据控制语言)
DCL 语句用于控制对数据库的访问权限,管理用户权限和安全性。DCL 语句主要包括授予和撤销权限。
常见的 DCL 语句包括:
- GRANT:授予用户对数据库对象的权限。
GRANT SELECT, INSERT ON table_name TO user_name;
- REVOKE:撤销用户对数据库对象的权限。
REVOKE SELECT, INSERT ON table_name FROM user_name;
11万+

被折叠的 条评论
为什么被折叠?



