一、约束
1.什么是约束
对表中的数据进行限定,保证数据的正确性、有效性、完整性!
2.约束的分类
约束 作用
PRIMARY KEY 主键约束
PRIMARY KEY AUTO_INCREMENT 主键自增
UNIQUE 唯一约束
NOT NULL 非空约束
FOREIGN KEY 外键约束
FOREIGN KEY ON UPDATE CASCADE 外键级联更新
FOREIGN KEY ON DELETE CASCADE 外键级联删除
二、外键约束
1.为什么要有外键约束?
当表与表之间的数据有相关联性的时候,如果没有相关的数据约束,则无法保证数据的准确性!
2.外键约束的作用
让表与表之间产生关联关系,从而保证数据的准确性!
3.建表时添加外键约束
CREATE TABLE 表名(
列名 数据类型 约束,
.......
CONSTRAINT 外键名称 FOREIGN KEY (本表外键列名) REFERENCES 主表名(主表主键列名)
);
4.删除外键约束
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
5.添加外键约束
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (本表外键列名) REFERENCES 主表名(主表主键列名);
三、外键的级联更新和级联删除
1.什么是级联更新
当想把主表中的数据进行修改时,我期望从表中的有关联的数据也会随之修改!
2.什么是级联删除
当想把主表中的数据进行删除时,我期望从表中的有关联的数据也会随之删除!
3.添加级联更新
ALTER TABLE 表名 ADD
CONSTRAINT 外键名称 FOREIGN KEY(本表外键列名) REFERENCES 主表名(主键列名)
ON UPDATE CASCADE;
4.添加级联删除
ALTER TABLE 表名 ADD
CONSTRAINT 外键名称 FOREIGN KEY(本表外键列名) REFERENCES 主表名(主键列名)
ON DELETE CASCADE;
5.同时添加级联更新和级联删除
ALTER TABLE 表名 ADD
CONSTRAINT 外键名称 FOREIGN KEY(本表外键列名) REFERENCES 主表名(主键列名)
ON UPDATE CASCADE ON DELETE CASCADE;
四、主键约束
1.主键约束的特点
主键约束默认包含非空和唯一两个功能。
一张表只能有一个主键。
主键一般用于表中的数据的唯一标识。
2.建表时添加主键约束
CREATE TABLE 表名(
列名 数据类型 PRIMARY KEY,
.........
列名 数据类型 约束
);
3.删除主键约束
ALTER TABLE 表名 DROP PRIMARY KEY;
4.建表后单独添加主键约束
ALTER TABLE 表名 MODIFY 列名 数据类型 PRIMARY KEY;
五、主键自增约束
1.建表时添加主键自增约束
CREATE TABLE 表名(
列名 数据类型 PRIMARY KEY AUTO_INCREMENT,
.........
列名 数据类型 约束
);
2.删除主键自增约束
ALTER TABLE 表名 MODIFY 列名 数据类型;
3.建表后单独添加主键自增约束
ALTER TABLE 表名 MODIFY 列名 数据类型 AUTO_INCREMENT;
*MySQL中的自增约束,必须配合键的约束一起使用!
六、唯一约束
1.建表时添加唯一约束
CREATE TABLE 表名(
列名 数据类型 UNIQUE,
.........
列名 数据类型 约束
);
2.删除唯一约束
ALTER TABLE 表名 DROP INDEX 列名;
3.建表后单独添加唯一约束
ALTER TABLE 表名 MODIFY 列名 数据类型 UNIQUE;
七、非空约束
1.建表时添加非空约束
CREATE TABLE 表名(
列名 数据类型 NOT NULL,
.........
列名 数据类型 约束
);
2.删除非空约束
ALTER TABLE 表名 MODIFY 列名 数据类型;
3.建表后单独添加非空约束
ALTER TABLE 表名 MODIFY 列名 数据类型 NOT NULL;