MySQL 外键,唯一,检查,非空,默认值约束,查看表中约束

外键约束

外键经常与主键一起使用,对于相关联的两个表,有主键的那个表就是父表,有外键的那个表就是子表,主表删除某条记录时,子表中与之对应的记录也必须有相应的改变,一个表可以有一个或多个外键,每一个外键的值必须等于主表中主键的某个值。

注意:

  • 定义外键时,主表必须已经存在于数据库中,或者是当前正在创建的表。
  • 主表必须有主键。
  • 主键不能包含空值,允许外键空值,只要外键的每个值出现在指定主键中,那么这个外键就是正确的
  • 外键中列的数目必须和主键中列的数目相同。
  • 外键中列的数据类型必须和主键中列的数据类型相同

1.创建表时设置外键约束

  1. 首先创建主表,将主表的指定列设置为主键。
  2. 创建子表,在最后为此表设置外键。

外键格式

CONSTRAINT 外键名 FOREIGN KEY 字段名(可以多个)  REFERENCES 主表名(主键列)

2.修改表时添加外键

前提:设置外键的列数据必须主表中主键列的数据一致或者没有数据。

语法格式:

ALTER TABLE 数据表名 ADD CONSTRAINT 外键名 FOREIGN KEY(列名) REFERENCES 主表名(列名);

3.删除外键约束

外键一旦删除,就会解除主表与子表的关联关系。

语法格式:

ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名;

唯一约束

唯一约束是指所有字段中的值不能重复出现,也就是一列中的值不能重复出现,唯一约束可以在表中有多个,也可以允许有空值,但只能有一个空值。

创建表时设置唯一约束

语法格式:

字段名 数据类型 UNIQUE

在修改表时添加唯一约束

语法格式:

ALTER TABLE 数据表名 (ADD CONSTRAINT 唯一约束名) UNIQUE(列名1,列名2);

删除唯一约束

语法格式

ALTER TABLE 表名 DROP INDEX 唯一约束名;

检查约束

检查约束是指检查数据表中的字段是否有效,可以减少无效数据的输入。

创建表时设置检查约束

CHECK (表达式)   --表达式是指定检查的限定条件

修改表时设置检查约束

ALTER TABLE 数据表 ADD CONSTRAINT 检查约束名 CHECK(检查约束)

删除检查约束

ALTER TABLE 数据表名 DROP CONSTRAINT 检查约束名;

非空约束

非空是指字段的值不能为空。

创建表时设置非空约束

字段名 数据类型 NOT NULL;

修改表时设置非空约束

ALTER TABLE 数据表  MODIFY  字段名  数据类型  NOT NULL;

删除非空约束

ALTER TABLE 数据表  MODIFY  字段名  数据类型 ;

默认值约束

默认值约束是用来指定某列的默认值,在表中插入新纪录时,如果没有为某个字段赋值,则系统自动为这个字段插入默认值。

创建表时设置默认值

语法格式:

字段名 数据类型 DEFAULT 默认值;

修改表时设置默认值

语法格式:

ALTER TABLE 数据表  ALTER 字段名 SET DEFAULT 默认值

撤销默认值

语法格式:

ALTER TABLE 数据表  ALTER 字段名 DROP DEFAULT

查看表中的约束

语法格式:

SHOW CREATE TABLE 数据表名;

你可能感兴趣的:(mysql,sql,数据库)