主键约束:主键又称主码,是表中一列或多列的组合。
特点:主键约束要求主键列的数据唯一,并且不允许为空。主键类型分为单字段主键、多字段联合主键。<br /> 单字段主键:<br /> 定义列的时候指定主键
create table tb_emp1;
(
id int(11) primary key,指定主键
name varchar(25),
deptID int(11),
salary float
);
定义完所有列之后指定主键
create table tb_emp1;
(
id int(11),
name varchar(25),
deptID int(11),
salary float,
primary key(id)#指定主键
);
多字段联合主键:
create table tb_emp1;
(
id int(11),
name varchar(25),
deptID int(11),
salary float,
primary key(name,deptID)#多字段联合形成主键
);
外键约束:表的外键可以为空值,不为空值时,外键值必须等于另一个表主键中的某个值,定义完外键后不允许删除在另一个表中具有关联关系的行。
主要作用:保证数据的完整性,一致性。
例:部门表tb_dept的主键是id,员工表tb_emp外键字段为deptID。
主表(父表):两个具有关联关系的表中关联字段主键所处的表。
从表(子表):两个具有关联关系的表中关联字段外键所处的表。
创建部门表create table tb_dept(
id int(11) primary key,#部门编号
name varchar(22) not null,#部门名称
location varchar(50)#部门位置
)
创建员工表,并将deptID作为外键字段关联到部门表的主键
create table tb_emp(
id int(11) primary key,
name varchar(20),
deptID int(11),
salary float,
constraint fk_name foreign key(deptID) references tb_dept(id)#外键约束添加方式
)
非空约束:对于使用了非空约束的字段,在添加字段值时如果为空则会报错。
例:创建学生表设置指定name字段为非空约束。
create table stu_test(
id int(11) primary key,
name varchar(20) not null,#非空约束
location varchar(25)
)
唯一性约束:保证一列或者多列不出现重复值,允许为空,但只允许出现一次空值。
例:<br /> 创建字段时指定部门名称字段唯一,创建部门表tb_dept
create table tb_dept(
id int(11) primary key,
name varchar(22) unique,
location varchar(40)
)
定义完所有列之后指定唯一约束字段
create table tb_dept(
id int(11) primary key,
name varchar(22),
location varchar(40),
constraint test unique(name)
)
默认约束:指定某列的默认字段值,在没有对此列进行新值插入时,字段值为设置好的默认值。
例:创建部门表tb_empt,部门id默认为12345
create table tb_empt(
id int(11) primary key,
deptID int(11) default 123456#默认约束,默认值为123456
)
- 属性值自动增加约束:被约束字段必须为主键的一部分,添加好之后属性值自动增加1,默认初始值为1。
例:创建学生表,设置主键id字段为自动增加属性。
create table stu_test(
id int(11) primary key auto_increment,#自动增加约束
name varchar(20),
location varchar(50)
)