MySql约束超详细介绍

MySql约束超详细介绍

在 MySQL 中,约束是用于强制实施数据完整性的规则。MySQL 的约束有多种类型,分别是主键、唯一、非空、默认和外键。下面将详细介绍这些类型的约束及其使用。

主键约束

主键约束是一组列或单列,其值标识表中每个记录的唯一性。创建主键会自动创建唯一索引,因此不允许在表中有重复值或NULL值。主键可由用户创建或由系统自动创建。

用户创建主键约束

我们可以在创建表时,通过在列定义中使用 PRIMARY KEY 约束创建主键,如下所示:

CREATE TABLE Persons (
    P_Id int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    PRIMARY KEY (P_Id)
);

系统自动创建主键约束

如果您没有指定主键,MySQL会自动为该表在第一个定义为 NOT NULL 的列上创建一个主键,如下所示:

CREATE TABLE Persons (
    P_Id int NOT NULL AUTO_INCREMENT,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    PRIMARY KEY (P_Id)
);

唯一约束

唯一约束用于确保列中的所有值都是唯一的。唯一约束与主键约束类似,但唯一约束允许NULL值。

用户创建唯一约束

我们可以在创建表时,在列定义中使用 UNIQUE 约束创建唯一约束,如下所示:

CREATE TABLE Persons (
    P_Id int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    UNIQUE (P_Id)
);

消除约束

我们可以在表上删除唯一约束,如下所示:

ALTER TABLE Persons 
DROP INDEX P_Id;

非空约束

非空约束确保列中的值不能为空。非空约束是在创建表时定义的。

我们可以在创建列时,在列定义中使用 NOT NULL 约束创建非空约束,如下所示:

CREATE TABLE Persons (
    P_Id int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255) NOT NULL,
    Age int
);

默认约束

默认约束用于向列中插入默认值。如果没有指定值,则使用默认值。默认约束是在创建表时定义的。

我们可以在创建列时,在列定义中使用 DEFAULT 约束创建默认约束,如下所示:

CREATE TABLE Persons (
    P_Id int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int DEFAULT 18
);

修改约束

我们可以在表上更新默认值,如下所示:

ALTER TABLE Persons 
ALTER Age SET DEFAULT 25;

外键约束

外键约束用于确保关系表中的完整性。外键约束是用于建立表与其它表之间联系的。

用户创建外键约束

我们可以在创建表时,在列定义中使用 FOREIGN KEY 约束创建外键约束,如下所示:

CREATE TABLE Orders (
    OrderId int PRIMARY KEY,
    OrderNumber int NOT NULL,
    PersonId int,
    FOREIGN KEY (PersonId) REFERENCES Persons(P_Id)
);

删除外键约束

我们可以通过以下方式删除外键约束:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PersonOrder;

结论

MySQL内置了多种类型的约束,包括主键、唯一、非空、默认和外键约束。合理使用这些约束可以有效地保证数据的完整性和一致性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySql约束超详细介绍 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • 2345看图王怎么替换文件名字符?2345看图王替换文件名字符教程

    2345看图王怎么替换文件名字符? 1. 打开需要替换文件名字符的文件夹 首先,在电脑上找到需要替换字符的文件夹,双击进入该文件夹。 2. 选择需要替换字符的文件 在文件夹内选择需要替换字符的文件。可以按住“Ctrl”键,点击鼠标左键选择多个文件。 3. 进入“2345看图王”软件 双击打开“2345看图王”软件,在软件主界面上方找到“工具”按钮,点击打开下…

    other 2023年6月26日
    00
  • Flutter滚动组件之ListView使用方法详解

    Flutter滚动组件之ListView使用方法详解 在Flutter中,滚动是常见的操作,ListView就是其中的一个滚动组件。在本篇文章中,我们将详细讲解ListView的使用方法,包括其常见的构造函数参数、如何使用ListView.builder和ListView.separated并附有示例说明。 ListView构造函数参数 ListView是一…

    other 2023年6月26日
    00
  • 配置接口切换到三层模式

    以下是关于“配置接口切换到三层模式”的完整攻略,包括基本概念、步骤和两个示例。 基本概念 在Java开发中,三层模式是一常用的设计模式,它将应用程序分三个层:表示层、业务逻辑层和数据访问层。表示层负责与交互,业务逻辑层负责处理业务逻辑,数据访问层负责与数据库交互。使用三层模式可以提高应用的可维护性和可扩展性。 步骤 以下将接口切换到三层模式的步骤: 创建表示…

    other 2023年5月7日
    00
  • win读取mac磁盘工具Paragon HFS+ for Windows 11注册安装教程(附下载)

    首先,需要下载Paragon HFS+ for Windows 11,可以在官网上下载,也可以在第三方网站进行下载。下载完成后,双击安装程序,按照安装程序提示完成安装。 接着,由于Paragon HFS+ for Windows 11是商业软件,需要激活或注册才能使用完整功能。首先,在安装后的桌面上找到软件的快捷方式,右键单击,选择“运行为管理员”。 在软件…

    other 2023年6月27日
    00
  • Android4.X中SIM卡信息初始化过程详解

    Android4.X中SIM卡信息初始化过程详解 什么是SIM卡信息初始化? 在Android手机中,当我们插入一张新的SIM卡时,手机会自动读取SIM卡中的信息,包括手机号码、短信中心号码、服务商信息等,并且将这些信息保存在系统中。这个过程就是SIM卡信息初始化。 SIM卡信息初始化的流程 1. 检测SIM卡插入状态 当我们插入一张新的SIM卡时,系统会自…

    other 2023年6月20日
    00
  • ASP生成随机字符串(数字+大小写字母)的代码

    ASP生成随机字符串(数字+大小写字母)的代码攻略 1. 生成随机字符串的函数 首先,我们需要编写一个函数来生成随机字符串。以下是一个示例代码: Function GenerateRandomString(length) Dim chars, randomString, i chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZa…

    other 2023年8月18日
    00
  • 怎么下载网页视频

    如何下载网页视频? 如果您想要下载网页视频并保存到您的设备上,下面是一些步骤和示例,以帮助您完成这项任务。 步骤1:找到要下载的网页视频 首先,您需要找到要下载的网页视频,可以在视频页面上查找网址或复制视频网址。 步骤2:安装视频下载工具 有许多视频下载工具可供选择,常见的工具包括ffmpeg、youtube-dl、VLC、Video DownloadHel…

    其他 2023年4月16日
    00
  • 苹果iOS12固件发布 iOS12 Beta1开发者预览版固件下载地址大全

    苹果iOS12固件发布 iOS12 Beta1开发者预览版固件下载地址大全 苹果公司近期发布的iOS12操作系统备受期待,这个新版本带来了许多美好的新特性。想要体验这些新特性,用户需要在对应设备上安装iOS12系统固件,本文将为大家介绍如何下载和安装iOS12 Beta1开发者预览版固件。 步骤一:备份设备 在升级操作之前,务必对设备进行备份。若该设备数据丢…

    other 2023年6月26日
    00
合作推广
合作推广
分享本页
返回顶部