约束:
作用:为了保证数据的有效性和完整性
mysql中常用的约束:主键约束(primary key ) 唯一约束(unique) 非空约束(not null ) 外键约束(foreign key )
主键约束
主键约束:被修饰过的字段唯一非空
注意:一张表只能有一个主键,这个主键可以包含多个字段(联合主键)
方式1:建表的同时添加约束 格式:字段名称 字段类型 primary 可以
方式2:建表的同时在约束区域添加约束
所有字段声明完成之后,就是约束区域了
格式:primary key(字段1,,字段2)
create table pK01(
id int ,
username varchar(20)
primary key(id)
);
方式3:建表之后 ,通过修改表结构添加约束
create table pk02(
id int,
username varchar(20)
)
alter table pk02 add primary key(字段1,字段2,...)
increment自增要求:
1.被修饰的字段类型支持自增.—般int
2.被修饰的字段必须是一个key一般是primary key
唯一约束
唯一约束:
被修饰过的字段唯一,对null不起作用
方式1:建表的同时添加约束格式:字段名称字段类型unique
create table un (
id int unique,
username varchar (20)unique
);
方式2:建表的同时在约束区域添加约束
所有的字段声明完成之后,就是约束区域了
unique(字段1,字段值2...)
方式3:建表之后,通过修改表结构添加约束
alter table表名add unique(字段1,字段2);-- 添加的联合唯一
alter table表名add unique(字段1);--给一个添加唯一
alter table表名add unique(字段2);--给另一个添加唯一
非空约束
非空约束(了解)
特点:被修饰过的字段非空方式:
create table nn (
id int not null,
username varchar (20) not null
) ;
外键约束
一对多
在开发中,我们将一对多的关系,一方称之为主表或者是一表,多方称之为 多表或者从表。
为了表示一对多的关系, 一般会在多表的地方添加一个字段。
字段名称自定义(建议:主表的名称_id) ,字段类型一般和主表的主键类型保持一致,
我们称之为这个字段为外键(约束)
为了保证数据的有效性和完整性,添加约束(外键约束)
在多表一方添加外键约束
格式:
alter table 多表名称 add foreign key (外键名称) references 主表名称(主键)
列如: alter table orders add foreign key(user_id) reference user(id)
添加外键约束有以下特点:sql
1.主表不能删除从表中已引用的数据
2.从表中不能添加主表中不存在的数据
多对多
在开发我们一般引入一张中间表,在中间表中存放两张表的主键,一般还会将这两个主键设置成中间表的联合主键,将多对多拆分为两个一对多
为了保证数据的有效性和完整性,在中间表上添加两个外键(约束)
alert table orderitem add foreign key(opd) reference orders(id)
alert table orderitem add foreign key(pid) reference product(id)
一对一
在开发中,例如:person idcard
思路1:将两个实体合二为一
思路2:在一个表上将这个表的主键设置成外键且添加外键约束.