非空约束和唯一约束
非空约束:not null
1.创建表时进行约束
指定name不能为空
CREATE TABLE stu(
id int,
name varchar(20) NOT NULL -- name为非空
);
SELECT * FROM stu;
当name设置了非空,如果我们新添加记录的时候没有为name复制就会提示
1364 -Field 'name'doesn't have a default value
意思就是:字段名没有默认值
删除name的非空约束
ALTER TABLE stu MODIFY name varchar(20);
创建表后添加非空约束
ALTER TABLE stu MODIFY name VARCHAR(20) NOT NULL;
唯一约束
DROP table stu;
-- 创建表的时候添加唯一约束
CREATE TABLE stu(
id INT,
phone_number VARCHAR(20) UNIQUE -- 添加了唯一约束
);
-- 注意mysql中,唯一约束限定的列的值可以有多个null
-- 删除唯一约束
ALTER TABLE stu MODIFY phone_number VARCHAR(20);
SELECT * FROM stu;
如果添加了唯一约束那么该列就不可以出现重复元素