MySQL从入门到高级 --- 4.约束

文章目录

    • 第四章:
      • 4.MySQL约束
        • 4.1 主键约束
          • 4.1.1 添加单列主键
          • 4.1.2 添加多列主键(联合主键)
          • 4.1.3 通过修改表结构添加主键
            • 4.1.4 删除主键约束
            • 4.1.5 自增长约束
            • 特点
          • 4.1.6 指定自增字段初始值 - 创建表时指定
          • 4.1.7 指定自增字段初始值 - 创建表之后
          • 4.1.8 delete与truncate删除自增列的区别
        • 4.2 非空约束
          • 4.2.1 删除非空约束
        • 4.3 唯一约束
          • 4.3.1 删除唯一约束
        • 4.4 默认约束
          • 4.4.1 删除默认约束
        • 4.5 零填充约束

第四章:

4.MySQL约束

约束(constraint)实际上是表中数据的限制条件。

作用:保证表中的记录完整性和有效性。

分类

  • 主键约束:primary key

  • 自增长约束:auto_increment

  • 非空约束:not null

  • 唯一性约束:unique

  • 默认约束:default

  • 零填充约束:zerofill

  • 外键约束:foreign key

4.1 主键约束

关键字:primary key

  • 它的值能唯一地标识表中的每一行,方便在RDBMS在尽快找到某一行

  • 主键约束列不允许重复,也不允许出现空值

  • 每个表最多只允许一个主键

  • 创建主键约束时,系统默认会在所在列和列组合上建立对应的唯一索引

操作

  • 添加单列主键

  • 添加多列联合主键

  • 删除主键

4.1.1 添加单列主键

语法1:create table 表名(

                .... <字段名><数据类型> primary key....

);
在这里插入图片描述
在这里插入图片描述

语法2:create table 表名(

                ....[constraint <约束名>] primary key [字段名]

);
在这里插入图片描述
在这里插入图片描述

  • 主键约束的列非空且唯一
4.1.2 添加多列主键(联合主键)
  • 一张表只可有一个主键,联合主键也是一个主键

  • 主键由多个字段组成时,不可直接在字段名后声明主键约束

语法:create table 表名(

              ....primary key (字段1,字段2, 字段3,.....)

);
在这里插入图片描述
在这里插入图片描述

  • 联合主键的各列,每一列都不可为空
4.1.3 通过修改表结构添加主键

语法:create table 表名(

            ....

);

alter table <表名> add primary key (字段列表);
在这里插入图片描述

在这里插入图片描述

4.1.4 删除主键约束

语法:alter table <数据表名> drop primary key;

在这里插入图片描述

4.1.5 自增长约束

语法:字段名 数据类型 auto_increment

在这里插入图片描述

特点
  • auto_increment初始值为1,每新增一条记录,字段值自动加1

  • 一个表中只有一个字段有auto_increment约束,且该字段需有唯一索引,以避免序号重复

  • auto_increment约束的字段必须具备NOT NULL属性

  • auto_increment约束的字段只能是整型类型

  • auto_increment约束的字段最大值受该字段的数据类型约束,若达到上限,auto_increment就会失效

4.1.6 指定自增字段初始值 - 创建表时指定

在这里插入图片描述

4.1.7 指定自增字段初始值 - 创建表之后

在这里插入图片描述

4.1.8 delete与truncate删除自增列的区别
  • delete数据之后自动增长从断点开始

  • truncate数据之后自动增长从默认起始值开始

在这里插入图片描述

4.2 非空约束
  • MySQL非空约束指定字段的值不可为空。

语法1:<字段名><数据类型> not null;

语法2:alter table 表名 modify 字段 类型 not null;

在这里插入图片描述

4.2.1 删除非空约束

在这里插入图片描述

4.3 唯一约束
  • 唯一约束指所有记录中的字段值不可重复出现

语法1:<字段名><数据类型> unique

语法2:alter table 表名 add constraint 约束名 unique(列);

在这里插入图片描述

4.3.1 删除唯一约束

语法:alter table <表名> drop index <唯一约束名>;

在这里插入图片描述

4.4 默认约束
  • 指定某列的默认值

语法1:<字段名> <数据类型> default <默认值>;

语法2:alter table 表名 modify 列名 类型 default 默认值;

在这里插入图片描述

