mysql唯一约束

mysql唯一约束,第1张

唯一约束  unique

特征:

1.不允许有重复的值,保证数据的唯一性。

2.可以有空值

3.在一个表中,可以有多个唯一约束

4.默认情况下,唯一约束的名字和列名保持一致

5.添加唯一约束的列,系统也会默认给这个列添加一个唯一索引

索引:等同于书本的目录,将来能够加快数据的查询速度。

如何添加唯一约束

1.创建表的同时创建唯一约束 UN_列名

格式一:

create table 表名(

列名1 数据类型,

列名2 数据类型,

constraint 唯一约束的名字 unique(列名1),

constraint 唯一约束的名字 unique(列名2)

)

格式二:

create table 表名(

列名1 数据类型 unique,

列名2 数据类型 unique,

列名3 数据类型

)

一个表中是可以存在多个约束的

2.针对已经存在的表,添加唯一约束

格式:

alter table 表名 add unique(列名[,列名2])

3.删除唯一约束

格式:

alter table 表名 drop index 唯一约束的名字

这是一项新功能,用于指定在插入或更新到一行之前检查值的条件。如果表的任何行的搜索条件的结果为 FALSE,则约束可能返回错误(但如果结果为 UNKNOWN 或 TRUE,则约束不会返回错误)。此功能开始在 MySQL 8.0.16 上运行,在以前的版本中,我们可以创建它,但它不起作用,这意味着支持语法,但不起作用。要牢记的使用规则:

AUTO_INCREMENT 自增列不允许使用

引用另一个表中的另一列不允许使用

存储的函数和用户定义的函数不允许使用

存储过程和函数参数不允许使用

子查询不允许使用

在外键中用于后续 *** 作(ON UPDATE,ON DELETE)的列不允许使用

为下一条语句 INSERT,UPDATE,REPLACE,LOAD DATA 和 LOAD XML 评估此次监测。此外,还会为 INSERT IGNORE,UPDATE IGNORE,LOAD DATA…IGNORE 和 LOAD XML…IGNORE 评估此监测约束。对于这些语句,如果约束的评估结果为 FALSE,则会发生警告。插入或更新被跳过。

我们可以使用此功能在表中添加更多的逻辑,但是根据我以前作为程序员的经验,我不建议在表中添加逻辑,因为除非您无法访问应用程序代码,否则很难找到或调试错误。

1、两者关系

unique索引包含了unique约束,因为unique约束是通过unique索引实现的

为了实现唯一约束,数据库会强制定义一个唯一索引在数据库上面

2、两者相同点

保证了往表中插入重复列值的 *** 作都会失败。

3、两者的区别

区别在于建立和删除上.

索引是使用 create/drop index 创建和删除的

而约束是使用 alter table tb add constraint 建立, 使用 drop constraint 删除

MySQL 是一个关系型数据库,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策(本词条"授权政策"),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP ,Linux和 Apache 可组成良好的开发环境,经过多年的web技术发展,在业内被广泛使用的一种web服务器解决方案之一,称之为LAMP。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8450556.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存