MySQL约束详解

news2024/11/27 19:56:06

目录

概念

作用

分类

MySQL约束——主键约束

概念

操作

操作——添加单列主键

操作——添加多列主键(联合主键)

操作——删除主键约束

 MySQL约束-自增长约束(auto_increment)

概念

语法

操作

 特点

指定自增字段初始值

 delete和truncate在删除后自增列的变化

MySQL约束-非空约束(not null)

概念

语法

 添加非空约束—方式1

  添加非空约束—方式2

 删除非空约束

MySQL约束-唯一约束(unique)

概念

语法

​编辑 添加唯一约束—方式1

  添加唯一约束—方式2

删除唯一约束

 MySQL约束-默认约束(default)

概念

语法

 添加默认约束—方式1

 添加默认约束—方式2

MySQL约束-零填充约束(zerofill)

概念

操作

 删除 

总结


 

create table [if not exists]表名(
字段名1类型[(宽度)][约束条件][comment '字段说明'],
字段名2类型[(宽度)][约束条件][comment '字段说明'],
字段名3类型[(宽度)][约束条件][comment '字段说明']
)[表的一些设置];

概念

约束英文: constraint
约束实际上就是表中数据的限制条件

作用

表在设计的时候加入约束的目的就是为了保证表中的记录完整性和有效性,比如用户表有些列的值(手机号)不能为空,有些列的值(身份证号)不能重复。

分类

  • 主键约束(primary key) PK
  • 自增长约束(auto_increment)
  • 非空约束(not null)
  • 唯—性约束(unique)
  • 默认约束(default)
  • 零填充约束(zerofill)
  • 外键约束(foreign key) FK

MySQL约束——主键约束

概念

  • MySQL主键约束是一个列或者多个列的组合,其值能唯一地标识表中的每一行,方便在RDBMS中尽快的找到某一行。
  • 主键约束相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值。
  • 每个表最多只允许一个主键
  • 主键约束的关键字是: primary key
  • 当创建主键的约束时,系统默认会在所在的列和列组合上建立对应的唯一索引。

操作

  1. 添加单列主键
  2. 添加多列联合主键
  3. 删除主键

操作——添加单列主键

创建单列主键有两种方式,一种是在定义字段的同时指定主键,一种是定义完字段之后指定主键

方式1-语法:

 方式1-实现:

 方式2-语法:

  方式2-实现:

 pk1是主键名,constraint pk1可以省略

操作——添加多列主键(联合主键)

所谓的联合主键,就是这个主键是由一张表中多个字段组成的。

注意:
1.当主键是由多个字段组成时,不能直接在字段名后面声明主键约束。
2.一张表只能有一个主键,联合主键也是一个主键

语法:

 实现

 主键要求非空且唯一,联合主键也是如此,任意一个都是非空且唯一

通过修改表结构添加主键

主键约束不仅可以在创建表的同时创建,也可以在修改表时添加。
语法:

 实现

 

操作——删除主键约束

一个表中不需要主键约束时,就需要从表中将其删除。删除主键约束的方法要比创建主键约束容易的多。

格式:

实现

 

 MySQL约束-自增长约束(auto_increment)

概念

在MySQL中,当主键定义为自增长后,这个主键的值就不再需要用户输入数据了,而由数据库系统根据定义自动赋值.每增加一条记录,主键会自动以相同的步长进行增长。

通过给字段添加auto_increment属性来实现主键自增长

语法

操作

 例子

 

 特点

  • 默认情况下,auto_increment的初始值是1,每新增一条记录,字段值自动加1。
  • 一个表中只能有一个字段使用auto_increment约束,且该字段必须有唯一索引,以避免序号重复(即为主键或主键的一部分)。
  • auto_increment约束的字段必须具备NOT NULL属性。
  • auto_increment约束的字段只能是整数类型(TINYINT、SMALLINT、INT、BIGINT)等。
  • auto_increment约束字段的最大值受该字段的数据类型约束,如果达到上限,auto_increment就会失效。

指定自增字段初始值

如果第一条记录设置了该字段的初始值,那么新增加的记录就从这个初始值开始自增。例如,如果表中插入的第一条记录的id值设置为5,那么再插入记录时,id值就会从5开始往上增加

 

 例子

 delete和truncate在删除后自增列的变化

  1. delete数据之后自动增长从断点开始
  2. truncate数据之后自动增长从默认起始值开始

 

 

 

