一、唯一约束(UNIQUE)

唯一约束用来保证一列(或一组列)中的数据是唯一的。类似与主键,但是有以下区别:

  • 表可包含多个唯一约束,但每个表只允许一个主键。
  • 唯一约束列可包含 NULL 值。
  • 唯一约束列可修改或更新。
  • 唯一约束列的值可重复使用。
  • 唯一约束不能用来定义外键。

二、创建唯一约束

1、 定义表中单列的唯一约束

CREATE TABLE Employees
(
? ? social_num INTEGER UNIQUE
);-- 给表的 social_num 列定义添加关键字 UNIQUE,使其成为唯一约束。如果在 social_num 列中插入或更新导致重复值的值,MySQL将发出错误消息并拒绝更改

2、定义表的唯一约束(单列)

CREATE TABLE Employees
(employee_name CHAR(50) NOT NULL,social_num INTEGER,phone INTEGER,UNIQUE (social_num)
);-- 如果在 social_num 列中插入或更新导致重复值的值,MySQL将发出错误消息并拒绝更改

3、定义表的唯一约束(多列联合)

CREATE TABLE Employees
(employee_name CHAR(50) NOT NULL,social_num INTEGER,phone INTEGER,UNIQUE (employee_name, social_num)
);-- 要求两个字段联合起来时唯一的,即employee_name + social_num 是唯一的

4、使用CONSTRAINT语法定义唯一约束(可指定约束名)

(1)创建表时定义

-- 创建表时定义
CREATE TABLE Employees
(employee_name CHAR(50) NOT NULL,social_num INTEGER,phone INTEGER UNIQUE,employee_address CHAR(255),CONSTRAINT name_address UNIQUE (employee_name, employee_address)
);-- 插入数据
INSERT INTO Employees(employee_name, employee_address) VALUES('a', 'NJ');
  • 第一个UNIQUE约束应用于phone列,表示每个雇员必须具有不同的电话号码
  • 第二个UNIQUE约束名称为name_address,表示雇员employee_name可以重复,employee_address可以重复,但employee_name+employee_address必须唯一不可重复。例:a + NJ 和 a + SH
    a + NJ 和 b + NJ
    a + NJ 和 b + SH
    a + NJ 和 a + NJ 报错“1062 - Duplicate entry”

(2)在已创建好的表上加唯一约束

-- 在已创建好的表上加唯一约束,指定约束名为uni_name
ALTER TABLE Employees
ADD CONSTRAINT uni_name UNIQUE (employee_name);-- 在已创建好的表上加唯一约束,不指定约束名
ALTER TABLE Employees
ADD UNIQUE (employee_name);

三、删除唯一约束

添加唯一约束时,MySQL将为数据库创建一个相应的 BTREE 索引,所以删除索引即可删除约束。通过如下命令查询索引:

SHOW INDEX FROM 表名;

-- 格式一:
DROP INDEX 约束名 ON 表名;
-- 例如:
DROP INDEX name_address ON Employees;-- 格式二:
ALTER TABLE 表名
DROP INDEX 约束名;
-- 例如:
ALTER TABLE Employees
DROP INDEX name_address;

参考学习链接:

mysql联合唯一约束_MySQL中添加唯一约束和联合唯一约束 - 百度文库

MySQL唯一约束 -MySQL教程?

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

