表结构的操作TABLE约束CONSTRAINTS

2025-11-20 18:13:33

1、(1)查看某个表的约束和索引

表结构的操作TABLE约束CONSTRAINTS

2、(2)主键约束PRIMARY KEY

主键:Primary key,简称PK,数据库主键作用保证实体的完整性,可以是一个列或多列的组合。

表结构的操作TABLE约束CONSTRAINTS

3、   主键约束相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值,如果是多列组合的主键约束,那么这些列都不允许为空值,并且组合的值不允许重复。

   每个表有且最多只允许一个主键约束。

   MySQL的主键名总是PRIMARY,就算自己命名了主键约束名也没用。

   当创建主键约束时,MySQL默认在对应的列上建立主键索引。删除主键时,也会直接删除主键索引。

如何建立主键?

表结构的操作TABLE约束CONSTRAINTS

4、(3)唯一键Unique key,简称UK,

   同一个表可以有多个唯一约束。

   唯一约束可以是某一个列的值唯一,也可以多个列组合值的唯一。

   MySQL会给唯一约束的列上默认创建一个唯一索引。

   删除唯一键只能通过删除唯一索引的方式删除,删除时需要指定唯一索引名,唯一索引名就是唯一约束名一样。如果创建唯一约束时未指定名称,如果是单列,就默认和列名相同,如果是组合列,那么默认和()中排在第一个的列名相同。也可以自定义唯一性约束名。

如何建立唯一性约束?

表结构的操作TABLE约束CONSTRAINTS

5、(4)外键:Foreign key,简称FK

   外键约束是保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照关系。

   在创建外键约束时,如果不给外键约束名称,默认名不是列名,而是自动产生一个外键名(例如 student_ibfk_1;),也可以指定外键约束名。

   当创建外键约束时,系统默认会在所在的列上建立对应的普通索引。但是索引名是列名,不是外键的约束名。

   删除外键时,关于外键列上的普通索引需要单独删除。

注意:

   在从表上建立外键,而且主表要先存在。

   从表的外键列,在主表中引用的只能是键列(主键,唯一键,外键)。

   从表的外键列与主表被参照的列名字可以不相同,但是数据类型必须一样

   一个表可以建立多个外键约束

  从表的外键值必须"在主表中能找到"或者为空,从而约束了从表的外键列的值的添加和修改。

   当主表的记录被从表参照时,主表中被参考记录的删除和更新也会受到限制。

   (1)默认情况下,主表和从表是严格依赖关系RESTRICT。当主表的记录被从表参照时,主表的记录将不允许删除,如果要删除数据,需要先删除从表中依赖该记录的数据,然后才可以删除主表的数据。

   (2)但是有一种是级联“修改、删除”:

   ON DELETE SET NULL(级联置空):当外键设置了SET NULL,当主表的相关记录删除时,从表对应的字段改为NULL。注意从表外键字段得允许为空才行

   ON DELETE CASCADE(级联删除):当外键设置了CASCADE(级联),当主表的相关记录删除时,从表对应的行都删除了。

   对于外键约束,最好是采用: ON UPDATE CASCADE ON DELETE RESTRICT 的方式

   如果要删除表,需要先删除从表,才能删除主表

表结构的操作TABLE约束CONSTRAINTS

6、如何建立外键约束?

表结构的操作TABLE约束CONSTRAINTS

表结构的操作TABLE约束CONSTRAINTS

7、如何删除外键约束?

表结构的操作TABLE约束CONSTRAINTS

8、(5)非空约束

l  NOT NULL 非空约束,规定某个字段不能为空

表结构的操作TABLE约束CONSTRAINTS

9、(6)检查约束

注意: MySQL不支持check约束,但可以使用check约束,而没有任何效果;

例如:age tinyint check(age >20)  或 sex char(2) check(sex in(‘男’,’女’))

表结构的操作TABLE约束CONSTRAINTS

10、(7)Default缺省约束

default:默认值,在插入数据时某列如果没指定其他的值,那么会将默认值添加到新记录。

表结构的操作TABLE约束CONSTRAINTS

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