use test;
drop table if exists stuinfo;
create table stuinfo(
id
int not null unique,
stuname
varchar(20) unique,
gender
char default '男',
age
int unsigned check (age between 0 and 120)
);
desc stuinfo;
select * from stuinfo;
insert into stuinfo(id,stuname,age)
values(3,'lily',12);
insert into stuinfo
values(5,'jack',default,900);
insert into stuinfo
values(7,null,default,900);
drop table if exists stuinfo;
create table stuinfo(
id
int not null unique,
stuname
varchar(20) unique,
gender
char default '男',
age
int unsigned check (age between 0 and 120)
);
2、表级约束
create table stuinfo(
id
int ,
stuname
varchar(20),
gender
char,
age
int unsigned,
【constraint 约束名】约束类型(字段)
);
create table grade(
id int primary key,
gradename varchar(20)
)
drop table if exists stuinfo;
create table stuinfo(
id
int not null,
stuname
varchar(20),
gender
char default '男',
age
int unsigned,
gradeid
int,
primary
key(id,stuname),
constraint
uq unique(age),
constraint
fk_stuinfo foreign key(gradeid) references grade(id)
);
desc stuinfo;
select * from grade;
insert into grade values(1,'一年级'),(2,'二年级'),(3,'三年级');
insert into stuinfo values(2,'lucy','男',233,1);
insert into stuinfo values(3,'lucy','男',13,10);
3、修改表时添加约束
drop table if exists stuinfo;
create table stuinfo(
id
int ,
stuname
varchar(20),
gender
char,
age
int unsigned,
gradeid
int
);
desc stuinfo;
Alter table stuinfo modify column gender
char not null;
alter table stuinfo modify column age int
unsigned default 18;
alter table stuinfo modify column id int
primary key;
alter table stuinfo add primary key(id);
alter table stuinfo modify column stuname
varchar(20) unique;
alter table stuinfo add constraint
uq_stuinfo unique(stuname);
alter table stuinfo add constraint
fk_stuinfo_grade foreign key(gradeid) references grade(id);
4、修改表时删除约束
alter table stuinfo modify column gender
char ;
alter table stuinfo modify column age int
unsigned;
alter table stuinfo modify column id int ;
alter table stuinfo drop primary key;
alter table stuinfo modify column stuname
varchar(20);
alter table stuinfo drop index uq_stuinfo;
show index from stuinfo;
alter table stuinfo drop foreign key
fk_stuinfo_grade;
5、常见约束练习
KEY约束(my_emp_id_pk)
alter table emp2 add constraint
my_emp_id_pk primary key(id);
KEY约束(my_dept_id_pk)
alter table dept2 add constraint
my_edpt_id_pk primary key(id);
KEY约束,与之相关联的列是dept2表中的id列。
alter table emp2 add constraint fk foreign
key (dept_id) references dept2(id)