MYSQL基础知识之约束

1、概念

约束是作用于表中字段上的规则,用于限制存储在表中的数据,其目的是保证数据库中数据的正确、有效性和完整性。

常用的约束如下表:

 

 注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束

2、案例

 需求:

 

 

 代码:

CREATE TABLE students2(
id int PRIMARY KEY AUTO_INCREMENT COMMENT '用户id',
name varchar(10) NOT NULL UNIQUE COMMENT '姓名',
password varchar(10) DEFAULT '123456' COMMENT '密码',
gender char(1) COMMENT '性别'
)COMMENT '学生表';

 

 

3、外键约束

 外键是用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性

语法:

#在创表时添加外键
CREATE TABLE 表名(
字段名 数据类型,
...
[CONSTRAINT] [外键名] FOREIGN KEY (外键字段名) REFERENCES 主表(主表列名)
);
#创表后添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (外键字段名) REFERENCES 主表(主表列名);

代码1:

# 字表
CREATE TABLE classinfo(
id int PRIMARY KEY AUTO_INCREMENT COMMENT '班级id',
name varchar(50) NOT NULL COMMENT '班级名'
)COMMENT '班级表';
# 主表
CREATE TABLE students3(
id int PRIMARY KEY AUTO_INCREMENT COMMENT 'id',
name varchar(50) NOT NULL COMMENT '学生名',
password varchar(10) DEFAULT '123456' COMMENT '密码',
gender char(1) COMMENT '性别',
classid int NOT NULL COMMENT '班级id',
CONSTRAINT fk_students_classinfo_id FOREIGN KEY (classid) REFERENCES classinfo(id)
)COMMENT '班级表';

 代码2:

ALTER TABLE students3 ADD CONSTRAINT fk_student_classinfo FOREIGN KEY (classid) REFERENCES classinfo(id);

 

 

 

4、删除外键

 语法:ALTER TABLE 表名 DROP FOREIGN KEY 外键名;

ALTER TABLE students3 DROP FOREIGN KEY fk_students_classinfo_id;

 

 

5、行为

 在设置外键之后,就无法轻易地删除数据表中的数据,这是因为存在外键约束行为——删除/更新行为

外键的删除/更新行为有:

 

 为外键设置删除/更新行为语法格式如下:

ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY (外键字段) REFERENCES 主表名(主表字段) ON UPDATE 行为 ON DELETE 行为;

ALTER TABLE students3 ADD CONSTRAINT fk_student_classinfo FOREIGN KEY (classid) REFERENCES classinfo(id) ON UPDATE CASCADE ON DELETE CASCADE;

 

 

 

posted @ 2023-04-05 22:58  城为唯一  阅读(18)  评论(0编辑  收藏  举报