我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL数据库唯一索引

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL数据库唯一索引

引言:什么是索引

创建索引是指在某个表的一列或多列上建立一个索引,以便提高对表的访问速度。创建索引有3种方式,分别是1.创建表的时候创建索引、2.在已经存在的表上创建索引和使用3.ALTER TABLE语句来创建索引。

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

一、唯一索引概述

所谓唯一索引,就是在创建索引时,限制索引的字段值必须是唯一的。通过该类型的索引可以比普通索引更快速地查询某条记录。

二、创建唯一索引

创建表时创建唯一索引

CREATE TABLE tablename(    propname1 type1,    ……    propnamen type..n,    UNIQUE INDEX | KEY [indexname] (propnamen [(length)] [ ASC | DESC ] ) );

注意:

参数UNIQUE INDEX和UNIQUE KEY是用来指定字段为索引的,两者选择其中之一即可;

参数indexname是索引名字,可省略;

参数propnamen是索引对应的字段的名称,该字段必须为前面定义好的字段;

参数length是可选参数,其指索引的长度,必须是字符串类型才可以使用;

参数ASC和DESC都是可选参数,ASC表示升序排列,DESC表示降序排列,如果不指定,则为升序。

下面由SQL语句演示

create table class (    id int ,    name varchar(128),    teacher varchar(64),    unique index name_index(name));

查看一下表的详细结构

使用insert插入一些数据,并通过唯一索引来进行检索

insert into class values(1,'一班','王老师'),(2,'二班','李老师');

 

由检索结果我们可知,这里的检索使用到了定义的唯一索引

当我们将检索方式改为模糊查找时

 

由检索结果我们可知,这里并没有使用定义的唯一索引。其实数据库本身有一些优化,并不是创建了索引就一定会用,至于什么时候检索会使用索引,就要看数据库的内部机制了,感兴趣的小伙伴可以深入学习一下数据库的内部系统;

当我们将唯一索引的字段加上unique约束后又会是什么情形呢?👇

唯一索引与unique约束共存时

当唯一索引与unique约束共同作用在同一字段时,唯一索引便显得有些重复;下面会用SQL语句演示👇;

创建一张包含唯一索引与unique约束共同作用的表

create table class(    id int,    name varchar(128) unique,    teacher varchar(64),    unique index name_index (name));

查看一下表的详细结构

插入与上面相同数据,并进行检索

由结果我们可得知,虽然表中存在唯一索引,但当我们进行检索时,MySQL还是根据唯一约束来检索。事实上,当我们给某给字段定义了唯一约束时,MySQL为了保证唯一性,便会自动给这个字段添加唯一索引,而之后再手动给这个字段添加唯一索引便是一些多余操作

2、已存在的表上创建索引

2.1、使用create语句

CREATE UNIQUE INDEX indexname      ON tablename (propname [(length)] [ASC|DESC]);  

下面通过简单SQL语句演示

create table class(    id int ,    name varchar(128),    teacher varchar(64)); create unique index name_index     on class(name);

 

2.2、使用alter table语句

ALTER TABLE tablename ADD UNIQUE INDEX | KEY     indexname (propname [(length)] [ASC|DESC]);  

下面通过简单SQL语句演示

create table class(    id int ,    name varchar(128),    teaccher varchar(64)); alter table class add unique     index name_index (name);

 本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

来源地址:https://blog.csdn.net/m0_60259116/article/details/129691828

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL数据库唯一索引

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MYSQL联合唯一索引

https://blog.csdn.net/weistin/article/details/79698996
MYSQL联合唯一索引
2019-08-28

Mysql 唯一索引 防止重复插入数据

一般的批量插的 sql语句数据违反唯一性约束时,出现重复数据将会直接报错并停止执行insert into tb_name (field1,field2) values(f11,f12),(f21,f22)...这种语句将会报错并停止执行   Warning:

	Mysql 唯一索引 防止重复插入数据
2020-05-18

如何在MySQL中创建唯一索引来确保数据唯一性

标题:MySQL中创建唯一索引来确保数据唯一性的方法及代码示例在数据库设计中,确保数据的唯一性是非常重要的,可以通过在MySQL中创建唯一索引来实现。唯一索引可以保证表中某列(或列组合)的数值是唯一的,如果尝试插入重复值,MySQL会阻止
如何在MySQL中创建唯一索引来确保数据唯一性
2024-03-15

mysql怎么创建唯一索引

在MySQL中,可以使用CREATE INDEX语句来创建唯一索引。唯一索引是一种索引,其中每个索引值只能出现一次,用于保证表中的每条记录在索引列上的值都是唯一的。以下是创建唯一索引的语法示例:CREATE UNIQUE INDEX i
mysql怎么创建唯一索引
2024-04-09

MySQL唯一索引和普通索引选哪个?

想象这样一个场景,在设计一张用户表时,每人的身份证号是唯一的,需要搜索。但由于身份证号字段较大,不好将其作为主键。在业务代码已经保证插入身份证唯一的情况下,可以选择建立唯一索引和普通索引,这时该如何选择呢?接下来,将从查询和更新的执行过程进
2022-05-28

mysql中唯一索引的作用

mysql 唯一索引确保数据库表中的每一行都具有唯一的特定列值,从而:保证唯一性,防止重复值;提供快速查找,使用 b-tree 数据结构;维护数据完整性,减少冗余错误;优化空间利用率,避免重复值存储;提高查询性能,快速过滤符合唯一索引条件的
mysql中唯一索引的作用
2024-04-29

数据库主键约束、唯一约束和唯一索引的区别是什么

本篇内容主要讲解“数据库主键约束、唯一约束和唯一索引的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“数据库主键约束、唯一约束和唯一索引的区别是什么”吧!主键约束(PRIMARY KEY
2023-06-29

MySQL唯一索引如何创建

要创建一个MySQL唯一索引,可以使用以下语法:ALTER TABLE table_nameADD UNIQUE INDEX index_name (column1, column2, ...);其中,`table_name`是要添加索
2023-10-27

编程热搜

目录