4.4.1 删除默认约束

语法:alter table <表名> change column <字段名> <类型> default null;

在这里插入图片描述

4.5 零填充约束
  • 插入数据时,若该字段值的长度小于定义长度时,会在该值前补上0

  • zerofill默认为int(10)

  • 使用zerofill时,默认会加unsigned属性,使用该属性后,数值范围是原来的2倍

在这里插入图片描述

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

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

相关文章

如何配置 Prettier 配置文件,确保其中的文件 glob 模式能够正确包含 postcss.config.js 文件

如何配置 Prettier 配置文件&#xff0c;确保其中的文件 glob 模式能够正确包含 postcss.config.js 文件 要配置 Prettier 以确保其文件 glob 模式能够正确包含 postcss.config.js 文件&#xff0c;您可以按照以下步骤操作&#xff1a; 确认 Prettier 配置文件的存在&#xf…

商城数据库88张表结构(十五)

DDL 57.后台权限表 CREATE TABLE wang_privileges (privilegeId int(11) NOT NULL AUTO_INCREMENT COMMENT 自增ID,menuId int(11) NOT NULL COMMENT 父ID,privilegeCode varchar(20) NOT NULL COMMENT 权限代码,privilegeName varchar(30) NOT NULL COMMENT 权限名称,isMenu…

websocket全局封装使用

WebSocket对象的创建 WebSocket对象的关闭 启用心跳机制&#xff0c;避免断连 消息推送&#xff0c;接收到消息后进行业务逻辑处理 重连机制&#xff0c;如果断连后尝试一定次数的重连&#xff0c;超过最大次数后仍然失败则关闭连接 调用案例如下&#xff1a; const socketMana…

Vue笔记 4

内置指令 1.v-text_指令 我们学过的指令&#xff1a; ​ v-bind : 单向绑定解析表达式, 可简写为 :xxx ​ v-model : 双向数据绑定 ​ v-for : 遍历数组/对象/字符串 ​ v-on : 绑定事件监听, 可简写为 ​ v-if : 条件渲染&#xff08;动态控制节点是否存存在&#xff0…

洞察未来:数据治理中的数据架构新思维

随着大数据时代的来临&#xff0c;数据已经成为企业运营和社会发展的重要资产。然而&#xff0c;数据的复杂性和快速增长给企业带来了前所未有的挑战。在这样的背景下&#xff0c;数据治理成为了企业不可或缺的一环。数据治理不仅涉及数据的管理、安全和隐私保护&#xff0c;更…

ubuntu部署sonar与windows下使用sonar-scanner

ubuntu部署sonar与windows下使用sonar-scanner sonar部署java安装mysql安装配置sonarqube 插件安装sonar-scanner使用简单使用 sonar部署 使用的是sonarqube-7.5&#xff0c;支持的java环境是jdk8&#xff0c;且MySQL版本 >5.6 && <8.0 java安装 打开终端&…

Jackson-自定义注解及实现数据脱敏、枚举转换

Hi,大家好&#xff0c;我是抢老婆酸奶的小肥仔。 上一章&#xff0c;我们介绍了下Jackson及相关的注解&#xff0c;其实我们可以通过仿照一些注解来实现自定义以满足我们自己的业务需求&#xff0c;这一章&#xff0c;我们来说说jackson提供的自定义注解及一些应用吧。 废话不…

Virtualbox7.0.10--创建虚拟机

前言 下载Virtualbox7.0.10&#xff0c;可参考《Virtualbox–下载指定版本》 Virtualbox7.0.10具体安装步骤&#xff0c;可参考《Virtualbox7.0.10的安装步骤》 Virtualbox7.0.10创建虚拟机&#xff0c;可参考《Virtualbox7.0.10–创建虚拟机》 Virtualbox7.0.10安装Ubuntu20.0…

H.265码流解析

这一篇内容旨在对H.265码流中的一些概念做简单了解,部分概念与H.264相同,本篇中将不再重复。 1、NALU H.265(HEVC)码流的NALU结构和AVC有一些不同,属于增强版,HEVC NALU结构如下: NALU Header: Forbidden_zero_bit:1位,必须为0,如果不是则表示NALU非法;Nal_unit_t…

后端如何处理接口的重复调用

首先是&#xff0c;原理在请求接口之前&#xff0c;使用过滤器拦截数据&#xff0c;来进行判断两次数据是否一致。 1.自定义注解 2.创建一个Handler处理器 3.RepeatSubmitInterceptor的实现类 4.过滤器的配置

大型企业总分支多区域数据传输,效率为先还是安全为先?

大型企业为了业务拓展需要&#xff0c;会在全国乃至全球各地设立分公司和办事机构&#xff0c;以便更好地处理当地事务&#xff0c;并进行市场的开拓和客户维护&#xff0c;此时&#xff0c;企业内部就衍生出了新的业务需求&#xff0c;即多区域数据传输。 多区域很难准确定义&…

云容器与云中间件

云容器与中间件是两种不同的技术和服务类别&#xff0c;它们分别在云计算环境中扮演着不同的角色&#xff0c;旨在帮助企业构建、部署、管理应用程序并确保其高效、可靠地运行。下面分别介绍两者的基本概念、包含的内容以及各自的用途。 容器 基本概念&#xff1a; 在腾讯云中…

[C++][算法基础]最大不相交区间数量(贪心 + 区间问题2)

给定 &#x1d441; 个闭区间 [&#x1d44e;&#x1d456;,&#x1d44f;&#x1d456;]&#xff0c;请你在数轴上选择若干区间&#xff0c;使得选中的区间之间互不相交&#xff08;包括端点&#xff09;。 输出可选取区间的最大数量。 输入格式 第一行包含整数 &#x1d4…

Aiseesoft Data Recovery for Mac:专业数据恢复软件

Aiseesoft Data Recovery for Mac是一款高效且专业的数据恢复软件&#xff0c;专为Mac用户量身打造。 Aiseesoft Data Recovery for Mac v1.8.22激活版下载 无论是由于误删、格式化还是系统崩溃等原因导致的数据丢失&#xff0c;Aiseesoft都能帮助您快速找回。 它采用先进的扫描…

使用命令删除zip中的文件

要删除zip文件中的某个文件&#xff0c;可以使用zip工具的-d&#xff08;delete&#xff09;选项。 首先需要确保系统已安装zip程序&#xff0c;通常会预装在Linux与macOS上。在Windows系统上&#xff0c;可能要安装额外的压缩工具如7-zip&#xff0c;才能在命令行中执行这类操…

IDEA插件-通义灵码 VS ChatGPT-EasyCode

智能编码助手新时代&#xff1a;通义灵码 vs ChatGPT-EasyCode 随着人工智能技术的飞速发展&#xff0c;智能编码助手逐渐成为程序员的必备工具。它们可以帮助程序员提高编码效率&#xff0c;降低代码缺陷率&#xff0c;并解放创造力。 目前市场上涌现出了众多智能编码助手&a…

Golang | Leetcode Golang题解之第60题排列序列

题目&#xff1a; 题解&#xff1a; func getPermutation(n int, k int) string {factorial : make([]int, n)factorial[0] 1for i : 1; i < n; i {factorial[i] factorial[i - 1] * i}k--ans : ""valid : make([]int, n 1)for i : 0; i < len(valid); i {…

【哈希】Leetcode 217. 存在重复元素

题目讲解 217. 存在重复元素 算法讲解 使用set集合完成元素的存储&#xff0c;当我们将当前元素插入到集合单中&#xff0c;如果insert的返回值的pair.second等于false说明当前元素已经存在&#xff0c;反之元素在集合中存在 class Solution { public:bool containsDuplica…

开放式耳机哪个牌子好?五大爆款机型大盘点

开放式耳机采用挂耳设计&#xff0c;体积小巧&#xff0c;携带方便&#xff0c;并且更加通风透气&#xff0c;避免了耳朵过热和出汗导致的问题&#xff1b;更轻的重量能有效减少长期佩戴对耳朵带来的压力&#xff0c;佩戴时舒适度直接爆表&#xff0c;在跑步、爬山、打球等户外…

ip ssl证书无限端口

IP SSL证书是由CA认证机构颁发的一种特殊数字证书。大部分SSL数字证书都需要用户使用域名进行申请&#xff0c;想要对公网IP地址加密实现https访问就需要申请IP SSL证书。IP SSL证书采用了强大的加密算法&#xff0c;可以有效地防止数据在传输过程中被窃取或篡改&#xff0c;具…