约束:对表中的数据进行限定,保证数据的正确性、有效性和完整性。
非空约束:not null
-- 创建表时添加非空约束
CREATE TABLE stu(
id INT,
NAME VARCHAR(20) NOT NULL
);
-- 创建表后添加非空约束
ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;
-- 删除name的非空约束
ALTER TABLE stu MODIFY NAME VARCHAR(20);
唯一约束:unique
-- 唯一约束可以有NULL值,但只能有一条记录为NULL
-- 创建表时添加唯一约束
CREATE TABLE stu(
id INT,
phone_number VARCHAR(20) UNIQUE
);
-- 创建表后添加唯一约束
ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;
-- 删除唯一约束
ALTER TABLE stu DROP INDEX phone_number;
主键约束:primary key
-- 非空且唯一
-- 创建表时添加主键约束
CREATE TABLE stu(
id INT PRIMARY KEY,
NAME VARCHAR(20)
);
-- 创建表后添加主键约束
ALTER TABLE stu MODIFY id INT PRIMARY KEY;
-- 删除主键约束
ALTER TABLE stu DROP PRIMARY KEY;
--自动增长
CREATE TABLE stu(
id INT PRIMARY KEY AUTO_INCREMENT,
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;