目录
主键约束(primary key) PK
create table emp1(
eid int primay key,
name VARCHAR(20),
deptId int,
salary double
);
#--在定义字段之后再指定主键,语法格式如下:
#create table 表名(
# ...
# [constraint <约束名>] primary key [字段名]
#);
create table emp2(
eid INT,
name VARCHAR(20),
deptId INT,
salary double,
constraint pk1 primary key(id)
);
联合主键
create table emp3(
name varchar(20),
deptId int,
salary double,
primary key(name,deptId)
);
修改表添加主键
-- 添加单列主键
create table emp4(
eid int,
name varchar(20),
deptId int,
salary double,
);
alter table emp4 add primary key(eid);
删除主键
-- 删除单列主键
alter table emp1 drop primary key;
-- 删除联合主键
alter table emp5 drop primary key;
自增长约束(auto_increment)
create table t_user1(
id int primary key auto_increment,
name varchar(20)
);
指定自增字段初始值
-- 方式1,创建表时指定
create table t_user2 (
id int primary key auto_increment,
name varchar(20)
)auto_increment=100;
-- 方式2,创建表之后指定
create table t_user3 (
id int primary key auto_increment,
name varchar(20)
);
alter table t_user2 auto_increment=100;
非空约束(not null)
-- 方式1,创建表时指定
create table t_user6 (
id int ,
name varchar(20) not null,
address varchar(20) not null
);
-- 方式2
create table t_user7 (
id int ,
name varchar(20) , -- 指定非空约束
address varchar(20) -- 指定非空约束
);
alter table t_user7 modify name varchar(20) not null;
alter table t_user7 modify address varchar(20) not null;
删除非空约束
-- alter table 表名 modify 字段 类型
alter table t_user7 modify name varchar(20) ;
alter table t_user7 modify address varchar(20) ;
唯一性约束(unique)
-- 创建表时指定
create table t_user8 (
id int ,
name varchar(20) ,
phone_number varchar(20) unique -- 指定唯一约束
);
create table t_user9 (
id int ,
name varchar(20) ,
phone_number varchar(20) -- 指定唯一约束
);
alter table t_user9 add constraint unique_ph unique(phone_number);
删除唯一约束
-- alter table <表名> drop index <唯一约束名>;
alter table t_user9 drop index unique_ph;
默认约束(default)
create table t_user10 (
id int ,
name varchar(20) ,
address varchar(20) default ‘北京’ -- 指定默认约束
);
-- alter table 表名 modify 列名 类型 default 默认值;
create table t_user11 (
id int ,
name varchar(20) ,
address varchar(20)
);
alter table t_user11 modify address varchar(20) default ‘北京’;
删除默认约束
-- alter table <表名> modify column <字段名> <类型> default null;
alter table t_user11 modify column address varchar(20) default null;
零填充约束(zerofill)
create table t_user12 (
id int zerofill , -- 零填充约束
name varchar(20)
);
删除
alter table t_user12 modify id int;
外键约束(foreign key) FK
Create table students(
id int primary key,
name varchar(20),
class_id int,
foreign key(class_id) references classes(id)(class_id必须来自classes表中的id值)
);