【MySQL--->表的约束】

news2024/12/23 12:11:31

文章目录

    • @[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;
在这里插入图片描述


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

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

相关文章

项目热部署

本文记录一下热部署步骤。。。。 热部署是提供高开发效率的一个非常有用的工具。指的是在应用程序运行修改代码或资源文件,并将这些变更应用到正在运行的程序上,而无需重新启动应用,无需等待整个项目的重新构建和部署。 使用热部署需要引入依…

leetcode做题笔记85最大矩形

给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例 1: 思路一:单调栈 int maximalRectangle(char** matrix, int matrixSize, int* matrixColSize){int dp[matrixSize…

全面揭秘:抖音集团 QUIC 千万 QPS 应用实践

近日,ArchSummit全球架构师峰会深圳站成功举办。随着移动互联网的蓬勃发展,人们对网络速度和实时性的需求日益增加。在面对越来越多的图片、视频和音频等大资源时,页面加载缓慢、视频卡顿等问题频发,传统的传输控制协议&#xff0…

【UE4 RTS】12-HUD functionality Part2

前言 本篇实现了通过按钮控件暂停、加快、减慢游戏速度的功能。 效果 步骤 1. 打开控件蓝图“GameTime_HUD”,在设计器中对进度条控件的百分比创建一个绑定函数 绑定函数命名为“Get_ProgressBar_GameSpeed_SetSpeedDisplay”,并设置该函数类别属于Ga…

【蛋白-蛋白】Rosetta InterfaceAnalyzer 学习笔记

Rosetta InterfaceAnalyzer是一种用于分析蛋白质相互作用界面的工具,可以计算结合能、埋藏界面表面积、包装统计数据和其他有用的界面指标。 这里以(PDB:3R2X)为例,介绍如何利用Rosetta中InterfaceAnalyzer来快速分析蛋白-蛋白相互作用,并提…

excel统计函数篇1之average系列

一、excel中的统计函数 1、AVERAGE(number1,number2,...):返回其参数的平均值 2、AAVERAGEA(value1,value2,...):返回其参数的平均值,包括数字、文本和逻辑值 可以在括号内手动输入,也可以引用单元格,对序列求平均的…

浏览器307,自动从http跳转到https

现象: 解决方式 谷歌浏览器和edge: 进入chrome://net-internals/#hsts

Docker+Selenium Grid搭建自动化测试平台

安装docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install docker-ce -y Create a Docker Network docker network create grid 下载镜像 hu…

TensorFlow2.1 模型训练使用

文章目录 1、环境安装搭建2、神经网络2.1、解决线性问题2.2、FAshion MNIST数据集使用 3、卷积神经网络3.1、卷积神经网络使用3.2、ImageDataGenerator使用3.3、猫狗识别案例3.4、参数优化 1、环境安装搭建 链接: Windows 安装Tensorflow2.1、Pycharm开发环境 2、神经网络 1…

第十四届中国大学生服务外包大赛细品,上百支队伍与合合信息用AI共克“记账”难题

前言 熟悉我的小伙伴应该知道我在大学时期参与了很多竞赛,我向来对比赛是比较热枕的,以我个人观点,我认为可以通过竞赛激发学习激情和检验自己的技能水平掌握情况,大学生很少有机会能够了解到课堂之外市场的需求,外包…

repmgr出现双主,并且时间线分叉,删除了最新的时间线节点

遇到的问题如下: 2023-08-17 20:24:21.566 CST [1556001] LOG: database system was interrupted; last known up at 2023-08-17 20:21:41 CST 2023-08-17 20:24:21.770 CST [1556001] LOG: restored log file "00000009.history" from archive cp: 无法…

【从零开始学爬虫】采集中国国际招标网招标数据

l 采集网站 【场景描述】采集中国国际招标网招标数据。 【源网站介绍】中国国际招标网致力于为企业提供招标、采购、拟在建项目信息及网上招标采购等一系列商务服务。 【使用工具】前嗅ForeSpider数据采集系统 http://www.forenose.com/view/forespider/view/download.html 【…

LVS-DR模式下(RS检测)ldirectord工具实现部分节点掉点后将请求发往正常设备进行处理

基于前文的LVS-DR集群构建环境 一.下载ldirectord软件 二.将模板文件中的LVS-DR模式相关文件拷贝到/etc/ha.d主配置目录并按实际设备修改 三.配置两台RS匹配规则 四.停止RS1的http服务进行测试 RS1失去工作能力,RS2接替RS1 基于前文的LVS-DR集群构建环境 一.下…

ARM--day5(C语言点灯实验、总线、串口通信信息、串口通讯协议)

函数分装实现点灯 gpio.c: #include "gpio.h" //函数功能:GPIO引脚初始化操作 //参数1:GPIO组号 //参数2:引脚编号 //参数3:初始化内容 void hal_gpio_init(volatile gpio_t*gpiox,unsigned int pin,gpio_init_t* ini…

浏览器控制台调试代码和JavaScript控制台方法介绍

浏览器控制台调试代码和JavaScript控制台方法介绍 浏览器控制台调试代码 浏览器控制台(Console)是浏览器提供的一个开发工具,用于在浏览器中执行和调试 JavaScript 代码。它提供了一个交互式环境,可以输入 JavaScript 代码&#…

计算机竞赛 wifi指纹室内定位系统

简介 今天来介绍一下室内定位相关的原理以及实现方法; WIFI全称WirelessFidelity,在中文里又称作“行动热点”,是Wi-Fi联盟制造商的商标做为产品的品牌认证,是一个创建于IEEE 802.11标准的无线局域网技术。基于两套系统的密切相关&#xff…

UGUI组件Rect Transform

一. Rect Transform概述 画布上UI对象都附加一个Rect Transform组件,和一般对象附加的Transform对象相比,Rect Transform多了Width,Height,Anchor,Pivot属性。 二.位置属性 UI对象的坐标是其轴心到锚点之间的像素值,如下图所示。 三.Pivot(…

同时负责多个项目,团队成员还参与多个项目开发,如何有效管理?分享9个策略

如果你正在管理一个团队或项目,可能会需要同时在进行多个项目的管理。在这种情况下,追踪所有进行中的项目部分可能会迅速变得非常复杂。没有合适的管理过程,就难以确定哪些工作应该优先处理,也不容易确保团队有效管理工作量&#…

WPF显示初始界面--SplashScreen

WPF显示初始界面–SplashScreen 前言 WPF应用程序的运行速度快,但并不能在瞬间启动。当第一次启动应用程序时,会有一些延迟,因为公共语言运行时(CLR)首先需要初始化.NET环境,然后启动应用程序。 对于WPF中…

Spring基础梳理(一):一定要先全局掌握Spring

越活越完蛋了,看着看着现在又想梳理梳理Spring基础,搞点原始真解吧,不过技术人每个阶段看相同东西的理解都是不同的,只是现在浮躁的技术中又有多少人能够一本书啃两遍以上呢,我也一样,徜徉于业务之中&#…