MYSQL学习之——约束

MYSQL学习之——约束

这个东西看起来好像是新开的一章,没有见过,但是前面的那个

CREATE TABLE employee(字段1 value1 comment1 约束1,字段2 value2 comment2 约束2,...
)

看到这个没有,创建表的时候就可以给字段添加约束,那么字段有哪些约束呢?

约束说起来就是让这个字段有什么能力,或者不让这个字段有什么能力。先一一介绍再写成表格。

1.限制值的约束
非空约束

	NOT NULL

如果一个字段的约束是NOT NULL ,那就不能有NULL值(突然想起来HashTable不能有null的key和value,但hashmap既可以有null的key也可以有null的value)

唯一约束

UNIQUE

一个字段一旦被这个UNIQUE给束缚住了,完了,每个值只能出现一次(底层不会使用set实现的吧!当然hashset是基于hashmap实现的)

这个字段常用于身份证啊,唯一识别码之类的。

默认约束

DEFAULT

如果字段被默认约束给约束了,那么其中为null的值都会被自动填充为默认值。
比如:employee表有3个字段(字段1,字段2,字段3(DEFAULT))

INSERT INTO employ (字段1,字段2)然后(值1,值2);

插入一条数据的时候没有给字段3赋值,但因为字段3被默认约束限制,那么其会填充上默认值而不是 NULL

自动增长

AUTO_INCREMENT

就是如果使用这个约束,那么其中的值会自增加,比如说id,张三的数据进来id是1,李四的数据进来id就是2;

主键约束

PRIMARY KEY

主键是一行数据的非空表示,非空且唯一。
ps:一般只能有一个主键哈。

外键约束

FOREIGN KEY

这个外键约束是涉及到多表查询的,通过外键建立起两张表的连接。
如:
表BOOk(id,单价,类型)
表BORROW(借书人,BOOK_id,借书时间)
我们就可以吧BOOK表中的id的约束设置为外键

ALTER TABLE 表名
ADD CONSTRAINT外键名 
FOREIGN KEY外键添加在哪一个字段上
REFERENCES主表(主表列名)

BOOK这个例子就是

ALTER TABLEBOOK
ADD CONSTRAINTborrow_id
FOREIGN KEYid
REFERENCEBORROW(BOOK_id);

检查约束

CHECK

这个是什么约束?保证字段值满足某一个条件,好像目前没有用到呢,先这样来看!

添加约束

ALTER TABLE 表名 ADD CONSTRAIN 字段名 字段类型 约束;

修改约束是怎么说

	ALTER TABLE EMPLOYEE ADD CONSTRANIT 字段名 新字段类型 COMMENT 约束;eg:给employee表中的id添加主键约束ALTER TABLE employee MODIFY id char(20) primary key;

删除约束

ALTER TABLE 表名 DROP  约束;
eg:ALTER TABLE employeeDROPPRIMARY KEY;

外键的特殊性

1.创表添加外键
CREATE TABLE 表名(
字段1 字段类型 约束,
字段2 字段类型 约束,
…【这里没有,哦】
CONSTRAINT 外键名 FOREIGN KEY (字段1) REFERENCES 主表(字段)
);
2. 平常添加外键

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

3.删除字段名

ALTER TABLE 表名
DROP FOREIGN KEY 外键名;

4.添加行为约束
这个行为约束就是,当主表删除或更新数据的时候,子表如果没有修改就不能更新NO ACTION&RESTRICT/或者也更新CASCADE/或者设为NULL

PS:常用的约束就是上面的这些,多个约束之间可以用空格隔开。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/70995.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

点云切片的实现(PCL)C++

一、实现逻辑 1、通过PCL库的getMinMax3D得到xyz轴上的最大最小值&#xff1b; 函数原型&#xff1a; pcl::getMinMax3D(const pcl::PointCloud<PointT> &cloud, POintT &min_pt, PointT &max_pt) 2、设置切片厚度&#xff0c;计算某一轴方向上的切片数量&a…

搭建云原生环境

1.安装准备工作 确保所有被安装服务器时区和时间一致。时间不一致会影响 Elasticsearch 和 Skywalking 等信息无法采集的情况出现。 在各个服务器上安装时间同步命令工具&#xff1a;yum install ntp -y使用 ntpdate 命令&#xff0c;从时间服务器上进行同步&#xff0c;例如&a…

【智慧工地源码】物联网和传感器技术在智慧工地的应用

物联网&#xff08;IoT&#xff09;和传感器技术在智慧工地中扮演着至关重要的角色。这些技术的应用&#xff0c;使得智慧工地能够实现对施工过程的精确监控、数据收集和分析&#xff0c;以及设备互联&#xff0c;从而提高工程效率、减少成本并改善工人的工作环境。 一、物联网…

【SpringBoot】mockito+junit 单元测试

1.POM 引入以下依赖 <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency><dependency><groupId>org.springframework.b…

ThreadLocal

ThreadLocal 参考&#xff1a;https://blog.csdn.net/u010445301/article/details/111322569 ThreadLocal简介 作用&#xff1a;实现线程范围内的局部变量&#xff0c;即ThreadLocal在一个线程中是共享的&#xff0c;在不同线程之间是隔离的。 原理&#xff1a;ThreadLocal存…

如何使用CSS画一个三角形

原理&#xff1a;其实就是规定元素的四个边框颜色及边框宽度&#xff0c;将元素宽高设置为0。如果要哪个方向的三角形&#xff0c;将对应其他三个方向的边框宽和颜色设置为0和透明transparent即可 1.元素设置边框&#xff0c;宽高&#xff0c;背景色 <style>.border {w…

