十七、MySQL约束演示

news2024/9/23 7:26:28

1、约束定义

(1)概念

        约束,顾名思义,时作用域表中字段上的规则,用于限制存储在表中的数据,主要用于保证数据库中数据的正确、有效性和完整性。

(2)各种约束分类

1、非空约束(限制字段数据不能为null):
not null
2、唯一约束(保证该字段的所有数据都是唯一、不重复的):
这里需要注意,当某个字段有‘唯一性’约束时,即便执行失败,也会占用一个主键位置
unique
3、主键约束(主键是一行数据的唯一标识,要求非空并唯一):
primary key
4、默认约束(保存数据时,如果未指定该字段的值,则采用默认值):
default
5、检查约束(保证字段值满足某一个条件):
check
6、外键约束(用来让两张表的数据之间建立连接,保证数据的一致性和完整性):
foreign key

2、实际操作

(1)先创建一个基础表:

use other;
# 创建表结构
# 字段名 数据类型 约束 comment 注释;
create table user(
    -- 自增长
    id int primary key auto_increment comment '主键',
    -- 不能为null,而且不能重复,唯一性(即便执行失败,也会占用主键)
    name varchar(10) not null unique comment '姓名',
    -- 年龄范围(0~120)
    age int check ( age>0 && age<=120 ) comment '年龄'
)comment '用户表';
insert into user(name,age) values ('lom',12),('kom',56);
insert into user(name,age) values ('jom',34);

(2)验证name字段不能为null:

# 不能为null验证:该语句会执行失败
insert into user(name,age) values (null,78);

(3) 验证name字段唯一性:

insert into user(name,age) values ('lom',12);

此处name='lom'已存在,虽该语句会执行失败,但是其仍会申请一个主键,并占用,通过添加一组新的数据,观察主键值,来验证如下:

# 唯一约束验证:此处name='lom'已存在,虽该语句会执行失败,但是其仍会申请一个主键,并占用
insert into user(name,age) values ('hom',38);

 (4)验证age字段范围:

# 年龄范围验证:该语句会执行失败,该语句会执行失败,因为-11小于0,121大于120
insert into user(name,age) values('fom',-11);
insert into user(name,age) values('dom',121);

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

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

相关文章

Win11透明任务栏失效怎么办

近期有小伙伴反映在更新Win11最新版本之后&#xff0c;发现透明任务栏失效了&#xff0c;这是怎么回事呢&#xff0c;遇到这种情况应该怎么解决呢&#xff0c;这里小编就给大家介绍几个Win11透明任务栏失效的解决方法&#xff0c;有需要的小伙伴快来看一看吧。 软件资源&#…

【全网严谨版】L1-016 查验身份证 (C++解法 整理分析了多种方法)

问题描述 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下&#xff1a; 首先对前17位数字加权求和&#xff0c;权重分配为&#xff1a;{7&#xff0c;9&#xff0c;10&#xff0c;5&#xff0c;8&#xff0c;4&#xff0c;2&#…

二、创建个人首页页面

