主键约束
主键约束:唯一约束+非空约束,该字段上的数据不能重复且不能为null
注意:一张表必须有且只有一个主键
添加主键约束 -- 方式一(推荐)
CREATE TABLE user( username VARCHAR(32) PRIMARY KEY, password VARCHAR(32), nick_name VARCHAR(32), name VARCHAR(32), age INT(3), salary DECIMAL(20,2) )
添加主键约束 -- 方式二
CREATE TABLE user( username VARCHAR(32), password VARCHAR(32), nick_name VARCHAR(32), name VARCHAR(32), age INT(3), salary DECIMAL(20,2), phone VARCHAR(32) ) alter table user add primary key(username);
添加主键约束 -- 方式三
CREATE TABLE user( username VARCHAR(32), password VARCHAR(32), nick_name VARCHAR(32), name VARCHAR(32), age INT(3), salary DECIMAL(20,2), phone VARCHAR(32), primary key(username,password) )
删除主键约束
alter table user drop primary key;
唯一约束
理解:该字段上的数据不能重复,但可以为null
创建唯一约束
alter table user add unique(phone);
删除唯一约束
alter table user drop index phone;
非空约束
理解:该字段上的数据不能为null,但可以重复
添加非空约束
alter table user modify password varchar(32) not null;
删除非空约束
alter table user modify password varchar(32) null;
需求:设置password字段为非空字段,设置默认值为'000000'
alter table user modify password varchar(32) not null default '000000';
外键约束
理解:验证两个字段的参照完整性
创建外键约束
alter table user add foreign key(nationality_id) references nationality(id);
删除外键约束
注意:外键名使用SHOW CREATE TABLE user;查看
alter table user drop foreign key user_ibfk_1;
标签:限制,32,外键,约束,user,VARCHAR,数据,alter From: https://blog.csdn.net/secret010/article/details/140160148注意:项目中不用外键
原因:使用外键约束效率会降低,因为添加数据、修改数据会去外键指向的表中查询
外键的优点:不会有脏数据的出现
外键的缺点:添加数据、修改数据会去外键指向的表中查询
缺点的解决方案:客户端选项就不会出现未有的数据