【MySQL】:表的约束(上)

news2024/12/25 10:19:22

表的约束

  • 一.非空约束
  • 二.default约束
  • 三.列描述
  • 四.zerofill
  • 五.主键
    • 1.单个主键
    • 2.复合主键

真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。

表的约束很多,这里主要介绍如下几个: null/not null,default, comment, zerofill,primary
key,auto_increment,unique key 。

一.非空约束

两个值:null(默认的)和notnull(不为空)。数据库默认字段基本都是字段为空,但是实际开发时,尽可能保证字段不为空,因为数据为空没办法参与运算。简单来说就是如果设置了这个字段,那么如果插入为空就会报错。

例子

在这里插入图片描述

这样class_room和class_name两项就不能为空,other项可以为空。

在这里插入图片描述

二.default约束

默认值:某一种数据会经常性的出现某个具体的值,可以在一开始就指定好,在需要真实数据的时候,用户可以选择性的使用默认值。

在这里插入图片描述

默认值的生效:数据在插入的时候不给该字段赋值,就使用默认值。

三.列描述

列描述:comment,没有实际含义,专门用来描述字段,会根据表创建语句保存,用来给程序员或DBA来进行了解。

在这里插入图片描述

使用decs是看不到comment的。

在这里插入图片描述

需要查看更详细的内容。

在这里插入图片描述

简而言之,就相当于注释,给程序员看的。

四.zerofill

刚开始学习数据库时,很多人对数字类型后面的长度很迷茫。

在这里插入图片描述

可以看到int(10),这个代表什么意思呢?整型不是4字节码?这个10又代表什么呢?其实没有zerofill这个属性,括号内的数字是毫无意义的。a和b列就是前面插入的数据,但是如果添加了zerofill属性就不同了,如下:

在这里插入图片描述

在这里插入图片描述

这次可以看到a的值由原来的1变成00001,这就是zerofill属性的作用,如果宽度小于设定的宽度(这里默认设置的是10),自动填充0。要注意的是,这只是最后显示的结果,在MySQL中实际存储的还是1,这只是一种格式化输出。

五.主键

1.单个主键

主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个主键;
主键所在的列通常是整数类型。

在这里插入图片描述

主键约束:主键对应的字段中不能重复,一旦重复,操作失败。

在这里插入图片描述

当表创建好以后但是没有主键的时候,可以删除主键。

在这里插入图片描述

当表创建好以后但是没有主键的时候,可以再次追加主键。

在这里插入图片描述

2.复合主键

在创建表的时候,在所有字段之后,使用primary key(主键字段列表)来创建主键,如果有多个字段作为主键,可以使用复合主键。例如下面把course和id合在一起。

在这里插入图片描述

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

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

相关文章

孩子还是有一颗网安梦——Bandit通关教程:Level 11 → Level 12

🕵️‍♂️ 专栏《解密游戏-Bandit》 🌐 游戏官网: Bandit游戏 🎮 游戏简介: Bandit游戏专为网络安全初学者设计,通过一系列级别挑战玩家,从Level0开始,逐步学习基础命令行和安全概念…

随机变量的定义

试验E的样本空间为S,样本空间S中的元素记为e,即样本点是e,样本空间记成,表示元素组成的集合。 随机变量的定义:设随机变量的样本空间为,是定义在样本空间S上的实值单值函数,称为随机变量。 随机…

螺旋矩阵算法(leetcode第54题)

题目描述: 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例 1:输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]示例 2:输入&#xff…

《深入理解 Android ART 虚拟机》笔记

Dex文件格式、指令码 一个Class文件对应一个Java源码文件,而一个Dex文件可对应多个Java源码文件。开发者开发一个Java模块(不管是Jar包还是Apk)时: 在PC平台上,该模块包含的每一个Java源码文件都会对应生成一个同文件…

蝴蝶Butterfly 数据集VOC+yolo-2000张(labelImg标注)

蝴蝶被誉为“会飞的花朵”,是一类非常美丽的昆虫。蝴蝶大多数体型属于中型至大型,翅展在15~260毫米之间,有2对膜质的翅。体躯长圆柱形,分为头、胸、腹三部分。体及翅膜上覆有鳞片及毛,形成各种色彩斑纹。今天要介绍的是…

Mistral AI 推出高质量的稀疏专家混合AI人工智能模型——SMoE,有望超越ChatGPT3.5

Mistral AI(“Mistral AI”是一家由前DeepMind和Meta Platforms(META.US)的研究人员组建的新公司。)继续履行为开发者社区提供最佳开放模型的使命。他们发布了 Mixtral 8x7B,这是一个高质量的稀疏专家混合模型&#xf…

YOLOv8改进 | 2023主干篇 | 替换LSKNet遥感目标检测主干 (附代码+修改教程+结构讲解)