单月打造8个10w+,情感类视频号如何爆火?

上月&#xff0c;腾讯公布了2023年Q2财报&#xff0c;其中&#xff0c;较为亮眼的是微信视频号的广告收入。据财报显示&#xff0c;二季度视频号用户使用时长与去年同期相比几乎翻倍&#xff0c;广告收入超过30亿元。作为微信生态的核心组件&#xff0c;视频号的内容生态呈现出…

NumPy模块:Python科学计算神器之一

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据开发、数据分析等。 🐴欢迎小伙伴们点赞👍🏻、收藏⭐️、…

【小沐学NLP】Python使用NLTK库的入门教程

文章目录 1、简介2、安装2.1 安装nltk库2.2 安装nltk语料库 3、测试3.1 分句分词3.2 停用词过滤3.3 词干提取3.4 词形/词干还原3.5 同义词与反义词3.6 语义相关性3.7 词性标注3.8 命名实体识别3.9 Text对象3.10 文本分类3.11 其他分类器3.12 数据清洗 结语 1、简介 NLTK - 自然…

MPDIoU: A Loss for Efficient and Accurate Bounding BoxRegression

MPDIoU: A Loss for Efficient and Accurate Bounding BoxRegression MPDIoU:一个有效和准确的边界框损失回归函数 摘要 边界框回归(Bounding box regression, BBR)广泛应用于目标检测和实例分割&#xff0c;是目标定位的重要步骤。然而&#xff0c;当预测框与边界框具有相同的…

突破传统显示技术,探索OLED透明屏的亮度革命

OLED透明屏作为未来显示技术的颠覆者&#xff0c;其亮度性能成为其引人注目的特点之一。 那么&#xff0c;今天尼伽便深入探讨OLED透明屏的亮度&#xff0c;通过引用数据、报告和行业动态&#xff0c;为读者提供高可读性和专业性强的SEO软文&#xff0c;增加可信度和说服力。 …

【数学建模】数据预处理

为什么需要数据预处理 数学建模是将实际问题转化为数学模型来解决的过程&#xff0c;而数据预处理是数学建模中非常重要的一步。以下是为什么要进行数据预处理的几个原因&#xff1a; 数据质量&#xff1a;原始数据往往存在噪声、异常值、缺失值等问题&#xff0c;这些问题会对…

【python爬虫】5.爬虫实操(歌词爬取)

文章目录 前言项目&#xff1a;寻找周杰伦分析过程代码实现重新分析过程什么是NetworkNetwork怎么用什么是XHR&#xff1f;XHR怎么请求&#xff1f;json是什么&#xff1f;json数据如何解析&#xff1f;实操&#xff1a;完成代码实现 一个总结一个复习 前言 这关让我们一起来寻…

框架分析(10)-SQLAlchemy

框架分析&#xff08;10&#xff09;-SQLAlchemy 专栏介绍SQLAlchemy特性分析ORM支持数据库适配器事务支持查询构建器数据库连接池事务管理器数据库迁移特性总结 优缺点优点强大的对象关系映射支持多种数据库灵活的查询语言自动管理数据库连接支持事务管理易于扩展和定制 缺点学…

javaee 事务的传播行为

事务的传播行为 事务的第一个方面是传播行为&#xff08;propagation behavior&#xff09;。当事务方法被另一个事务方法调用时&#xff0c;必须指定事务应该如何传播。例如&#xff1a;方法可能继续在现有事务中运行&#xff0c;也可能开启一个新事务&#xff0c;并在自己的…

与国自然焦虑对线的感悟

一、写在前面 连续申请了三年的国自然青年基金&#xff0c;今年终于中了。 双非高校&#xff0c;三无人员。 投的医学基础口&#xff0c;但我的研究本底并不是基础研究方向&#xff0c;算是小跨领域了。 因此前两年一直在陪跑。 二、出师不利 第一年信心满满&#xff0c;然后…

如何做见效快的SEO推广?

答案是&#xff1a;见效快的推广可以选择谷歌SEO谷歌Ads双向运营。 关键词研究 对于任何SEO推广&#xff0c;一切始于准确的关键词研究。 使用专业工具 利用如SEMrush、Ahrefs等工具&#xff0c;找到与你业务相关&#xff0c;但竞争程度较低的关键词。 分析竞争对手 查看…

AutoCAD图如何保存为Word

AutoCAD图如何保存为Word 引言AutoCAD图保存为Word文件步骤&#xff1a; 引言 不知道大家有没有是否遇到需要将AutoCAD图保存到Word中。有些小伙伴可能直接截图插入Word中&#xff0c;这种方法简单&#xff0c;但对于有高清图片需求的小伙伴就不适用了。接下来我就为大家介绍一…

编写OpenCL程序的基本步骤

opencl pyopencl OpenCL-Headers OpenCL(全称为Open Computing Langugae&#xff0c;开放运算语言)是第一个面向异构系统(此系统中可由CPU&#xff0c;GPU或其它类型的处理器架构组成)的并行编程的开放式标准。 它是跨平台的。 OpenCL由两部分组成&#xff0c;一是用于编写…

【MySQL】JDBC 编程详解

JDBC 编程详解 一. 概念二. JDBC 工作原理三. JDBC 使用1. 创建项目2. 引入依赖3. 编写代码(1). 创建数据源(2). 建立数据库连接(3). 创建 SQL(4). 执行 SQL(5). 遍历结果集(6). 释放连接 4. 完整的代码5. 如何不把 sql 写死 &#xff1f;6. 获取连接失败的情况 四. JDBC常用接…