【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合在一起。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HCIA-WLAN V3.0,那些重点要点

一、WLAN各个标准,工作频段,理论速率。 二、OFDM和OFDMA,工作频段,空间流。 三、三种帧类型:管理帧、控制帧、数据帧,CAPWAP报文和端口。 四、帧间间隔,波束成形,信道绑定&#xff0…

【obs】官方最强插件obs-websocket入门

▒ 目录 ▒ 🛫 导读需求开发环境 1️⃣ obs-websocket简介OBS版本说明obs-websocket版本说明安装(27.x版本OBS)配置插件 2️⃣ OBS-web介绍特征使用方法-5.xhttp vs https 3️⃣ obs-websocket-js开发tester.html 4️⃣ 其它开源项目obs-stud…

QML中Image动态显示图片内容

1.定义一个ColorImageProvider类 #ifndef COLORIMAGEPROVIDER_H #define COLORIMAGEPROVIDER_H#include <QObject> #include <QImage> #include <QQuickImageProvider>#include <QTimer>class ColorImageProvider :public QObject, public QQuickImag…

线上品牌展厅:打造数字品牌形象,助力品牌宣传

引言&#xff1a; 在数字化时代&#xff0c;随着互联网的普及和电子商务的发展&#xff0c;线上品牌展厅成为越来越多品牌关注的焦点。 一&#xff0e;什么是线上品牌展厅 1.线上品牌展厅的定义 线上品牌展厅是指通过互联网或移动应用程序等在线平台&#xff0c;展示品牌产品…

如何用postman进行http接口测试?

HTTP的接口测试工具有很多&#xff0c;可以进行http请求的方式也有很多&#xff0c;但是可以直接拿来就用&#xff0c;而且功能还支持的不错的&#xff0c;我使用过的来讲&#xff0c;还是postman比较上手。 优点&#xff1a; 1、支持用例管理 2、支持get、post、文件上传、…

python 安装对应版本的lxml

安装对应版本的lxml 先把对应版本的lxml文件下载下来&#xff0c;接着在文件夹路径输入cmd回车&#xff0c;用下面命令安装。

java设计模式-工厂方法模式

1.工厂方法(FactoryMethod)模式的定义 定义一个创建产品对象的工厂接口&#xff0c;将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。 2.工厂方法模式的主要优缺点 优点&#xff1a; 用户只需要知道具体工厂的名称…

数字海洋贸易:跨境电商的无边界冒险

数字时代的到来让商业舞台向全球开放&#xff0c;而跨境电商作为数字海洋中的一艘船&#xff0c;正在进行一场无边界的冒险。本文将深入探讨数字海洋贸易的概念&#xff0c;分析跨境电商在这个无边界环境中面临的挑战与机遇&#xff0c;以及如何在这个冒险中实现可持续的成功。…

【Java系列】详解多线程(二)——Thread类及常见方法(上篇)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Java系列专栏】【JaveEE学习专栏】 本专栏旨在分享学习Java的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 一…

Git命令大全:从基础到高级应用

目录 一、增加/删除文件 1.1 添加文件到暂存区 1.2 添加所有文件到暂存区 1.3 从暂存区移除文件 1.4 从版本库和工作区删除文件 二、代码提交 2.1 提交暂存区文件到本地仓库 2.2 修改最后一次提交信息 三、本地分支 3.1 创建新分支 3.2 切换分支 3.3 创建并切换到新分支 3.4 删…

4G工业路由器物联网解决方案智慧储能系统

储能系统是用于电网和用户间起到电力缓冲和削峰填谷作用的电力管理平台。储能系统通常由电池、充电机、控制器、电能质量治理装置及监控系统组成。主要应用于可再生能源发电系统&#xff0c;电力需求侧响应&#xff0c;电动汽车充电等领域。 4G工业路由器是一款专门针对物联网…

Leetcode 46 全排列

题意理解&#xff1a; 首先明确全排列是什么&#xff1f; 使用集合里所有的元素&#xff0c;使用不同的顺序进行排列&#xff0c;所有的排列集合即为全排列。 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 这里的元素不会…

python程序编程代码大全,python编程代码详解

这篇文章主要介绍了python语言的代码书写规则有哪些&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 Python代码主要由&#xff1a;5个部分组成&#xff0c;下面就分别介绍&…

子目录文件夹图片汇总

import os import shutildef collect_images(source_folder, target_folder):# 遍历主文件夹及其所有子文件夹for root, dirs, files in

【论文精读ICCV_2023】BlendFace: Re-designing Identity Encoders for Face-Swapping

【论文精读ICCV_2023】BlendFace: Re-designing Identity Encoders for Face-Swapping 一、前言Abstract1. Introduction2. Related Work3. Attribute Bias in Face Recognition Models3.1. Identity Distance Loss3.2. Analysis of Identity Similarity 4. BlendFace4.1. Pre-…

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

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

uniapp原生插件之安卓虹软人脸识别增值版原生插件

插件介绍 虹软人脸识别增值版支持在线激活&#xff0c;离线激活&#xff0c;支持图片人脸识别&#xff08;可识别网络图片&#xff09;&#xff0c;活体检测&#xff0c;离线识别&#xff0c;相机预览旋转&#xff0c;相机人脸识别&#xff0c;批量注册&#xff08;支持网络图…

Spring(Spring/Springboot 的创建) 基础

一. Spring 1.1 Spring是什么&#xff1f; Spring 指的是 Spring Frameword(Spring 框架),它是一个开源框架。 Spring 是包含了众多工具方法的IoC容器。 1.2 什么是容器&#xff1f; 容器时用来容纳某种物品的装置。 我们之前接触到的容器&#xff1a; • List/Map ->…

MySQL基础笔记

MySQL 1. SQL1.1 SQL-DDL语句1.1.1 数据库操作1.1.2 表操作 1.2 MySQL-DML语句1.3 MySQL-DQL语句1.3.1 基本查询1.3.2 条件查询1.3.3 聚合函数1.3.4 分组查询1.3.5 排序查询1.3.6 分页查询 1.4 MySQL-DCL语句1.4.1 管理用户1.4.2 权限控制 2. 函数2.1 字符串函数2.2 数值函数2.…

事件相互独立

两个事件的情况 定义&#xff1a;假设A、B是两个事件&#xff0c;如果满足&#xff0c;那么就称这两个事件相互独立。 如果&#xff0c;那么A、B相互独立和互不相容不能同时成立。 互相独立意思是一个事件的发生跟另外一个事件是否发生没有关系。而互不相容的意思是两个事件…