MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
MySql差异性

MySQL 唯一键

MySQL中的唯一键是单个字段或字段组合,以确保要存储到列中的所有值都是唯一的。这意味着列不能存储 重复值。例如," student_info"表中学生的电子邮件地址和卷号或" Employee"表中员工的联系号应该是唯一的。
MySQL允许我们对UNIQUE使用多个列表中的约束。它可以接受一个 null 值,但是MySQL每列只允许一个空值。这样可以确保列或列组的 完整性将不同的值存储到表中。

唯一键的需求

在防止两条记录将相同的值存储到列中很有用。 它仅存储不同的值,这些值维护数据库的完整性和可靠性,以便以有组织的方式访问信息。 它还可以与外键一起使用,以保持表的唯一性。 它可以在表中包含空值。

语法

以下语法用于在 MySQL 。
如果我们只想在一个表中创建一个唯一的键列,请使用以下语法:
CREATE TABLE table_name(
    col1 datatype,
    col2 datatype UNIQUE,
    ...
);
如果要在一个表中创建多个唯一键列,请使用以下语法:
CREATE TABLE table_name(
  col1 col_definition,
  col2 col_definition,
  ...
  [CONSTRAint constraint_name]
  UNIQUE(column_name(s))
);
如果我们没有为唯一约束指定名称,MySQL将自动为此列生成一个名称。因此,建议在创建表时使用约束名称。

参数说明

下表详细说明了参数。
参数名称 说明
table_name 这是我们要创建的表的名称。
col1,col2 表中包含的列名称。
constraint_name 这是唯一键的名称。
column_name(s) 这将是列名,这将是唯一键。

唯一键示例

以下示例说明了MySQL中如何使用唯一键。
此语句创建表" Student2 "具有唯一约束的:
CREATE TABLE Student2 (
  Stud_ID int NOT null UNIQUE, 
  Name varchar(45), 
  Email varchar(45),
  Age int, 
  City varchar(25)
);
接下来,执行下面列出的插入查询以了解其工作原理:
mysql> INSERT INTO Student2 (Stud_ID, Name, Email, Age, City)
VALUES (1, 'Peter', 'peter@lidihuo.com', 22, 'Texas'),
(2, 'Suzi', 'suzi@lidihuo.com', 24, 'California'),
(3, 'Joseph', 'joseph@lidihuo.com', 23, 'Alaska');
mysql> INSERT INTO Student2 (Stud_ID, Name, Email, Age, City)
VALUES (1, 'Stephen', 'stephen@lidihuo.com', 22, 'Texas');
输出
在以下输出中,我们可以看到第一个 INSERT查询正确执行,但是第二条语句失败并给出错误消息: 重复输入'1'作为键Stud_ID。
MySQL唯一键
如果要在 多列上定义唯一键,请使用以下查询:
CREATE TABLE Student3 (
  Stud_ID int, 
  Roll_No int,
  Name varchar(45) NOT null, 
  Email varchar(45),
  Age int, 
  City varchar(25),
  CONSTRAint uc_rollno_email Unique(Roll_No, Email)
);
在输出中,我们可以看到唯一键值包含两列,分别为 Roll_No Email
MySQL唯一键
要验证这一点,请执行以下语句:
mysql> SHOW INDEX FROM Student3;
在这里,我们可以看到唯一约束已成功添加到表中:
MySQL唯一密钥

DROP唯一键

ALTER TABLE语句还允许我们从表中删除唯一键。以下语法用于删除唯一键:
ALTER TABLE table_name  DROP INDEX constraint_name;
在以上语法中, table_name 是我们要修改的表的名称,而 constraint_name 是我们要访问的唯一键的名称
示例
此语句将从表中永久删除 uc_rollno_email 约束。
mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email;
我们可以对此执行SHOW INDEX语句。

使用ALTER TABLE语句的唯一键

该语句使我们可以对现有表格。有时我们想向现有表的列添加唯一键;然后,该语句用于为该列添加唯一键。
语法
以下是ALTER TABLE语句以添加唯一键:
ALTER TABLE table_name ADD CONSTRAint constraint_name UNIQUE(column_list);
示例
此语句创建一个表" Students3 ",该表在表定义中没有唯一的键列。
CREATE TABLE Student3 (
  Stud_ID int, 
  Roll_No int,
  Name varchar(45) NOT null, 
  Email varchar(45),
  Age int, 
  City varchar(25)
);
创建表后,如果要向该表添加唯一键,则需要执行如下ALTER TABLE语句:
mysql> ALTER TABLE Student3 ADD CONSTRAint uc_rollno_email UNIQUE(Roll_No, Email);
我们可以看到两个语句都成功执行的输出。
MySQL唯一键
要验证这一点,请执行以下语句:
mysql> SHOW INDEX FROM Student3;
在这里,我们可以看到唯一约束已成功添加到表中:
MySQL唯一密钥
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4