MySQL约束超详解
作者:LL.LEBRON 发布时间:2024-01-21 07:10:00
标签:MySQL,约束
目录
MySQL约束操作
1.非空约束
2.唯一约束
3.主键约束
4.外键约束
5、级联
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
来源:https://blog.csdn.net/qq_45966440/article/details/119612447
0
投稿
猜你喜欢
- 用AJAX刷新一个DIV中的jsp内容 <script type="text/javascript"> va
- 作为前端开发工程师,平时对于Dom的查找遍历和操作是家常便饭。对于优秀的前端来说,也肯定早已有了自己的一套方法来封装这些重复的操作。但是,现
- 1、安装AnacondaAnaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。
- 今天也碰到了el表达式无法解析的事情,于是在网上查询了下,大多说是因为web.xml中声明的版本问题于是收集了如下版本:web-app_2_
- django-pipeline 是一个 Django 下非常方便的静态资源管理 app,尤其是 1.2 版本之后,利用 djan
- 前言学习一门新的语言肯定是要从他的基本语法开始,语法构成了整个程序设计的基础,从语法中我们也可以看到这门语言的一些特性,但是话说回来,语法这
- 介绍我们一起来做个示例,在.NET中新建一个类,并在这个类里新建一个方法,然后在SQL Server中调用这个方法。按照微软所述,通过宿主
- 一、安装matplotlib1)由于已安装anaconda,可直接打开anaconda prompt,再用命令pip install mat
- 使用 NetBox 可以方便的将 asp 应用编译成为独立运行的执行程序,完全摆脱 iis 的束缚,在几乎所有的 Windows 版本上面直
- 对于部署在百度应用引擎BAE上的项目,使用百度云存储BCS(Baidu Cloud Storage)是不错的存储方案。百度云存储已有Pyth
- 一.values()1.values()结果是什么?官方文档说明:https://docs.djangoproject.com/en/2.1
- Python有自己内置的标准GUI库--Tkinter,只要安装好Python就可以调用。今天学习到了图形界面设计的问题,刚开始就卡住了。为
- 链接字典chainMap是逻辑上合并两个字典为一个逻辑单元,合并后的结构实际上是一个列表,只是逻辑上是仍然为一个字典(并未生成新的),对此列
- 显然,效果很实用。对于这个效果,我们并不解释如何去使用效果库,而是讲解如何创建类似的效果,并保持他的可用性,分离式(unobtrusive)
- 如下所示:list=[1,2,3,4,5,6,7,8,9,0,11,0,13,14,15,16,17,18,19,20]#把list分为长度
- 参数让我们进一步看看CPU的数量是如何影响这些参数的。 参数fast_start_parallel_rollback Oracle并行机制中
- 本文实例讲述了PHP实现的curl批量请求操作。分享给大家供大家参考,具体如下:<?php$ch = array();$res = a
- 本文实例为大家分享了python批量转换图片为黑白的具体代码,供大家参考,具体内容如下用到的库:OpenCV、osimport cv2imp
- 在Python语言中,json数据与dict字典以及对象之间的转化,是必不可少的操作。在Python中自带json库。通过import js
- 先去下载一个叫SWFToImage.dll的东西 再建立一个bat文件,并运行: COPY SWFToImage.dll %windir%\