小白终是踏上了这条不归路----小文的mysql学习笔记(16)----常见的约束条件以及它的添加和删除方式

**
小白终是踏上了这条不归路----小文的mysql学习笔记(1)

小白终是踏上了这条不归路----小文的mysql学习笔记(2)----条件查询

小白终是踏上了这条不归路----小文的mysql学习笔记(3)----排序询查

小白终是踏上了这条不归路----小文的mysql学习笔记(4)----常见的基本函数

小白终是踏上了这条不归路----小文的mysql学习笔记(5)----分组查询


小白终是踏上了这条不归路----小文的mysql学习笔记(目录)
**
含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性

语法:
直接在字段名和类型后面追加约束类型即可。
只支持: 默认(DEFAULT)、非空(NOT NULL)、主键(PRIMARY  KEY)、唯一(UNIQUE

六大约束:
(1)NOT NULL:非空,用于保证该字段的值不能为空
比如姓名、学号等
(2)DEFAULT: 默认,用于保证该字段有默认值
比如性别
(3)PRIMARY KEY:主键,用于保证该字段的值具有唯一-性,并且非空
比如学号、员工编号等
(4)UNIQUE:唯一键,用于保证该字段的值具有唯一-性,可以为空
比如座位号
(5)CHECK:检查约束【mysql 中不支持】(意思就是在mysql中你输入check它不会报错,但是也不会执行!)
(6)FOREIGN KEY:外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值.
在从表添加外键约束,用于引用主表中某列的值
比如学生表的专业编号,员工表的部门编号,员工表的工种编号

只有在两种情况下可以添加约束:     1.创建表时
                                                         2.修改表时

约束的添加分类:
                    列级约束:   六大约束语法上都支持不会报错,但外键约束没有效果.
                    表级约束:    除了非空(NOT NULL)、默认(DEFAULT),其他的都支持.

一般情况下:我们像主键(PRIMARY KEY)和唯一键(UNIQUE)这种就用列级分类
外键 就用表级分类。

主键(prmary key)和唯一键(unique)都可以保证唯一性,但是唯一键可以为null而主键不可以;一个表可以有多个唯一键但只能有一个主键,他们都被允许组合,但不推荐

组合主键当中是可以部分重复,但是不允许全部重复。

外键的特点:  1、要求在从表设置外键关系
                      2、从表的外键列的类型和主表的关联列的类型要求一致或兼容,名称无要求
                      3、主表的关联列必须是一个key (一般是主键或唯一)
                      4、插入数据时,先插入主表,再插入从表.
                      删除数据时,先删除从表,再删除主表

下面我们分别来实操一下:

一、创建表时添加约束
1、添加列级约束

我们先创建一个students库
在这里插入图片描述
然后我们再分别插入一张stuinfo表和一张major表然后给他们设置约束条件
在这里插入图片描述

这里补充一个知识:show index from 表
这个命令有助于诊断性能低下的查询,尤其是查询是否使用了可用的索引。

在这里插入图片描述

2、添加表级约束

语法:
在各个字段的最下面添加 【constraint 约束名】约束类型(字段名)
注:【】内内容可省略不写

那么我们举一个栗子:我们先把上一个stuinfo表删掉,重新用表级连接建立
在这里插入图片描述
这样出来的效果和上面是一样的,当然 constraint 约束名 可以省略,像这样:
在这里插入图片描述
他们效果是一样的

二、修改表时添加约束

语法
添加列级约束:
alter table 表名 modify column 字段名 字段类型 约束条件;
添加表级约束:
alter table 表名 add 【cons’t’raint 约束名】 约束类型(字段名) 【外键的引用】

那么下面我们分别举一个栗子吧
我们同样先把上面的stuinfo表删掉,然后再重新建一个没有任何约束的stuinfo表,然后再将约束条件添加进去。
在这里插入图片描述
1、给添加主键(两种方式)
以列级约束添加:
在这里插入图片描述
以表级约束添加:
在这里插入图片描述
2、给stuname添加非空约束
在这里插入图片描述
3、给seat添加唯一键
以列级约束添加:
在这里插入图片描述
以表级约束添加:
在这里插入图片描述
4、给age添加默认约束
在这里插入图片描述
5、给majorid添加外键
在这里插入图片描述

三、修改表时删除约束

语法: alter table 表名 drop 约束条件 列名(也可能是你取了别名的约束名);
            alter table 表名 modify column 列名 数据类型 null;
            alter table 表名 modify column 列名 数据类型 ;
1、删除主键
在这里插入图片描述
2、删除唯一键
在这里插入图片描述
3、删除外键(因为上面我们插入外键的时候取了一个别名fk所以这里删的时候写fk)
在这里插入图片描述
4删除非空约束
在这里插入图片描述
5、删除默认约束
在这里插入图片描述
**

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值