MySQL基础知识整理 ---- 约束

一.非空约束(not null)

1.创建表时进行非空约束

create table student(
   son char(5),
   sname varchar(10) not null
);

2.创建表完后添加或删除非空约束

alter table student modify sname varchar(10);  -- 删除非空约束
alter table student modify sname varchar(10)-- 添加非空约束

3.注意事项
默认允许字段为空

二.唯一约束(unique)

1.创建表时添加唯一约束

create table student(
   son char(5) unique,
   sname varchar(10)
);

2.创建表完后添加或删除唯一约束

alter table student drop index son; -- 删除唯一约束 
alter table student modify son char(5) unique; -- 添加唯一约束

3.注意事项
使用唯一约束的字段只允许存在一个NULL值,如果再有NULL值将不满足唯一约束。

三.主键约束(primary key)

1.创建表时添加主键约束

create table student(
   son char(5) primary key,  -- 将学号设置为主键
   sname varchar(10)
);

2.创建表完后添加后删除唯一约束

alter table student drop primary key;  -- 删除主键约束
alter table student modify son char(5) primary key; -- 添加主键约束

3.注意事项
使用主键约束的字段满足非空且唯一,且一张表只有一个主键。

4.自动增长(auto_increment)
如果某一个字段时数字类型的,可以使用auto_increment实现值的自增长。一般配合主键使用。
(1)创建表时添加自动增长

create table course(
   con int primary key auto_increment,
   cname varchar(10)
);

(2)创建表完后添加或删除自动增长

alter table course modify con int;  -- 删除自动增长,注意这样无法删除主键
alter table course modify con int auto_increment; -- 添加自动增长

四.外键约束(foreign key)

1.创建表时添加外键约束

/*
创建班级表
*/
create table class(
   id int primary key,
   className varchar(10),  -- 班级名称
   classLocation varchar(10) -- 班级所在校区
); 

/*
创建学生表关联班级表
*/
create table student(
   son char(5) primary key,
   sname varchar(10),
   class_id int, -- 外键列
   constraint stu_cls_fk foreign key (class_id) references class(id)  -- 关联
);

2.创建表完后添加或删除外键约束

alter table student drop foreign key stu_cls_fk; -- 删除外键
alter table student add constraint stu_cls_fk foreign key (class_id) references class(id); -- 添加外键

3.注意事项
外键的主要作用是使表互相关联,保证数据的正确性。添加了外键的表将不能随意的添加或删除数据。
在这里插入图片描述
4.级联操作
使相互关联的表之间的数据可以同步更新
(1)创建表时添加级联更新(on update cascade)和级联删除(on delete cascade),这两个操作可以同时添加也可以分开添加

/*
创建班级表
*/
create table class(
   id int primary key,
   className varchar(10),  -- 班级名称
   classLocation varchar(10) -- 班级所在校区
);

/*
创建学生表并关联班级表同时设置级联
*/

create table student(
  son char(5) primary key,
  sname varchar(10),
  class_id int,
  constraint stu_cls_fk primary key (class_id) references class(id) on update cascade on delete cascade;  -- 关联同时设置级联

);

(1)创建完表后添加级联更新和级联删除

/*
添加级联:首先需要删除外键,然后再添加外键的同时设置级联
删除级联:删除外键,再添加外键时不设置级联即可
*/
alter table student drop foreign key stu_cls_fk;
alter table student add constraint stu_cls_fk primary key (class_id) references class(id) on update cascade on delete cascade; -- 添加级联

以上即使关于MySQL约束部分的基础知识整理,如有错误还请批评指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值