主键约束(primary key) PK
自增长约束(auto_increment)
非空约束(not null)
唯一性约束(unique)
默认约束(default)
零填充约束(zerofill)
外键约束(foreign key) FK
主键约束(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值)
);