MySQL¶
基础¶
- select
- like
- as
- group by
- join on
- having
- limit
写sql和执行sql的顺序¶
- select
- from
- join on 表名
- where
- group by
- having
- order by
- limit
主键、外键¶
-
主键(Primary Key):主键是用于唯一标识数据库表中每一行数据的字段。它必须保证在表中的每一行都有唯一且非空的值。主键的作用是确保数据完整性和唯一性。在MySQL中,可以使用
PRIMARY KEY
关键字来定义主键约束。 -
外键(Foreign Key):外键是一个或多个表中的字段,与另一个表的主键字段建立关联。它创建了表与表之间的关系,用于维护数据之间的完整性。外键确保了引用表中的值必须在被引用表的主键中存在。在MySQL中,可以使用
FOREIGN KEY
关键字来定义外键约束。
注意点
值得注意的是:
- 在创建外键时,引用列和被引用列的数据类型(varchar、bigint……)必须一致
- 外键约束的删除和更新规则中
- 对于新手来说,最好选择相对保守的选项(以避免意外删除或更改数据造成的问题)常见的选择是:
- 【ON DELETE】 RESTRICT:限制删除,当试图删除引用表中的行时,如果有关联的外键存在,会阻止删除。
- 【ON UPDATE】 CASCADE 或 ON UPDATE RESTRICT:如果需要更新,可以选择允许级联更新或限制更新。
规则
- ON DELETE:定义在引用表中的行被删除时,外键字段的行为。
- CASCADE:如果引用表中的行被删除,那么相关的外键行也会被删除。
- SET NULL:如果引用表中的行被删除,外键字段会被设为 NULL。
- RESTRICT:阻止删除操作,只要外键约束存在,就不允许删除引用表中的行。
- NO ACTION:与 RESTRICT 类似,在某些情况下,不允许对引用表进行操作。
- ON UPDATE:定义在引用表中的行被更新时,外键字段的行为。
- CASCADE:如果引用表中的主键被更新,相关的外键行也会被更新。
- SET NULL:如果引用表中的主键被更新,外键字段会被设为 NULL。
- RESTRICT:阻止更新操作,只要外键约束存在,就不允许更新引用表中的主键。
- NO ACTION:与 RESTRICT 类似,在某些情况下,不允许对引用表进行操作。