1、非空约束:not null,某一列的值不能为空
CREATE TABLE stu( id INT, NAME VARCHAR(20) NOT NULL -- name 为非空 )ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
-- 删除name 的非空约束 ALTER TABLE stu MODIFY NAME VARCHAR(20); -- 创建表之后 ,添加非空约束 ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL; SELECT * FROM stu;
2.唯一约束:unique,约束某一列的值不能重复
-- 创建表时,条件唯一约束 CREATE TABLE stu( id INT, phone_number VARCHAR(20) UNIQUE -- 手机号 )ENGINE = INNODB DEFAULT CHARSET = utf8; -- 添加表完成之后,添加唯一约束 ,如果表里数据有重复项,需要删除之后再操作 ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE; -- 删除唯一约束 ALTER TABLE stu DROP INDEX phone_number; SELECT * FROM stu;
3.主键约束:primary key
* 1、含义:非空且唯一
2、一张表中只能有一个字段为主键
3、主键就是表中记录的唯一标识
CREATE TABLE stu( id INT PRIMARY KEY,-- 给ID添加主键, NAME VARCHAR(20) )ENGINE = INNODB DEFAULT CHARSET = utf8; -- 添加表完成之后,添加唯一约束 ALTER TABLE stu MODIFY id INT PRIMARY KEY; -- 删除唯一约束 ALTER TABLE stu DROP PRIMARY KEY; SELECT * FROM stu;
4.外键:foreign key ,让表与表产生联系,保证数据的正确性
-- 在创建表时,添加外键 CREATE TABLE 表名( .... 外键列 constraint 外键名称 foreign key(外键列名称) reference 主表名称(主表列名称) ); -- 删除外键 alter table 表名 drop foreign key 外键名称 -- 创建表之后 添加外键,设置级联更新,级联删除 alter table 表名 add constraint 外键名称 foreign key(外键字段名称) reference 主表名称(主表列名称)on update cascade on delete cascade;