mysql建表约束

SQL数据定义之约束

主键约束

唯一确定一张表中的一条记录,使字段不重复且不为空

CREATE TABLE user(
id int PRIMARY KEY,
name VARCHAR(20));

联合主键:主键值的并集可以唯一确定一张表中的一条记录

CREATE TABLE user2(
id int PRIMARY KEY,
name VARCHAR(20)PRIMARY KEY(id, name));

自增约束

CREATE TABLE user2(
id int PRIMARY KEY auto_increment,
name VARCHAR(20)PRIMARY KEY(id, name));

唯一约束

约束修饰的字段的值不可以重复

creat table user(
id integer,
name varchar(20) -- 方法一
unique(name) -- 方法二
);
alter table user add unique(name) -- 方法三 
insert into user values(1, '张三')
-- insert into user values(1, '张三') 错误,张三重复

删除唯一约束

alter table user 
drop index name

添加唯一约束

alter table user modify name varchar(20) unique

非空约束

creat table user(
id int,
name varchar(20) not null
);
-- insert into user values(1) 错误

默认约束

creat table user(
id integer,
    name varchar(20),
    age integer default 10
);
insert into user (id, name) values(i, '张三');

外键约束

creat table classes(
    id integer primary key,
    name varchar(20)
);
creat table student(
    id integer primary key,
    name varchar(20),
    classid integer,
    foreign key(classid) references classes(id)
);

1.主表classes中没有的数据值,在副表(子表)中,是不可以使用的

2.主表中的记录被附表引用,是不可以被删除的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值