一、本文介绍 本文给大家带来的改进内容是LSKNet(Large Kernel Selection, LK Selection),其是一种专为遥感目标检测设计的网络架构,其核心思想是动态调整其大的空间感受野,以更好地捕捉遥感场景中不同对象的范围上下…

【精选】SpringMVC简介及其执行流程,参数获取方式

SpringMVC简介 MVC模型 MVC全称Model View Controller,是一种设计创建Web应用程序的模式。这三个单词分别代表Web应用程序的三个部分: Model(模型):指数据模型。用于存储数据以及处理用户请求的业务逻辑。在Web应用中&…

37.分支结构嵌套

目录 一.什么是分支结构嵌套 二.什么情况下会用分支结构嵌套 三.举例 四.注意事项 五.视频教程 一.什么是分支结构嵌套 在一个if语句中又包含了另外一个if语句,这种情况称之为if语句的嵌套,也叫做分支结构嵌套。 二.什么情况下会用分支结构嵌套 如…

dToF直方图之美_激光雷达多目标检测

直方图提供了一种简单有效的方法来分析信号分布并识别与目标存在相对应的峰值,并且能够可视化大量数据,让测距数形结合。在车载激光雷达中,对于多目标检测,多峰算法统计等,有着区别于摄像头以及其他雷达方案的天然优势。 如下图,当中有着清晰可见的三个峰值,我们可以非…

炸弹人游戏

代码实现 广度优先搜素 深度优先搜索

巧用RTL原语实现MUX门级映射

对于前端设计人员,经常会需要一个MUX来对工作模式,数据路径进行明确(explicit)的声明,这个对于中后端工程师下约束也很重要。这里介绍一种巧用的RTL原语,实现MUX的方法。闲言少叙,ICerGo&#x…

2023自动化测试框架大对比:哪个更胜一筹?

所谓工欲善其事,必先利其器,在进行自动化测试时,选择一个合适的框架是至关重要的。因为一个好的测试框架可以大大提高测试效率,减少我们很多工作量。在选择框架之前,我们通常需要对不同的框架进行对比,以便…

Python特征工程神器:Feature Engine库详解与实战

更多资料获取 📚 个人网站:ipengtao.com 特征工程是机器学习中至关重要的一环,而Feature Engine库作为Python中的强大特征工程工具,提供了丰富的功能和灵活的操作。本文将深入探讨Feature Engine的各种特性,包括缺失值…

Trace 在多线程异步体系下传递

JAVA 线程异步常见的实现方式有&#xff1a; new ThreadExecutorService 当然还有其他的&#xff0c;比如fork-join&#xff0c;这些下文会有提及&#xff0c;下面主要针对这两种场景结合 DDTrace 和 Springboot 下进行实践。 引入 DDTrace sdk <properties><java.…

正确看待鸿蒙不兼容Android,这不是趋势?

华为可能明年推出不兼容安卓的鸿蒙版本。11月20日&#xff0c;据澎湃新闻报道&#xff0c;一华为相关人士表示&#xff0c;推出时间还不确定&#xff0c;未来IOS、鸿蒙、安卓将为三个各自独立的系统。 稍早前据证券时报报道&#xff0c;有业内人士亦表示&#xff1a;“华为内部…

eNSP小实验(vlan和单臂路由)

一.vlan的划分 实验目的&#xff1a; ①pc1 只可以和pc2通信&#xff0c;不可以和pc3 pc4通信 ②pc1和pc2只能到Server1&#xff0c;pc3和pc4到Server2 1.拓扑图 2.配置 PC1-4 同理配置 SW1 <Huawei> <Huawei>u t m //关闭注释 Info: …

三、Shell 环境

一、Linux 系统分类 在 Linux 中&#xff0c;常见的 Shell 有以下几种&#xff1a; Bourne Shell&#xff08;sh&#xff09;&#xff1a;最早的 Shell&#xff0c;由 Stephen Bourne 开发。它是大多数其他 Shell 的基础。Bourne Again Shell&#xff08;bash&#xff09;&am…

AI会取代文档工程师的工作吗?

▲ 搜索“大龙谈智能内容”关注GongZongHao▲ 先说结论&#xff0c;两个字&#xff1a;不会。 用四个字来说&#xff1a;恰恰相反。 人工智能&#xff08;AI&#xff09;在客户服务领域的应用在快速且不断地发展。围绕技术内容和知识在用户体验和客户支持中不可替代的作用的…

Centos7部署SVN

文章目录 &#xff08;1&#xff09;SVN概述&#xff08;2&#xff09;SVN与Samba共享&#xff08;3&#xff09;安装SVN&#xff08;4&#xff09;SVN搭建实例&#xff08;5&#xff09;pc连接svn服务器&#xff08;6&#xff09;svn图标所代表含义 &#xff08;1&#xff09;…