【MySQL--->表的约束】
文章目录
- @[TOC](文章目录)
- 一、表的约束概念
- 二、空属性约束
- 三、default约束
- 四、zerofill约束
- 五、主键约束
- 六、auto_increment(自增长)约束
- 七、唯一键约束
- 八、外键约束
文章目录
- @[TOC](文章目录)
- 一、表的约束概念
- 二、空属性约束
- 三、default约束
- 四、zerofill约束
- 五、主键约束
- 六、auto_increment(自增长)约束
- 七、唯一键约束
- 八、外键约束
一、表的约束概念
表通过约束可以保证插入数据的合法性,本质是通过技术手段,保证插入数据收约束,保证数据的正确,约束的目的是保证数据的完整性和可预期性.
二、空属性约束
表中NULL代表空,就是什么都没有,""代表空串,两者意义不同,列的空属性默认是NULL,意思是给表插入值的时候,可以不插入属性有NULL的列.也可以设置NOT NULL.
表示插入值的时候必须要插入列属性有NOT NULL的列值,这叫做非空约束.
三、default约束
列可以设置默认值,创建时在列属性中添加default 后跟值就可以设置默认值了
not null和default的区别,如果列同时设置not null和default,就算这一列不插入值,也会自动插入默认值,not null属性,在插入值的时候,如果不插入,则首先会查看有没有default值,有的话就插入默认值,所以当not null属性的列不插入值也么有设置default值的话,会报错没有默认值.
null属性就是系统自动将默认值设置为null的结果.
四、zerofill约束
在列的类型中设置int类型,int后面会跟一个(11),如果将int类型设置为int unsigned ()里就变成了10,这时因为int本身是4字节,最大值占10个比特位,如果是有符号的还要在多一个符号位,就变成了11位. ()中的数字其实代表宽度,10和11分别是signed和unsigned类型的最大宽度,
如果给类型设置zerofill属性,当value的宽度不够()中的值时,会自动在左边补0,value的大小不变
五、主键约束
主键是用来约束列的值不能为null和不能与其他列重复,在属性中增加primary key字段可以设置列的主键属性,设置主键后系统会自动将列属性同时设置为not null属性.
主键是表中唯一的,但不是只有一列能成为主键,主键可以是几列的组合,只要有其中的一列与其他的组合中对应一列不重复即符合主键的约束.这叫复合主键
主键可以在建表的时候设置主键,也可以在建表之后设置主键,但是设置主键之前要确保这一列当前是符合主键约束条件的.
删除主键属性
六、auto_increment(自增长)约束
自增长属性的列也必须是主键属性,auto_increment最后一次增长的值被维护在表的属性信息中,可以通过last_insert_id()函数获取这个值.
自增长属性的列不用插入值,它会自动增长,可以在类型外面设置初始值,也可以不设置初始值,它默认从1开始增长.
七、唯一键约束
一张表中有往往有很多字段需要唯一性,数据不能重复,但是一张表中只能有一个主键:唯一键就可以解决表中有多个字段需要唯一性约束的问题。
唯一键约束不允许列值重复,但是可以是null值,属性设置:unique key或者unique都行,与primary key的区别是:primary key不可以为null,且只能有一个,unique可以为null,可以有多个.
八、外键约束
外键用于定义主表和从表之间的关系,外键约束主要定义在从表上,主表必须是主键或者唯一键,当定义外键后,要求外键列数据必须在主表的主键列存在或为null。
在定义列的最后添加外键约束,foreign key(列名) reference 主表名(列名);
定义两个表,一个主表class,一个从表student ,class中设置class_id为主键,class中class_id与student中class_id构成约束关系.class中的class_id与student中的class_id有映射关系的时候不能删除,student中的class_id不能插入class中不存在的class_id;
相关文章:
【MySQL--->表的约束】
文章目录 [TOC](文章目录) 一、表的约束概念二、空属性约束三、default约束四、zerofill约束五、主键约束六、auto_increment(自增长)约束七、唯一键约束八、外键约束 一、表的约束概念 表通过约束可以保证插入数据的合法性,本质是通过技术手段,保证插入数据收约束,保证数据的…...
github中Keyless Google Maps API在网页中显示地图和标记 无需api key
使用Google Maps API在网页中显示地图和标记的示例博客。以下是一个简单的示例: C:\pythoncode\blog\google-map-markers-gh-pages\google-map-markers-gh-pages\index.html 介绍: 在本篇博客中,我们将学习如何使用Google Maps API在网页中…...
ComPDFKit PDF SDK for Windows Crack
ComPDFKit PDF SDK for Windows Crack 添加了在创建文本框时调整默认属性的支持。 增加了对调整PDF大小时调整宽度的支持。 添加了对编辑文本时更多快捷方式的支持。 优化了文本输入,并将字体样式与原始文本相匹配。 在内容编辑器模式下复制和粘贴时优化了UI交互。 …...
React+Typescript 状态管理
好 本文 我们来说说状态管理 也就是我们的 state 我们直接顺便写一个组件 参考代码如下 import * as React from "react";interface IProps {title: string,age: number }interface IState {count:number }export default class hello extends React.Component<I…...
stable diffusion 运行时报错: returned non-zero exit status 1.
运行sh run.sh安装stable diffusion时报错:ImportError: cannot import name builder from google.protobuf.internal (stable-diffusion-webui/venv/lib/python3.8/site-packages/google/protobuf/internal/__init__.py) 原因:python版本过低࿰…...
el-popover弹窗修改三角样式或者位置
el-popover中设置类名 popper-class"filepopver",我这位置是placement"top-start" <el-popover placement"top-start" popper-class"filepopver" class"filename" width"300" trigger"hover&q…...
Linux驱动开发之点亮三盏小灯
头文件 #ifndef __HEAD_H__ #define __HEAD_H__//LED1和LED3的硬件地址 #define PHY_LED1_MODER 0x50006000 #define PHY_LED1_ODR 0x50006014 #define PHY_LED1_RCC 0x50000A28 //LED2的硬件地址 #define PHY_LED2_MODER 0x50007000 #define PHY_LED2_ODR 0x50007014 #define…...
【SA8295P 源码分析】71 - QAM8295P 原理图参考设计 之 MIPI DSI 接口硬件原理分析
【SA8295P 源码分析】71 - QAM8295P 原理图参考设计 之 MIPI DSI 接口硬件原理分析 一、MIPI-DSI 接口介绍二、高通参考硬件原理图分析:ANX7625 桥接芯片方案2.1 高通参考设计:两路 4-Lane DSI 接口2.2 高通参考设计:DSI0 硬件原理图,将 4 Lane DSI数据通过 ANX7625 桥接芯…...
macOS(m1/m2)破解Sublime Text和Navicat16
破解Sublime Text 说明:全程使用的是终端操作 1. 下载Sublime Text,建议使用brew下载 2. 进入到下载的app的文件夹 cd "/Applications/Sublime Text.app/Contents/MacOS/"3. 执行以下操作以确认版本是否匹配 md5 -q sublime_text | grep -i…...
【排排站:探索数据结构中的队列奇象】
本章重点 队列的概念及结构 队列的实现方式 链表方式实现栈接口 队列面试题 一、队列的概念及结构 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出 FIFO(First In First Out) 入队列&#x…...
Mac OS 中JDK 环境(jdk 1.8.0_831)安装配置、环境变量配置及卸载操作
前言: 摊牌了,本来就有点喜新厌旧的我,特意把系统和开发环境都拉到比较高,想试验一下兼容性和某些新特性,探索了一下新大陆,也见识了各种光怪陆离的妖魔鬼怪。 因为要着手云平台项目的重构改版和新系统的架…...
[JAVAee]Tomcat - Servlet
目录 Tomcat Servlet的工作 创建Servlet ①项目 ②依赖 ③目录 ④代码 ⑤打包 ⑥部署 ⑦验证 Servlet的运行原理 Servlet API HttpServlet 方法 处理Get/POST请求 HttpServletRequest 方法 获取请求中的信息 获取GET请求中的参数 获取POST请求中的参数…...
MAC钓鱼并Root权限上线CS并权限维持,以及所有的坑如何解决
本文转载于:https://www.freebuf.com/articles/web/350592.html 作者:文鸯涂鸦智能安全实验室 制作MAC 一、下载工具 首先从github上下载CrossC2。链接:https://github.com/gloxec/CrossC2/releases/tag/v3.1.0。 根据你CS客户端的操作系统选…...
浅谈OCR中的David Shepard
在OCR(Optical Character Recognition,光学字符识别)中,David Shepard是一种早期的OCR技术,也被称为Shepards Method。 David Shepard是该OCR方法的原始作者。这种方法基于边界追踪算法,用于识别印刷体文本…...
draw.io导出矢量图到word报错text is not svg - cannot display
先参考https://blog.csdn.net/a625750076/article/details/126384831 如果不行,可能是转存的问题 解决方法:直接在draw.io上操作 第一步 第二步 然后再word中粘贴,依旧是矢量图哦!...
JVM加强
目录 JVM运行时的数据区(内存结构): 线程独享: 线程共享: 什么时候会内存溢出 JVM有哪些垃圾回收算法 GC如何判断对象可以被回收 典型的垃圾回收器 CMS: G1: 类加载器和双亲委派机制&a…...
解决Oracle中XML插入数据时的空格问题
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...
微服务中间件--分布式事务
分布式事务 a.理论基础1) CAP定理2) BASE理论 b.Seata1) XA模式1.a) 实现XA模式 2) AT模式3) TCC模式3.a) 代码实现 4) Saga模式5) 四种模式对比6) TC的异地多机房容灾架构 a.理论基础 1) CAP定理 分布式系统有三个指标: Consistency(一致性ÿ…...
计算机网络(9) --- 数据链路层与MAC帧
计算机网络(8) --- IP与IP协议_哈里沃克的博客-CSDN博客IP与IP协议https://blog.csdn.net/m0_63488627/article/details/132155460?spm1001.2014.3001.5502 目录 1.MAC帧 1.MAC地址 2.MAC帧报头 3.资源碰撞 4.MTU 1.对IP协议的影响 2.对UDP协议…...
【学会动态规划】环绕字符串中唯一的子字符串(25)
目录 动态规划怎么学? 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后: 动态规划怎么学? 学习一个算法没有捷径,更何况是学习动态规划, 跟我…...
CNN卷积详解(三)
一、卷积层的计算 4 ∗ * ∗ 4的输入矩阵 I I I 和 3 ∗ * ∗ 3 的卷积核 K K K: 在步长(stride)为 1 时,输出的大小为 ( 4 − 3 1 ) ( 4 − 3 1) 计算公式: ● 输入图片矩阵 I I I 大小: w w w w ww ●…...
使用 Amazon Redshift Serverless 和 Toucan 构建数据故事应用程序
这是由 Toucan 的解决方案工程师 Django Bouchez与亚马逊云科技共同撰写的特约文章。 带有控制面板、报告和分析的商业智能(BI,Business Intelligence)仍是最受欢迎的数据和分析使用场景之一。它为业务分析师和经理提供企业的过去状态和当前状…...
CentOS 上快速安装包管理工具Conda
要在 CentOS 上安装 Conda,您可以按照以下步骤进行操作: 1. 下载 Miniconda 或 Anaconda 安装脚本: Miniconda:适用于轻量级安装的 Miniconda 版本。 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.…...
opencv-手势识别
# HandTrackingModule.py import cv2 import mediapipe as mpclass HandDetector:"""使用mediapipe库查找手。导出地标像素格式。添加了额外的功能。如查找方式,许多手指向上或两个手指之间的距离。而且提供找到的手的边界框信息。"""…...
【SA8295P 源码分析】10 - HQX Display(OpenWFD)qcdisplaycfg_ADP_STAR_LA.xml 配置文件解析
【SA8295P 源码分析】10 - HQX Display(OpenWFD)qcdisplaycfg_ADP_STAR_LA.xml 配置文件解析 一、HQX Display 介绍1.1 OpenWF Display Driver二、HQX Display 配置文件参数解析2.1 qcdisplaycfg.xml 配置文件2.1 配置两个 DPUs in QNX2.1.1 配置 graphics_ADP_STAR.conf : …...
达梦数据库权限和预定角色介绍
概述 本文对达梦数据库数据库和对象权限及DM预定义角色及角色创建进行介绍。 1.权限管理 用户权限有两类:数据库权限和对象权限。 数据库权限主要是指针对数据库对象的创建、删除、修改的权限,对数据库备份等权限。 数据库权限一般由 SYSDBA、SYSAU…...
Python编程从入门到实践_8-8 用户的专辑_答案
Python编程从入门到实践_8-8 用户的专辑_答案 我也看了一些其他人的答案,很多的答案存在问题,每次调用函数 make_album() 后生成一个专辑字典会覆盖上次调用函数 make_album() 生成的字典,不符合题意。 我采取的解决方案是添加一个空列表 …...
HummingBird 基于 Go 开源超轻量级 IoT 物联网平台
蜂鸟(HummingBird) 是 Go 语言实现的超轻量级物联网开发平台,包含设备接入、产品管理、物模型、告警中心、规则引擎等丰富功能模块。系统采用GoLang编写,占用内存极低, 单物理机可实现百设备的连接。 在数据存储上&…...
10.小程序样式
样式 css部分样式不支持,并且添加了rpx属性,小程序开发的时候应该使用rpx,而不是px,因为rpx是将移动端的屏幕大小分为750份,会自动按设备的大小去适配;我们在开发时应该以iphone6为基准的设备进行开发&…...
Flink 流式读写文件、文件夹
文章目录 一、flink 流式读取文件夹、文件二、flink 写入文件系统——StreamFileSink三、查看完整代码 一、flink 流式读取文件夹、文件 Apache Flink针对文件系统实现了一个可重置的source连接器,将文件看作流来读取数据。如下面的例子所示: StreamExe…...
想注册一个做网站的公司/seo博客推广
(跃迁之路)专栏 实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长实验期2年(2017.10.06 - 2019.10.06)我将以自己为实验对象。我将开源我的学习方法,方法不断…...
网站开发流程 图书/网站seo搜索引擎的原理是什么
一个开始 想起来,这个话题,犹如散文一般;以前写过类似的随笔,随着spaces的离开,渐渐忘却那个故事 今天,我想起这个,是因为我想用一个特定的环境来模拟一段痕迹,而不仅仅是一个…...
模板网站制作怎么样/亚马逊关键词快速优化
本博客不欢迎:各种镜像采集行为,请尊重知识产权法律法规。大家都是程序员,不要闹得不开心。在css文件中,一般来说,是会需要一些图片来丰富其表现能力的。那么,webpack处理完css文件后,图片都是怎…...
网站建设后台有哪些项目/神点击恶意点击软件
2019独角兽企业重金招聘Python工程师标准>>> mysql语句规范: 关键词 函数名全部大写 数据库名称 表名称 字段名称 设置为小写 sql语句必须以分号结尾 转载于:https://my.oschina.net/u/3717819/blog/1563224...
网站改版iis301跳转如何做/seo关键词优化要多少钱
2020考研复试备考第9周总结 又一个星期过去了。复试的消息仍然没有传出来。感觉这个星期挺累的,但好像也没做多少事情。今天参加了优秀毕业生的答辩,自己的确没有什么突出的点,老师连提问都省了,就直接讲了1分多钟,结…...
做网站是那个语言写的/金华网站推广
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼ShowWindow(hWnd, iCmdShow);UpdateWindow(hWnd);while (GetMessage(&msg, NULL, 0, 0)){TranslateMessage(&msg);DispatchMessage(&msg);}return msg.wParam;}LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPA…...