两个字段联合唯一
create table xxx(
id int,
name varchar(255),
unique(id,name)
);
注意 not null 没有表级约束,只有列级约束
联合主键
primary key(id,name)//任意一行都不能为空,且这一组数据不可重复
主键分为自然主键和业务主键。自然主键与业务无关,如无意义的数字,业务主键和业务相关,如银行卡号。在项目中推荐使用自然主键。因为如果主键与业务挂钩,当业务改变时主键也会发生变化
create table xxx(
id int primary key auto_increment, //不用插入主键值,自增
name varchar(255)
);
外键 foreign key(本表字段) references 外表名(外表字段)
需要注意外键可以为空,但引用外表的字段必须有unique属性
-- 追加主键约束
alter table employ add primary key(sno);
-- 删除主键约束
alter table employ drop primary key;
-- 添加唯一约束
alter table users add unique (name, password);
-- 删除约束
alter table users drop index name;
删除联系约束时,只用打出第一列即可