MySQL建表约束

MySQL建表约束

1、主键约束 primary key
它能够唯一确定一张表中的一条记录,也就是我们通过给某个字段添加约束,就可以使得该字段不重复且不为空。
create table user(
id int primary key,
name varchar(20)
);
修改表结构,添加主键,删除主键
添加:
alter table user add primary key(id);
删除:
alter table user drop primary key;
使用modify修改字段,添加约束:
alter table user modify id int primary key;

2、联合主键 primary key(id,name)
create table user(
id int,
name varchar(20),
password varchar(20),
primary key(id,name)
);
联合主键,只要联合的主键值加起来不相等即可,其中的一个或一部分相同是可以的,不能全部相等

3、自增约束 auto_increment
create table user(
id int primary key auto_increment,
name varchar(20)
);
被auto_increment修饰的字段,在插入记录时自动增长

4、唯一约束 unique
唯一约束修饰的字段的值不可以重复
create table user(
id int,
name varchar(20) unique
);

create table user(
id int,
name varchar(20),
unique(id)
);

添加唯一约束:
alter table user add unique(id);
alter table user modify id int unique;

create table user(
id int,
name varchar(20),
unique(id,name)
);
unique(id,name)表示两个键在一起不重复就行

删除唯一约束:
alter table user drop index name;

5、非空约束 not null
修饰的字段不能为空,即不能为null
create table user(
id int;
name varchar(20) not null
);

6、默认约束 default
当插入字段值时,如果没有传值,就会使用默认值,如果传了值,就使用传入的值
create table user(
id int,
name varchar(20),
age int default 10
);
上面的user表,如果不传入age的值,age就会默认为10

7、外键约束 foreign key(字段名) references 父表(字段名)
涉及到两个表:父表(主表),子表(副表)
例:
班级表
create table classes(
id int primary key,
name varchar(20)
);
学生表
create table students(
id int primary key,
name varchar(20),
class_id int,
foreign key(class_id) references classes(id)
);
注:
1)父表classes中的字段id没有的数据值,子表中的字段class_id是不可以使用的。
2)父表中被字表引用的记录是不可以删除的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值