表级别的约束
1、主键约束-primary key
主键:表中一个列或者多个列的组合,要求该列的数据唯一
单字段主键:字段名 数据类型 primary key
多字段主键:primary key (字段1,字段2)
一个表只有一个主键,主键列不允许为空。
例子:创建一张员工表tb_emp1,以id为主键
create table tb_emp1(
id int primary key,
name varchar(25),
deptid int,
salary float
);
create table tb_emp2(
id int,
name varchar(25),
deptid int,
salary float,
primary key(id)
);
例子:创建一张员工表tb_emp1,以id和name为组合主键
create table tb_emp3(
id int,
name varchar(25),
deptid int,
salary float,
primary key(id,name)
);
2、自动增长-auto_increment
作用与主键
create table tb_emp4(
id int primary key auto_increment,
name varchar(25),
deptid int,
salary float
);
插入数据:(以下几个例子是连续进行的)
不指定主键id的值,插入数据,主键将自动增长
已有id为6的数据,不能再插入id值相同的数据
id值根据最后一行的值继续自动增长
3、非空约束-not null
create table tb_emp5(
id int primary key auto_increment,
name varchar(25) not null,
deptid int not null,
salary float not null
);
4、默认值约束-default
create table tb_emp6(
id int primary key auto_increment,
name varchar(25) not null,
deptid int not null default 1,
salary float not null default 5000
);
5、外键约束 foreign key
外键主要用来将两个表的数据进行连接。外键可以有多个
建立部门表 tb_dept7、员工表tb_emp7,将两张表的deptid建立外键约束
create table tb_dept7(
id int primary key,
name varchar(20)
);
create table tb_emp7(
id int primary key auto_increment,
name varchar(25) not null,
deptid int not null default 1,
salary float not null default 5000,
constraint fk_emp7_dept7 foreign key(deptid) references tb_dept7(id)
);
删除外键:
Alter table 表名 drop foreign key 外键名称
例子:
Alter table tb_emp7 drop foreign key fk_emp7_dept7;