MySQL约束超详解


Posted in MySQL onSeptember 04, 2021

MySQL约束操作

概念:对表中的数据进行限定,保证数据的正确性,有效性和完整性。

分类:

  • 主键:primary key
  • 非空约束:not null
  • 唯一约束:unique
  • 外键约束:foreign key

1.非空约束

not null,值不能为空。

创建表时添加非空约束:

CREATE TABLE stu(
 id INT,
 NAME VARCHAR(20) NOT NULL
);

创建表完后,添加非空约束

ALTER TABLE stu 
MODIFY NAME VARCHAR(20) NOT NULL;

删除非空约束

ALTER TABLE stu 
MODIFY NAME VARCHAR(20);

2.唯一约束

unique,值不能重复。

创建表时添加唯一约束

CREATE stu(
 id INT;
 phone_number VARCHAR(20) UNIQUE
);

注意:mysql中,唯一约束限定的列的值可以有多个null

删除唯一约束

ALTER TABLE stu
DROP INDEX phone_number;

创建表完后,添加唯一约束

ALTER TABLE stu 
MODIFY phone_number VARCHAR(20) UNIQUE;

3.主键约束

primary key,

  • 非空且唯一。
  • 一张表只能有一个字段为主键。
  • 主键就是表中记录的唯一标识。

创建表时添加主键约束

CREATE TABLE stu( 
 id INT PRIMARY KEY,
 NAME VARCHAR(20)
);

删除主键

ALTER TABLE stu 
DROP PRIMARY KEY;

创建表完后,添加主键

ALTER TABLE stu 
MODIFY id INT PRIMARY KEY ;

这里补充一个知识点:自动增长

概念:如果某一列是数值类型的,使用auto_increment可以来完成自动增长。

例子:

在创建表时,添加主键约束,并且完成主键自动增长

CREATE TABLE stu(
 id INT PRIMARY KEY AUTO_INCREMENT,
 NAME VARCHAR(20)
);
#自动增长会根据当前列的最后一行的值往后增加。

删除自动增长

ALTER TABLE stu
MODIFY id INT;
#这样只会删除自动增长,主键删不掉。

创建表完后,在添加自动增长

ALTER TABLE stu
MODIFY id INT AUTO_INCREMENT;

4.外键约束

foreign ley,让表与表产生关系,从而保证数据的正确性。

在创建表时,可以添加外键

CREATE TABLE 表名(
 ...
 外键列
 CONSTRAINT 外键名称 FOREIGN KEY (外键列名称) REFERENCES 主表名称(主表列名称)
);

删除外键

ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

创建表之后,添加外键

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);

5、级联

添加级联操作

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 
FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称)
ON UPDATE CASCADE ON DELETE CASCADE  ;

级联删除

ON UPDATE CASCADE

到此这篇关于MySQL约束超详解的文章就介绍到这了,更多相关MySQL约束内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL Shell的介绍以及安装
Apr 24 MySQL
MySQL Router的安装部署
Apr 24 MySQL
MySQL kill不掉线程的原因
May 07 MySQL
Mysql基础知识点汇总
May 26 MySQL
MySQL系列之开篇 MySQL关系型数据库基础概念
Jul 02 MySQL
MySQL系列之二 多实例配置
Jul 02 MySQL
MySQL如何解决幻读问题
Aug 07 MySQL
mysql分表之后如何平滑上线详解
Nov 01 MySQL
MySQL 服务和数据库管理
Nov 11 MySQL
关于MySQL中的 like操作符详情
Nov 17 MySQL
mysql 联合索引生效的条件及索引失效的条件
Nov 20 MySQL
MySQL数据库实验之 触发器和存储过程
Jun 21 MySQL
MySQL中的隐藏列的具体查看
Sep 04 #MySQL
Mysql实现简易版搜索引擎的示例代码
Aug 30 #MySQL
详细聊聊MySQL中慢SQL优化的方向
Aug 30 #MySQL
MySQL8.0的WITH查询详情
Aug 30 #MySQL
Prometheus 监控MySQL使用grafana展示
Aug 30 #MySQL
MySQL命令无法输入中文问题的解决方式
Aug 30 #MySQL
mysql 索引合并的使用
Aug 30 #MySQL
You might like
在字符串中把网址改成超级链接
2006/10/09 PHP
让PHP更快的提供文件下载的代码
2012/06/13 PHP
js之onload事件的一点使用心得
2013/08/14 Javascript
js重写alert控件(适合学习js的新手朋友)
2014/08/24 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
2014/11/26 Javascript
jQuery源码解读之hasClass()方法分析
2015/02/20 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
Vue-Router的使用方法
2018/09/05 Javascript
微信小程序开发的基本流程步骤
2019/01/31 Javascript
修改vue源码实现动态路由缓存的方法
2020/01/21 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
通过滑动翻页效果实现和移动端click事件问题
2021/01/26 Javascript
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
python二分法实现实例
2013/11/21 Python
python实现删除文件与目录的方法
2014/11/10 Python
Python的包管理器pip更换软件源的方法详解
2016/06/20 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
详解Python 协程的详细用法使用和例子
2018/06/15 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
压铸汽车模型收藏家:Diecastmodelswholesale.com
2016/12/21 全球购物
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
巴西最大的运动品牌:Olympikus
2020/07/14 全球购物
劳动工资科岗位职责范本
2014/03/02 职场文书
群众路线问题查摆对照检查材料
2014/10/04 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
会计工作检讨书
2015/02/19 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
感动中国何玥观后感
2015/06/02 职场文书
2015年教师节主持词
2015/07/03 职场文书
追悼会答谢词范文
2015/09/29 职场文书
高二数学教学反思
2016/02/18 职场文书
分析Java中Map的遍历性能问题
2021/06/26 Java/Android
vue使用Google Recaptcha验证的实现示例
2021/08/23 Vue.js
win10如何开启ahci模式?win10开启ahci模式详细操作教程
2022/07/23 数码科技