MySQL中检查约束举例详细讲解

 更新时间:2025年03月28日 08:28:47   作者:艺杯羹  
MySQL 检查约束(CHECK)是用来检查数据表中字段值有效性的一种手段,下面这篇文章主要介绍了MySQL中检查约束的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

一. 简介

检察约束属于DDL

约束可以理解成一种校验方式

 一共有5种约束,现在分别讲解一下

  • 主键约束(Primary Key)

    不允许为空

    不允许有重复值出现

    保证数据的唯一性

  • 外键约束(Foreign Key)

    允许有空值

    允许有重复

    值必须是参照表的参照列中所包含的值

    保证数据的参照完整性

  • 唯一性约束(Unique)

    相同值只能出现一次

    允许为多个列添加唯一性约束

    保证数据的唯一性

  • 非空约束(Not Null)

    列中不能有空值

    允许重复值

    允许为多个列添加非空约束

    保证数据没有空值

  • 检查约束(Check)

    用户自己定义约束条件

    保证数据满足自定义的条件约束

    MySQL 目前不支持检查约束

二. 主键约束(primary key

1. 添加主键约束

alter table 表名 add primary key(列名)

显然这里的id字段(列)要设置成主键

alter table students add primary key(id);

因为是主键,那么在当前表中是唯一的

如果主键是 int 型,那么就可以使用自动增长

alter table 表名 modify 主键 类型 auto_increment

alter table student modify id int auto_increment

2. 删除主键

alter table 表名 drop primary key

alter table students drop primary key;

三. 外键约束(Foreign Key)

1. 添加外键

alter table 表名 add constraint 约束名 foreign key(列名) references 参照的表名(参照的列名)单词:

constraint : 约束

references:引用

alter table students
add constraint fk_students_courses
foreign key (course_id)
references courses(id);  

2. 删除外键

alter table 表名 drop foreign key 约束名

alter table students
drop foreign key fk_students_courses;    

四. 唯一性约束(Unique)

1. 添加唯一约束

alter table 表名 add constraint 约束名 unique(列名)

alter table students
add constraint uk_students_name
unique (name);  

2. 删除唯一约束

alter table 表名 drop key 约束名

alter table students
drop key uk_students_name;    

五. 非空约束(Not Null)

1. 添加非空约束

alter table 表名 modify 列名 类型 not null单词:

modify:修改

在修改的时候添加非空约束

alter table students
modify name varchar(50) not null;   

2. 删除非空约束

alter table modify 列名 类型 null

alter table students
modify name varchar(50) null;  

六. 创建表时添加约束

直接可以在创建的时候顺便添加约束

create table enhanced_students (
    -- 添加主键约束,并自动增长
    id int auto_increment primary key,
    -- 添加非空约束(不能为空)
    name varchar(50) not null,
    gender enum('男', '女') not null,
    -- 添加唯一约束
    students_name varchar(30) unique
);    

七. 总结

到此这篇关于MySQL中检查约束的文章就介绍到这了,更多相关MySQL检查约束内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL数据库备份与恢复全攻略

    MySQL数据库备份与恢复全攻略

    在现代应用中,数据库是核心组件之一,无论是个人项目还是企业级应用,数据的安全性和完整性都至关重要,为了防止数据丢失、损坏或意外删除,定期备份数据库是必不可少的,本文将详细介绍 MySQL 数据库的备份与恢复方法,需要的朋友可以参考下
    2024-10-10
  • MySQL存储过程全面解析以及和Java的类比教程

    MySQL存储过程全面解析以及和Java的类比教程

    存储过程是一种在MySQL数据库中定义和执行的可重复使用的程序单元,它允许我们将一系列的 SQL 语句组织在一起,并通过一个简单的调用来执行它们,这篇文章主要介绍了MySQL存储过程全面解析以及和Java类比的相关资料,需要的朋友可以参考下
    2025-09-09
  • mysql删除表中某一字段重复的记录

    mysql删除表中某一字段重复的记录

    一般大家也许会碰到这个问题,大家可以参考下,讲的比较详细
    2008-07-07
  • 在数据库里将毫秒转换成date格式的方法

    在数据库里将毫秒转换成date格式的方法

    经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,可以使用一些函数将毫秒转换成date格式
    2014-05-05
  • Java连接Mysql 8.0.18版本的方法详解

    Java连接Mysql 8.0.18版本的方法详解

    这篇文章主要介绍了Java和Mysql 8.0.18版本的连接方式,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • mysql中int、bigint、smallint 和 tinyint的区别详细介绍

    mysql中int、bigint、smallint 和 tinyint的区别详细介绍

    最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint;接下来将详细介绍以上三种类型的应用
    2012-11-11
  • MySQL存储文本和图片的方法

    MySQL存储文本和图片的方法

    今天小编就为大家分享一篇关于MySQL存储文本和图片的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • mysql 5.7.17 winx64解压版安装配置方法图文教程

    mysql 5.7.17 winx64解压版安装配置方法图文教程

    这篇文章主要为大家详细介绍了mysql 5.7.17 winx64解压版安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • MySQL转换Oracle的需要注意的七个事项

    MySQL转换Oracle的需要注意的七个事项

    有很多应用项目, 刚起步的时候用MySQL数据库基本上能实现各种功能需求,随着应用用户的增多,数据量的增加,MySQL渐渐地出现不堪重负的情况:连接很慢甚至宕机,于是就有MySQL转换Oracle的需求,应用程序也要相应做一些修改。
    2010-12-12
  • mysql免安装没有任何root权限

    mysql免安装没有任何root权限

    这篇文章主要介绍了mysql免安装没有任何root权限的安装与配置教程,本文图文并茂给大家介绍的非常详细,需要的朋友参考下
    2017-01-01

最新评论