目录
1.主键约束 PK
在关系数据库,一个表中,只能有一个主键(Primary Key),有些数据库没有pk,系统报出错误。在mysql数据库,建立表时,可以有主键,也可以没有主键(推荐建立表时必须有主键)。
主键列,在插入数据时,必须填写,不能为null,不能重复。这点类似于我们每个人都有一个身份证号,并且这个身份证号是唯一的。
-- 在建立表的时候加上主键 (两种方法)
1.字段 字段类型 primary key;
2.在表的最后加入主键 例:
create table stu(
id int auto_increment,
name varchar(30),
age tinyint,
primary key(id) -- 主键
);
-- 建立复合主键 但是表中还是只有一个主键 这个主键是复合主键
create table stu(
id int auto_increment, -- 自增
name varchar(30),
age tinyint,
primary key(id,name) -- 主键
);
-- alter 增加主键 在建立表的时候没有添加主键
create table s (
id int auto_increment ,
naem varchar(30),
age tinyint ,
gender varchar(10)
);
-- 在上表中增加主键
alter table s add primary key (id);
1.1 删除主键
alter table 表名 drop primary key;
2.外键约束 FK
FK (foreign key) 外键约束,一般涉及现价个表,关联约束形式,在mysql,表的存储引擎为innodb时才可以使用外键。表的存储引擎默认是innodb。
一个表中的外键关联的是另一个表的主键,在删除外键信息时默认是不能删除的。
例: 先建立一个教师表,再建立一个学生表 ,学生表有关联的老师,要删除教师表默认是不能删除的。
2.1删除外键
alter table 表名 drop foreign key 外键名;
-- alter 增加外键
alter table 表名 add constraint 外键名 foreign key(关联的信息字段) references 关联的表的主键;
-- 级联删除
on update cascade
-- 级联修改
on delete cascade
-- 级联修改 删除时关联的信息变为空
on update cascade on delete set null
2.2建立外键是的几个细节
- 从表里的外键通常为主表的主键
- 从表里外键的数据类型必须与主表中主键的数据类型一致
- 主表发生变化时应注意主表与从表的数据一致性问题
3.非空约束 not null
建立表的时候规定字段不能为空,插入数据时如果插入空数据就会报错。
语法:
字段名 字段类型 not null
4.唯一约束 unique
表中字段是唯一的,不能重复
语法:
字段名 字段类型 unique
5.默认值约束 defalult
给表中字段指定默认的值,即在插入数据时该字段没有赋值,则会自动给该字段插入默认值
语法:
字段名 字段类型 default 默认值