IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 【MySQL】轻松学习 唯一索引 -> 正文阅读

[大数据]【MySQL】轻松学习 唯一索引

目录

🍀🍀🍀🍀🍀

引言:什么是索引

一、唯一索引概述

二、创建唯一索引

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

? 唯一索引与unique约束共存时

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

?? 2.1、使用create语句

?? 2.2、使用alter table语句


引言:什么是索引

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


一、唯一索引概述

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

二、创建唯一索引

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

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

?注意:

  • 参数UNIQUE?INDEXUNIQUE?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);

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-01-12 00:04:27  更:2022-01-12 00:04:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:37:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码