MySql 表的约束

目录

1.主键约束 PK

2.外键约束 FK

2.1删除外键

2.2建立外键是的几个细节

3.非空约束 not null

4.唯一约束 unique

5.默认值约束 defalult


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建立外键是的几个细节

  1. 从表里的外键通常为主表的主键
  2. 从表里外键的数据类型必须与主表中主键的数据类型一致
  3. 主表发生变化时应注意主表与从表的数据一致性问题

3.非空约束 not null

建立表的时候规定字段不能为空,插入数据时如果插入空数据就会报错。

语法:

字段名 字段类型  not null

4.唯一约束 unique

表中字段是唯一的,不能重复

语法:

字段名 字段类型 unique

5.默认值约束 defalult

给表中字段指定默认的值,即在插入数据时该字段没有赋值,则会自动给该字段插入默认值

语法:

字段名 字段类型 default 默认值
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值