简介 改造 App.vue 创建一个展示页面,实现一个可以轮播的功能效果。欢迎访问个人的简历网站预览效果 本章涉及修改与新增的文件:style.css、App.vue、assets 一、 自定义全局样式 将 style.css 中的文件样式内容替换为如下代码 /* 初始化样式 --------------------------…

《Java程序设计》实验报告

实验内容&#xff1a;面向对象程序设计 1、定一个名为Person的类&#xff0c;其中含有一个String类型的成员变量name和一个int类型的成员变量age&#xff0c; 分别为这两个变量定义访问方法和修改方法&#xff0c;另外再为该类定义一个名为speak的方法&#xff0c; 在其中输出n…

图书出版如何做好软文营销

在信息技术快速发展的时代&#xff0c;大部分人的阅读方式也从传统的纸媒演变为电子书阅读&#xff0c;在这种形势下&#xff0c;图书出版行业的经营模式、经营理念都面临着许多变革&#xff0c;那么在网络时代&#xff0c;图书出版行业应该如何做好软文营销呢&#xff1f;下面…

高频微观结构:日内及隔夜动量因子

本周天软因子序列课程暂时结束&#xff0c;感谢大家百忙之中参会交流&#xff01; 本次会议主要内容有&#xff1a; 1.介绍日内及隔夜动量因子的构造逻辑&#xff0c;如何选择市 场代理变量对动量因子进行改进; 2.结合因子研究平台分别分析动量因子、日内涨幅因 子、隔夜涨幅因…

【力扣每日一题】2023.9.7 修车的最少时间

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一个数值&#xff0c;数组里每个元素表示一个老师傅&#xff0c;老师傅修车花费的时间等于数值乘上车辆数的平方。 问我们修理…

【Docker】镜像的创建、管理与发布

镜像的获取 镜像可以从以下方式获得&#xff1a; 从远程镜像仓库拉取&#xff0c;可以是公有仓库&#xff0c;也可以是私有仓库从Dockerfile构建从文件导入&#xff08;离线&#xff09;从容器提交 镜像的基本操作 跟镜像相关的命令如下&#xff1a; $ docker image --help…

linux 文件属性相关

文章目录 文件存储介绍文件颜色含义软链接和硬链接 文件目录操作压缩解压 tar目录切换 cd创建目录 mkdir删除目录 rmdir rm复制文件或目录 cp移动文件或目录 mv查看指定目录下的内容 ls文本查看 cat more tail文本编辑 vim 查找查找文件 find查找文本 grep查找文件 whereis Lin…

语义分割实践思考记录(个人备忘录)

一、任务管理器、NVDIA的GPU利用率显示[1][2] 若需要在任务管理器中查看基于Pytorch框架的GPU利用率&#xff0c;那么&#xff0c;我们需要将监控面板监测内容调整为cuda。图一&#xff08;左&#xff09;即为英伟达命令行工具面板。 图一 英伟达GPU使用率监控 二、基于混淆矩阵…

如何配置Header Editor

。什么是Header Editor 当我们通过网页自带inspect中的network找到返回的response之后&#xff0c;如果需要查看具体的response内容。Header Editor可以自动将response格式美化 。如何配置 1/ 首先需要通过chrome插件安装好Header Editor 2/ 点击网页右上角图标&#xff0c…

HAProxy终结TLS双向认证代理EMQX集群

文章目录 1. 背景介绍2. 系统架构3. 证书签发3.1 创建根证书3.2 创建中间证书3.3 创建设备证书3.4 创建服务端证书 4. HAProxy开启双向认证5. 验证6. 总结 1. 背景介绍 MQTT协议已经成为当前物联网领域的关键技术之一&#xff0c;当前市面上主流的实现MQTT协议的产品主要有 EMQ…

2023年高教社杯数学建模国赛C题详细版思路

C 题 蔬菜类商品的自动定价与补货决策 2023年国赛如期而至&#xff0c;为了方便大家尽快确定选题&#xff0c;这里将对C题进行解题思路说明&#xff0c;以分析C题的主要难点、出题思路以及选择之后可能遇到的难点进行说明&#xff0c;方便大家尽快找到C题的解题思路。 难度排…

第六章 图 三、图的存储结构(邻接表、十字链表、邻接多重表)

一、邻接表法 &#xff08;1&#xff09;无向图 1.定义 与树的孩子表示法相似&#xff0c;以顺序表的数据域为头结点&#xff0c;往后存储一个单向链表&#xff0c;链表内的值表示与此结点相邻的结点。 2.度的计算 只需遍历某一结点的后接链表&#xff0c;就可以算出该节点…

Linux命令200例:Yum强大的包管理工具使用(常用)

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌。CSDN专家博主&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0…

【Python小项目之Tkinter应用】随机点名/抽奖工具小优化:实现输入框人数限定与人名显示优化,保证结果人名在窗口内显示,如果内容显示超出则弹出警告窗口

文章目录 前言一、实现思路二、关键代码三、完整代码总结前言 老规矩,先看效果展示: 优化前: 对比来看,当显示人数较多时,优化前的窗口输出框在窗口分辨率不满足显示空间时,会造成人名显示不全的问题,而且只能单行显示,并无任何提示,这样会让用户误认为程序执行正确…

socket的使用 | TCP/IP协议下服务器与客户端之间传送数据

服务器端代码&#xff1a; import java.io.*; import java.net.ServerSocket; import java.net.Socket;public class theServer {public static void main(String[] args) throws IOException {ServerSocket serverSocket new ServerSocket(9999); // 该行代码作用&#xff1…

Win7旗舰版64位桌面创建32位IE方法

很多Win7 64位旗舰版用户系统桌面上的IE8浏览器&#xff0c;打开后都是64位的&#xff0c;而很多网站并不兼容64位的IE浏览器&#xff0c;其实在Win764位系统中IE是分为64位和32位的&#xff0c;出现这样的情况可能是桌面上的IE图标指响的是64位的IE&#xff0c;我们只要重新添…

温控仪的工作原理

温控仪是调控一体化智能温度控制仪表&#xff0c;它采用了全数字化集成设计&#xff0c;具有温度曲线可编程或定点恒温控制、多重PID调节、输出功率限幅曲线编程、手动/自动切换、软启动、报警开关量输出、实时数据查询、与计算机通讯等功能&#xff0c;将数显温度仪表和ZK晶闸…

Discourse 应该保留多少备份

近期&#xff0c;我们在对 Discourse 进行恢复的时候&#xff0c;我们发现新的备份可能会导致不是所有的数据都能恢复到服务上。 这时候我们应该考虑让 Discourse 保留多少备份的问题&#xff1f; 在默认情况下&#xff0c;我们设置 Discourse 的备份是保留 5 个。这是官方的…