MySQL约束-非空约束(not null)

概念

MysQL非空约束(not null)指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。

语法

 添加非空约束—方式1

  添加非空约束—方式2

 删除非空约束

 例子

 

 

 

MySQL约束-唯一约束(unique)

概念

唯一约束(Unique Key)是指所有记录中字段的值不能重复出现。例如,为id字段加上唯一性约束后,每条记录的id值都是唯一的,不能出现重复的情况。

语法

 添加唯一约束—方式1

  添加唯一约束—方式2

删除唯一约束

  例子

 

 MySQL约束-默认约束(default)

概念

MySQL默认值约束用来指定某列的默认值。

语法

 添加默认约束—方式1

 添加默认约束—方式2

 例子

 

 

MySQL约束-零填充约束(zerofill)

概念

  1. 插入数据时,当该字段的值的长度小于定义的长度时,会在该值的前面补上相应的0
  2. zerofill默认为int(10)
  3. 当使用zerofill时,默认会自动加unsigned(无符号)属性,使用unsigned属性后,数值范围是原值的2倍,例如,有符号为-128~+127,无符号为0~256。

操作

 删除 

例子

总结

 

 

 

 

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

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

相关文章

零基础学JavaWeb开发(二十六)之 nginx(2)

5、基于Nginx解决跨域问题 5.1、什么是网站跨域问题 前端部署 html.mayikt.com /index.html 后端部署 api.mayikt.com/ 接口 java 浏览器访问:http://html.mayikt.com/user.html 页面里面 ajax 请求:http://api.mayikt.com/getUser 浏览器访问&#…

力扣刷题记录——697. 数组的度、728. 自除数 、821. 字符的最短距离

本专栏主要记录力扣的刷题记录,备战蓝桥杯,供复盘和优化算法使用,也希望给大家带来帮助,博主是算法小白,希望各位大佬不要见笑,今天要分享的是——《力扣刷题记录——697. 数组的度、728. 自除数 、821. 字…

腾讯云开发者2022年度热文盘点

01十亿人都在用的健康码运维体系如何设计?随着疫情防控模式的迭代,健康码访问DAU逐渐趋于下跌,意味着健康码将逐步完成历史使命,见证着疫情的结束。本文特邀腾讯研发工程师李雄政将从技术架构、可观测体系、运营保障体系等运维体系…

星德胜冲刺上交所上市:计划募资约10亿元,朱云舫为实际控制人

近日,星德胜科技(苏州)股份有限公司(下称“星德胜”)预披露更新招股书,准备在上海证券交易所主板上市。据贝多财经了解,星德胜于2022年7月1日递交上市申请,海通证券为其保荐机构。 …

java ssm学生成绩查询考务系统

1 绪论 1 1.1 项目背景 1 1.2 项目研究的目的和方法 1 1.2.1 项目的研究目的 1 1.2.2 开发方法及步骤 1 1.3 本章小结 2 2. 开发平台介绍 3 2.1 系统开发环境 3 2.1.1 Eclipse 3 2.2 相关技术 4 2.2.1 JSP技术 …

Web Spider 常见混淆EVAL、AA、JJ、JSFUCK

文章目录一、EVAL & constructor二、AA混淆三、JJ混淆四、JSFUCK五、针对混淆的方法简单hook总结混淆的原理:就是把原本清晰的代码故意搞得花里胡哨,让局外人看不懂; 混淆的目的:让逆向者很难理解代码的意图,无法读…

随笔集1.24

秋夜独坐经常性会出现啥都不想干的情况,似那黄鹤一去不复返,只留下脑海的白云千载空悠,对任何事情,读书、研究、游戏都提不起兴趣,每当此时静坐于窗下灯前,想起王摩诘所谓雨中山果落,灯下草虫鸣…

第二章-计算机网络物理层

文章目录计算机网络一、物理层1.1、物理层的基本概念1.2、数据通信的基本知识编码与调制编码调制混合调制信道的极限容量传输方式1.3、物理层下面的传输媒体导引型传输媒体非导引型传输媒体1.4、互联网接入技术电话网拨号接入数字用户线接入光纤同轴混合网接入光纤接入无线接入…

用友BIP对接外部旺店通企业版奇门系统

