mysql录入foreigen错误_入坑数据库MySQL(3)-约束

约束

约束——用于实现数据完整性,数据完整性理解为:数据的有效性(正确性)。

数据库完整性概述:

(1)实体完整性(行与行) 主键约束、外键约束

(2)域(字段)完整性(各个字段数值) 非空约束、默认值约束、检查

(3)参照完整性(表与表) 外键约束

(4)用户(自定义)完整性

约束的类型:

(1)主键约束

(2)外键约束

(3)非空约束

(4)唯一约束

(5)默认值约束

(6)检查约束

1)主键约束(PRIMARY KEY)

用来唯一标识表中的一个列,一个表中主键约束最多只能有一个,不同的行上,主键值不能相等。

在创建表时设置联合主键约束。联合主键,即多个列联合作为主键。这是,主键列的值不能同时都相等。

修改表时添加主键约束

语法格式:

ALTER TABLE 表名

ADD CONSTRAINT 约束名 PRIMARY KEY(列名);

复制代码表名:要添加约束的表

约束名:由用户指定,用于标识约束

列名:要添加主键约束的列

修改表时删除主键约束

语法格式:

ALTER TABLE 表名

DROP PRIMARY KEY;

复制代码

注意:由于主键约束在一个表中只能有一个,因此不需要指定主键名就可以删除。

2)外键约束( FOREIGN KEY )

外键是指引用另一个表中的一列或多列,被引用的列应该具有主键约束或唯一约束。

外键用于建立和加强两个表数据之间的连接。

外键用于建立和加强两个表数据之间的连接。

外键用于建立多个表之间的关系。

添加外键

语法格式:

ALTER TABLE 表名

ADD CONSTRAINT 约束名

FOREIGN KEY (外键字段名) REFERENCES 外键表名(列名);

复制代码

删除外键

语法格式:

ALTER TABLE 表名

DROP FOREIGN KEY 外键名;

复制代码EG:

ALTER TABLE student

ADD CONSTRAINT FK_ID

FOREIGEN KEY (gid) REFERENCES grade(id);

复制代码

含义:

在student表的gid列上建立一个外键约束,该约束是参照grade表的id字段。

对表添加数据时有什么影响?对于被参照的表grade:添加数据时无任何影响。

对于外键表student上的外键列gid:该列上的数据只能选择被参照表grade上被参照列id中的数据。

简单的说:student表上gid列中的数据,只能是grade表上id列中已有的数据。即,student表的gid外键依赖于grade表的id。

3)非空约束(NOT NULL)

用来限定数据表中的列必须输入值。

修改表时添加非空约束

语法格式:

ALTER TABLE 表名

MODIFY 列名 该列数据类型 NOT NULL ;

复制代码

4)唯一约束(UNIQUE)

用来唯一标识表中列的,不同的行上,唯一键的值也不能相等与主键约束不同的是,在一张数据表中可以有多个唯一约束。

修改表时添加唯一约束

语法格式:

ALTER TABLE 表名

ADD CONSTRAINT 约束名 UNIQUE(列名);

复制代码

删除唯一约束

语法格式:

DROP INDEX 约束名 ON 表名

复制代码

5)默认值约束(DEFAULT)

用来当不给表的列输入值时,自动为该列指定一个值。

修改表时添加默认值约束

语法格式:

ALTER TABLE 表名

ALTER 列名 SET DEFAULT 默认值 ;

复制代码

删除默认值约束

语法格式:

ALTER TABLE 表名

ALTER 列名 DROP DEFAULT ;

复制代码

小结

1、 表创建后,再添加约束

主键约束

ALTER TABLE 表名

ADD CONSTRAINT 约束名 PRIMARY KEY(列名);

复制代码唯一约束

ALTER TABLE 表名

ADD CONSTRAINT 约束名 UNIQUE(列名);

复制代码非空约束

ALTER TABLE 表名

MODIFY 列名 该列数据类型 NOT NULL ;

复制代码默认约束

ALTER TABLE 表名

ALTER 列名 SET DEFAULT 默认值 ;

复制代码外键约束

ALTER TABLE 表名

ADD CONSTRAINT 约束名

FOREIGN KEY (外键字段名) REFERENCES 外键表名(列名);

复制代码

注意:约束名称可以使用SHOW CREATE TABLE 表名;来查询。

2、删除约束

主键约束

ALTER TABLE 表名

DROP PRIMARY KEY;

复制代码唯一约束

DROP INDEX 约束名 ON 表名

复制代码非空约束

ALTER TABLE 表名

MODIFY 列名 该列数据类型 ;

复制代码默认约束

ALTER TABLE 表名

ALTER 列名 DROP DEFAULT ;

复制代码外键约束

ALTER TABLE 表名

DROP FOREIGN KEY 外键名;

复制代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值