约束
约束
概念:对表中数据进行限定,保证数据的正确性,有效性和完整性
约束的分类
- 主键约束:primary key
- 非空约束:not null
- 唯一约束:unique
- 外键约束:foreign key
非空约束:not null
- 创建表时添加约束
CREATE TABLE stu(
id INT,
NAME VARCHAR(20) NOT NULL
);
- 创建表完后,添加非空约束
ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;
3.删除name的非空约束
ALTER TABLE stu MODIFY NAME VARCHAR(20);
唯一约束:unique,某一列的值不能重复
- 注意:唯一约束可以有null值,但是只能有一条记录为null
- 在创建表时,添加唯一约束
CREATE TABLE stu(
id INT,
phone_number VARCHAR(20) UNIQUE
);
- 删除唯一约束
Alter table stu drop index phone_number;
- 在表创建完后,添加唯一约束
ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;
主键约束:primary key
注意事项
1.含义:非空且唯一
2.一张表只能有一个字段为主键
3.主键就是表中记录的唯一标识
具体用法
- 在创建表时,添加主键约束
Create table stu(
Id int primary key, -- 给id添加主键约束
Name varchar(20)
);
- 删除主键
ALTER TABLE stu MODIFY Id INT; -- 错误的写法
ALTER TABLE stu DROP PRIMARY KEY; -- 正确的写法
- 创建完表后,添加主键
ALTER TABLE stu MODIFY Id INT PRIMARY KEY;
自动增长
概念
概念:如果某一列是数值类型的,使用aotu_increment 可以来完成值得自动增长
用法举例
- 在创建表时,添加主键约束,并且完成主键自动增长
Create table stu(
Id int primary key auto_increment, -- 给id添加主键约束
Name varchar(20)
);
- 删除自动增长
ALTER TABLE stu MODIFY id INT ;
- 添加自动增长
ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;
外键约束:foreign key
作用
作用:让表与表产生关系,从而保证数据的正确性
用法举例
- 在创建表时,可以添加外键
语法:create table 表名(
….
外键列
Constraint 外键名称 foreign key 外键列名称 references 主表名称(主表列名称)
);
- 删除外键
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
- 创建表之后, 添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);
级联操作
添加级联的操作
语法:
-- 添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE ON DELETE CASCADE ;
分类
1.级联更新:ON UPDATE CASCADE
2.级联删除:ON DELETE CASCADE