用友BIP对接外部旺店通企业奇门系统源系统:旺店通企业奇门慧策最先以旺店通ERP切入商家核心管理痛点——订单管理,之后围绕电商经营管理中的核心管理诉求,先后布局流量获取、会员管理、仓库管理等其他重要经营模块。慧策的产品线从旺店通ERP起步&#xf…

Jetpack架构组件库:Lifecycle、LiveData、ViewModel

Lifecycle 添加依赖 dependencies {def lifecycle_version "2.5.1" // ViewModelimplementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"// ViewModel utilities for Composeimplementation "androidx.lifecycle:lifecy…

解决nes_py在pip安装报错的问题

目录 项目场景: 问题描述 原因分析: 解决方案: 解决结果: 项目场景: 想跟随油管某视频复现强化学习方法玩超级马里奥的过程,结果在在Anaconda3虚拟环境中用pip安装nes_py时一直报错,报错信…

基于Python实现的图像文字识别OCR工具,包含GUI界面附完整版代码可直接运行

引言 最近在技术交流群里聊到一个关于图像文字识别的需求,在工作、生活中常常会用到,比如票据、漫画、扫描件、照片的文本提取。 博主基于 PyQt + labelme + PaddleOCR 写了一个桌面端的 OCR 工具,用于快速实现图片中文本区域自动检测 + 文本自动识别。 识别效果如下图所示:…

总结JDK中的时间日期类

在学习SpringMVC时,遇到了接收时间日期类型的参数的案例。 回顾JDK中与时间日期相关的API。 来系统地学习一下日期时间相关的API。 前置知识 在世界上有统一的时间标准 格林尼治时间,简称GMT(以伦敦的本初子午线为标准)&#x…

【BTC】数据结构

BTC 中对交易数据的存储主要涉及到了两种数据结构,一种是区块链,一种是 Merkle Tree。这两种数据结构组成了 BTC 中完整的区块链结构(如下图所示),共同完成对数据的存储和验证,确保交易的有效性。 一、区块…

常见的反爬手段和解决思路

常见的反爬手段和解决思路 学习目标 了解 服务器反爬的原因了解 服务器常反什么样的爬虫了解 反爬虫领域常见的一些概念了解 反爬的三个方向了解 常见基于身份识别进行反爬了解 常见基于爬虫行为进行反爬了解 常见基于数据加密进行反爬 1 服务器反爬的原因 爬虫占总PV(PV是指…

基于nodejs+vue的中国古诗词的设计与实现

目 录 摘要 I Abstract II 1 绪论 1 1.1 选题背景 1 1.2 选题意义 1 1.3 研究内容 2 2 相关技术介绍 3 3 系统分析 5 3.1可行性分析 5 3.1.1 操作可行性 5 3.1.2 经济可行性 5 3.1.3 技术可行性 5 3.2 需求分析 5 3.2.1非功能性需求 …

Python学习——(数据类型及其常用函数)

目录 一、数据类型 判断数据类型type() 二、数据类型的转换 三、运算符 (一)算数运算符 (二)赋值运算符 (三)复合赋值运算符 (四)比较运算符 (五)逻辑运算符 四、输入输出 (一)输出 (二)输入 五、各数据类型常用函数 (一)数值函数 1.绝对值abs(x) 2.最大值max(…

Git + Jenkins 自动化 NGINX 发布简易实现

概述 之前基于 GitLab Jenkins 实现了简单的 NGINX 的自动化发布。 具体包含如下的组件: GitLab包括 GItLab 的 WebHook; Jenkins 及其插件:Generic Webhook TriggerPublish Over SSH 🧠疑问: 为什么不用 Ansible&…

算法训练营DAY44|518. 零钱兑换 II、377. 组合总和 Ⅳ

这两道题是对于完全背包题型的另一个维度,都是求解给定背包容量求装满背包最多有几种方法的题目。两道题十分相像,但在遍历顺序上却又有着极其微妙的差别。 518. 零钱兑换 II - 力扣(LeetCode)https://leetcode.cn/problems/coin…

看完流浪地球2,这些功课你必须要补

昨天看了流浪地球2,里面的信息量太大了,回来补充了一些功课,这些知识,看完,才算对流浪地球2有了进一步了解。地球人的航天路径我们的太空航程是什么样子的呢?要从第二次世界大战开始。回形针计划&#xff1…