MySQL数据库唯一索引

这篇具有很好参考价值的文章主要介绍了MySQL数据库唯一索引。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言:什么是索引

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

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

一、唯一索引概述

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

二、创建唯一索引

1.创建表时创建唯一索引

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)
);

MySQL数据库唯一索引

查看一下表的详细结构

MySQL数据库唯一索引

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

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

MySQL数据库唯一索引

 

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

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

MySQL数据库唯一索引

 

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

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

唯一索引与unique约束共存时

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

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

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

MySQL数据库唯一索引

查看一下表的详细结构

MySQL数据库唯一索引

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

MySQL数据库唯一索引

由结果我们可得知,虽然表中存在唯一索引,但当我们进行检索时,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);

MySQL数据库唯一索引

 

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);

MySQL数据库唯一索引

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

到了这里,关于MySQL数据库唯一索引的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库索引的数据结构

    数据库索引的功能就是让查找更加的高效,所以索引的数据结构应该是能够加速查找的数据结构。 MySQL的innoDB存储引擎的索引的数据结构就是多叉搜索树中的b+树,这可以说是为索引量身定做的一个数据结构。 首先,索引可以通过主键,unique修饰创建,也可以直接使用sql语句

    2024年02月10日
    浏览(52)
  • 简单认识MySQL数据库索引

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ●索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址)。 ●使用索引后可以不用扫描全表来定位某行的

    2024年02月16日
    浏览(65)
  • 【MySQL数据库 | 第十七篇】索引以及索引结构介绍

    目录 前言: 索引简介:  索引结构:           二叉树索引结构         Tree(普通二叉树)         B-Tree(多路平衡查找树)         B+Tree          哈希索引数据结构 总结: 在实际生活中,我们对SQL语句进行优化实际上有很大一部分都是对索引进行优化,因此对索引

    2024年02月09日
    浏览(69)
  • 高级DBA带你处理Mysql数据库漏洞修复方法以及升级版本方法指南最详细全网唯一

    日常运维实际工作中,经常碰到密评风险漏洞生产环境扫描出很多数据库漏洞,要求整改 MYSQL数据库整改方法就是升级版本,升更高版本就自动修复了上图的漏洞,能确保正常过风险评估。下文叙述了升级方法。 升级规范 5.7x升级5.7X 比如5.7.22升级5.7.36(5.7版本官方也一直在

    2024年02月06日
    浏览(77)
  • 【MySql系列】深入解析数据库索引

    MySQL索引是数据库中一个关键的概念,它可以极大地提高查询性能,加快数据检索速度。但是,要充分发挥索引的作用,需要深入理解它们的工作原理和使用方式。 在本文中,我们将深入解析MySQL索引,探讨它们的重要性、类型、创建、维护以及最佳实践。 在数据库中,索引

    2024年02月08日
    浏览(71)
  • MySQL数据库索引的种类、创建、删除

    目录 一:MySQL 索引 1、MySQL 索引介绍 2、 索引的作用  3、索引的副作用 4、 创建索引的原则依据  二、索引的分类和创建 1、 普通索引 (1) 直接创建索引 (2) 修改表方式创建 (3) 创建表的时候指定索引 2、 唯一索引 (1) 直接创建唯一索引 (2) 修改表方式创建

    2024年02月09日
    浏览(175)
  • 【Mysql系列】——详细剖析数据库“索引”【上篇】

        😎博客昵称:博客小梦 😊最喜欢的座右铭:全神贯注的上吧!!! 😊作者简介:一名热爱C/C++,算法,数据库等技术、喜爱运动、热爱K歌、敢于追梦的小博主! 😘博主小留言:哈喽! 😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮

    2024年02月02日
    浏览(54)
  • B+树:MySQL数据库索引的实现

    作为一个软件开发工程师,你对数据库肯定再熟悉不过了。作为主流的数据存储系统,它在我们的业务开发中,有着举足轻重的地位。在工作中,为了加速数据库中数据的查找速度,我们常用的处理思路是,对表中数据创建索引。那你是否思考过,数据库索引是如何实现的呢

    2024年02月09日
    浏览(58)
  • MySQL数据库的ID列添加索引

    要为MySQL数据库的ID列添加索引,可以使用以下语法: 其中, table_name 是要添加索引的表名, index_name 是索引的名称, id 是要添加索引的列名。 例如,如果要为名为 users 的表的 id 列添加索引,可以执行以下语句: 这将在 users 表的 id 列上创建名为 idx_id 的索引。 需要注意的

    2024年02月07日
    浏览(50)
  • 【MySQL索引与优化篇】数据库的设计规范

    在关系型数据库中,关于数据表设计的基本原则、规则就称为范式 。范式的英文名称是 Normal Form ,简称 NF 。它是英国人 E.F.Codd 在上个世纪70年代提出关系数据库模型后总结出来的。范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的 规则 和 指导方

    2024年02月05日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包