【MySQL】:表的约束(上)

表的约束

  • 一.非空约束
  • 二.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.rhkb.cn/news/216432.html

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

相关文章

Kubernetes实战(九)-kubeadm安装k8s集群

1 环境准备 1.1 主机信息 iphostname10.220.43.203master10.220.43.204node1 1.2 系统信息 $ cat /etc/redhat-release Alibaba Cloud Linux (Aliyun Linux) release 2.1903 LTS (Hunting Beagle) 2 部署准备 master/与slave主机均需要设置。 2.1 设置主机名 # master h…

做题笔记:SQL Sever 方式做牛客SQL的题目--查询每天刷题通过数最多的前二名用户

----查询每天刷题通过数最多的前二名用户id和刷题数 现有牛客刷题表questions_pass_record,请查询每天刷题通过数最多的前二名用户id和刷题数,输出按照日期升序排序,查询返回结果名称和顺序为: date|user_id|pass_count 表单创建…

论文润色突显研究亮点 papergpt

大家好,今天来聊聊论文润色突显研究亮点,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧: 标题:论文润色突显研究亮点――提升论文吸引力的关键步骤 一、引言 在学术研究中&#x…

docker学习(八、mysql8.2主从复制遇到的问题)

在我配置主从复制的时候,遇到了一直connecting的问题。 起初可能是我ip配置的不对,slave_io_running一直connecting。(我的环境:windows中安装了wsl,是ubuntu环境的,在wsl中装了miniconda,mini…

Matter分析与安全验证

本文作者:杉木涂鸦智能安全实验室 什么是matter Matter是一项智能家居的开源标准,由连接标准联盟制定、认证、推广,该标准基于互联网协议(IP),遵循该标准的智能家居设备、移动应用程序和云服务能够进行互…

Java基础语法之继承

为什么要继承 会发现,狗和猫只有叫声不同,因为它们都是动物,会有相同的属性和行为,所以它们可以继承animla类 如何继承 用到extends关键字 这样就会简化好多 注意 1.Animal称为父类/超类/基类;dog,cat称…

linux下sys目录与proc目录的作用

sys目录作用 在Linux系统中,/sys目录是一个特殊的虚拟文件系统(sysfs),用于提供对内核和设备的运行时信息的访问。它是在内核中运行的驱动程序和子系统的接口,可以用于获取和配置系统的硬件和内核信息。 以下是/sys目…

提升测试工具开发的思考

本文针对测试部效率提升测试工具开发、管理、维护暴露出来的问题的一些思考以及一些个人改进观点。 写在前面 本文提到的效率提升测试工具不是指的部门中固有的自动化测试工具,这里提到的测试工具统一指测试人员在工作之余自主开发用于期望替代重复、繁琐、耗时的手…

sylar高性能服务器-配置(P12-p14)内容记录

文章目录 p12:复杂类型解析一、方法函数二、结果展示 p13:复杂类型解析完善一、方法函数二、结果展示 p14:自定义类型解析一、方法函数二、小结 p12:复杂类型解析 ​ 本节内容主要针对完了配置类中对于复杂类型的转换。之前只实现…

最近面试了一位5年的测试,一问三不知,还反怼我...

最近看了很多简历,很多候选人年限不小,但是做的都是一些非常传统的项目,想着也不能通过简历就直接否定一个人,何况现在大环境越来 越难,大家找工作也不容易,于是就打算见一见。 在沟通中发现,由…

Linux高级管理--安装MySQL数据库系统

MySQL服务基础 MySQL.是一个真正的多线程、多用户的SQL数据库服务,凭借其高性能、高可靠和易于使 用的特性,成为服务器领域中最受欢迎的开源数据库系统。在2008年以前,MySOL项目由MySQL AB公司进行开发,发布和支持,之后…

产品表结构分析

一个项目之中,会有很多数据,众多数据之间也存在这各种关系,如何依据这些关系设计出更符合实际且适合的表及之间的关联关系也是我们所必须学习的 一、常见部门表结构分析 几乎所有框架里面都有一张部门表,我们先来看一下他的结构&…

逆向思考 C. Fence Painting

Problem - 1481C - Codeforces 思路:逆序考虑,因为每一块木板都是被最后一次粉刷所决定的。 从后往前开始,对于 c i c_i ci​来说, 如果这个颜色还有没有涂的木板,那么涂到其中一个木板即可如果这个颜色下没有未涂的…

使用selenium的edge浏览器登录某为

互联网上基本都是某哥的用法,其实edge和某哥的用法是一样的就有一下参数不一样。 一、运行环境 Python:3.7 Selenium:4.11.2 Edge:版本 120.0.2210.61 (正式版本) (64 位) 二、执行代码 from time import sleepfrom selenium…

GB28181学习(十八)——图像抓拍

前言 本文主要介绍图像抓拍功能,通过自研的sip库(mysipsdk.dll)对接真实设备,使用http方式实现图像数据传输,最终达到图像抓拍与保存的目的。 基本要求 图像格式宜使用JPEG;图像分辨率宜采用与主码流相同…

【JMeter】使用nmon进行性能资源监控

一、前言 ​ 在工作中可能会遇到需要在压测的时候对Linux服务器进行性能资源监控的情况。这时可以用nmon来对服务器进行监控。 二、nmon的下载安装 1.查看系统信息 shell cat /etc/os-release结果为 shell PRETTY_NAME"Debian GNU/Linux 12 (bookworm)" NAME&qu…

动物姿态估计:微调 YOLOv8 姿态模型

动物姿态估计是计算机视觉的一个研究领域,是人工智能的一个子领域,专注于自动检测和分析图像或视频片段中动物的姿势和位置。目标是确定一种或多种动物的身体部位(例如头部、四肢和尾巴)的空间排列。这项技术具有广泛的应用&#…

【大数据】Hadoop生态未来发展的一些看法

大数据的起源 谷歌在2003到2006年间发表了三篇论文,《MapReduce: Simplified Data Processing on Large Clusters》,《Bigtable: A Distributed Storage System for Structured Data》和《The Google File System》介绍了Google如何对大规模数据进行存储…

MATLAB基础运算

矩阵和数字相乘 就是矩阵里面每个元素跟这个数字乘一遍,无论是点乘还是叉乘,对于这个都一样。 >> Aones(3) A 1 1 11 1 11 1 1 >> 10*A ans 10 10 1010 10 1010 10 10 矩阵和矩阵叉乘 能不能相…

什么是接口测试?如何做接口测试

接口测试是指对系统或应用程序接口进行测试,以验证接口的功能、可靠性、性能、安全性等方面的需求是否被满足。接口测试可以用于测试不同系统、模块、组件之间的交互和通信,包括 Web 接口、网络接口、数据库接口等。其重点是测试数据传输、数据格式、数据…