MySQL-05-约束

一、MySQL 约束的概念及使用方法

1、约束的概念

对表中的数据进行限定,保证数据的正确性、有效性和完整性。

2、约束的分类

(1)主键约束:primary key

(2)非空约束:not null

(3)唯一约束:unique

(4)外键约束:foreign key

2.1 非空约束:值不能为空

(1)创建表时添加约束
CREATE TABLE STU(
    id INT,
    name VARCHAR(20) NOT NULL;#name为非空
);
(2)创建表后,添加非空约束
ALTER TABLE stu MODIFY name VARCHAR(20) NOT NULL;
(3)删除name的非空约束
ALTER TABLE stu MODIFY name VARCHAR(20);

2.2 唯一约束:值不能重复

(1)创建表时添加约束
CREATE TABLE STU(
    id INT,
    tel VARCHAR(20) UNIQUE;#tel不能重复
);
(2)创建表后,添加唯一约束
ALTER TABLE stu MODIFY tel VARCHAR(20) UNIQUEL;
(3)删除tel的唯一约束
ALTER TABLE stu DROP INDEX tel;

2.3 主键约束:非空且唯一,一个表中只能有一个主键,唯一标识

(1)创建表时添加主键约束
CREATE TABLE STU(
    id INT primary key,#添加主键
    name VARCHAR(20)
);
(2)创建表后,添加主键约束
ALTER TABLE stu MODIFY id int primary key;
(3)删除主键约束
ALTER TABLE stu DROP PRIMARY KEY;

2.4. 主键约束中的自动增长

(1)创建表时添加主键约束及自增长
CREATE TABLE STU(
    id INT primary key auto_increment,#添加主键及自增长
    name VARCHAR(20)
);
(2)创建表后,添加主键约束及自增长
ALTER TABLE stu MODIFY id INT primary key auto_increment;
(3)删除自增长,无法删除主键
ALTER TABLE stu MODIFY id INT;

2.5 外键约束

(1)创建表时添加外键约束
CREATE TABLE 表名(
    ......
    外键列
    constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)
);
 
(2)创建表后,添加主键约束及自增长
ALTER TABLE 表名 ADD constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称);
 
(3)删除外键约束
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

2.5.1 外键约束设置级联更新和级联删除

ALTER TABLE 表名 ADD constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称) on
原文地址:https://www.cnblogs.com/Mr-Wei/p/15386736.html