MYSQL 唯一约束相关推荐

  1. MySQL唯一约束(UNIQUE KEY)

    MySQL唯一约束(Unique Key)要求该列唯一,允许为空,但只能出现一个空值.唯一约束可以确保一列或者几列不出现重复值. 在创建表时设置唯一约束 在定义完列之后直接使用 UNIQUE 关键字指 ...

  2. mysql 唯一约束 多字段_mysql多字段唯一约束

    MySQL唯一约束(Unique Key)要求该列唯一,允许为空,但只能出现一个空值.唯一约束可以确保一列或者几列不出现重复值. 在创建表时设置唯一约束 在定义完列之后直接使用 UNIQUE 关键字指 ...

  3. mysql 唯一约束_Mysql 唯一性约束添加

    一.单列唯一约束 在一列上添加唯一约束,主要是让该列在表中只能有唯一的一行,例如注册邮箱时的邮箱名.手机号等信息,相关操作如下: 1.建表时加上唯一性约束: CREATE TABLE `t_user` ...

  4. java mysql 唯一约束_java MySQL约束

    # 今日内容 1. DQL:查询语句 1. 排序查询 2. 聚合函数 3. 分组查询 4. 分页查询 2. 约束 3. 多表之间的关系 4. 范式 5. 数据库的备份和还原 # DQL:查询语句 1. ...

  5. MySQL使用什么关键字添加唯一约束_mysql怎么添加唯一约束?

    方法:1.创建表时,使用"CREATE TABLE 表名(字段名 数据类型 UNIQUE);"语句来添加:2.修改表时,使用"ALTER TABLE 表名 ADD CON ...

  6. mysql唯一key_MySQL唯一约束(UNIQUE KEY)

    MySQL唯一约束(Unique Key)要求该列唯一,允许为空,但只能出现一个空值.唯一约束可以确保一列或者几列不出现重复值. 在创建表时设置唯一约束 在定义完列之后直接使用 UNIQUE 关键字指 ...

  7. 5、唯一约束(UNIQUE KEY)

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

  8. 数据库表的主键、唯一约束和索引

    目录 1.MySQL的主键. 2.MySQL的唯一约束. 3.MySQL的索引. 4.主键.唯一约束和唯一索引的区别. 1.MySQL 的 主键. "主键" 的完整称呼是 &quo ...

  9. 如何在MySQL中为多个列指定唯一约束?

    我有一张桌子: table votes (id,user,email,address,primary key(id), ); 现在,我想使列的用户,电子邮件,地址唯一(在一起). 如何在MySql中执 ...

最新文章

  1. 程序分析的一些概念总结
  2. 合肥python培训-在合肥学习Python去哪
  3. 浅谈 G1 GC 日志格式
  4. pc端html轮播带滑块,swiper.js简单快速实现轮播滑动(兼容PC端、移动端)
  5. 一步一步写算法(之“数星星”)
  6. linux等候脚本,linux – 在bash脚本中继续之前等待通过ssh运行的脚本完成
  7. Ubuntu环境下安装UliPad
  8. 二十一世纪计算|洪小文:帮助机器和人类共同学习
  9. 100个最热门的国人开发开源软件
  10. 中国流动人口动态监测调查数据(CMDS)2010-2018年
  11. 2021-10-8 学习周报
  12. SpringBoot导出Jar包并测试(使用IDEA)
  13. 亲子操打开孩子感官能力
  14. 清华大学计算机系教授武汉理工大学,武汉理工大学
  15. echarts 设置仪表盘数字的位置_全新数字高尔夫独具的特色!外观前卫紧跟潮流...
  16. STM32 SPI发送波形
  17. c盘用户/user/AppData文件夹下无用文件删除
  18. 需求管理软件(TC Requirement)介绍
  19. 《阿特拉斯耸耸肩》后记:我的选择:一定要理性一定要幸福哦
  20. Maven极速便捷安装教程

热门文章

  1. python怎么输出坐标_使用Python实现图像标记点的坐标输出功能
  2. rayleigh波的频散曲线matlab,运用matlab画出瑞利波的频散曲线
  3. Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.1.1:generate
  4. 1.有四个数字:1,2,3,4能组成多少个互不相同且无重复数字的三位数?各是多少?
  5. 【无标题】关于DBC文件的格式解析(DBC文件系列其二)
  6. DSCP(Differentiated Service Codepoint,差分服务代码点)
  7. Matlab - 产生高斯噪声
  8. 全球及中国集成电路产业战略规划与运营前景调研报告2022版
  9. 数据库:MySQL 修改密码
  10. 回顾Vue2---②