一、概念

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

 

二、分类

  • 主键约束:primary key
  • 非空约束:not null,值不能为 null
  • 唯一约束:unique,值不能重复
  • 外键约束:foreign key,让表与表产生联系,从而保证数据正确性

 

三、主键约束

1、添加约束(创建表时)

create table stu(
        id int primary key,    -- 给id添加主键约束
        name varchar(20)
);

2、添加约束(创建完表后)

ALTER TABLE stu MODIFY id INT PRIMARY KEY;

3、删除约束

错误:
ALTER TABLE stu modify id int ;
正确:
ALTER TABLE stu DROP PRIMARY KEY;

4、自动增长

(1)概念

如果某一列是数值类型的,使用 auto_increment 可以来完成值的自动增长

(2)实现

  • 添加主键约束,并让主键自动增长
create table stu(
    id int primary key auto_increment,-- 给id添加主键约束
    name varchar(20)
);
  • 添加自动增长
ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;
  • 删除自动增长
ALTER TABLE stu MODIFY id INT;

5、注意

  • 主键约束非空且唯一
  • 一张表只能有一个字段为主键
  • 主键就是表中记录的唯一标识

 

四、非空约束

1、添加约束(创建表时)

CREATE TABLE stu(
    id INT,
    NAME VARCHAR(20) NOT NULL -- name为非空
);

2、添加约束(创建完表后)

ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;

3、删除约束

ALTER TABLE stu MODIFY NAME VARCHAR(20);

 

五、唯一约束

1、添加约束(创建表时)

CREATE TABLE stu(
    id INT,
    phone_number VARCHAR(20) UNIQUE -- 添加了唯一约束
);

2、添加约束(创建完表后)

ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;

3、删除约束

ALTER TABLE stu DROP INDEX phone_number;

 

六、外键约束

1、添加约束(创建表时)

create table 表名(
    ....
    外键列
    constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)
);

2、添加约束(创建完表后)

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);

3、删除约束

ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

4、级联操作

(1)添加级联操作

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

(2)级联更新

ON UPDATE CASCADE

(3)级联删除

ON DELETE CASCADE

 

Posted on 2022-03-15 11:55  choco莉特  阅读(40)  评论(0编辑  收藏  举报