MySQL【六】约束条件
MySQL约束条件
not null
# not null (是否可以为空)
create table stu(id int(10),
name char(12) not null,
sex enum('male','female')
);
not null + default(默认值)
create table stu2(
id int,
name char(12) not null,
phone char(11),
sex enum('male','female') not null default 'male'
);
unique(唯一)
create table stu3( id int, name char(12), ident char(18) unique );

unique(联合唯一)
ip + port 192.168.16.13 mysql 3306 192.168.16.13 kugou 8080 192.168.16.13 flask 5000 192.168.16.15 mysql 3306 192.168.16.16 mysql 3306 create table service( id int, ip char(15), name char(15), port int(5), unique(ip,port) );
auto_increment
自增的条件(这一列必须是数字,这一列必须是uniuqe)
create table userinfo( id int unique auto_increment, name char(12), password char(32) );
primary key(主键)
primary key(主键) == not null 非空 + unique 唯一
create table userinfo3( id int unique, username char(18) not null unique, password char(32), ident char(18) not null unique );
一张表中只能有一个主键 : 主键从约束的角度上来说 就是非空且唯一的
只不过,非空+唯一可以设置多个字段,但是主键只能给一个表中的一个字段设置
(一般情况下,我们给id字段设置为主键,不允许一张表不设置主键)
create table pri2( id1 int primary key, id3 int unique not null );
联合主键
约束多个字段各自不能为空,并且联合唯一
create table pri4(
id1 int,
num int,
primary key(id1,num)
);
外键
foreign Key(被关联的项) references 被关联的表(待关联的项)
# 表2 班级表 cid class_name
create table clas(
cid int primary key,
class_name char(20)
);
# 表1 学生表 id name class_id
create table stu(
id int primary key ,
name char(18),
class_id int,
foreign Key(class_id) references clas(cid)
);
级联更新,级联删除
(关联后可以修改也可以删除)on update cascade on dalete cascade
create table stu(
id int primary key ,
name char(18),
class_id int,
foreign Key(class_id) references clas(cid)
on update cascade on dalete cascade
);






浙公网安备 33010602011771号