当前位置: 首页 > article >正文

JavaWeb——MySQL-索引(3/3)-操作语法(索引操作语法概述、创建索引、查看索引、删除索引)

目录

索引操作语法概述

创建索引

创建索引语法详解

创建索引示例

查看索引

查看索引语法

查看结果分析

删除索引

删除索引语法

删除索引操作


索引操作语法概述

        索引操作语法主要包括创建索引、查看索引和删除索引三部分,是数据库中管理索引的关键操作,对优化查询性能、合理组织数据结构具有重要意义。

创建索引

创建索引语法详解

基本语法结构

        CREATE INDEX语句用于创建索引,其后需指定索引名称,通过ON关键字明确为哪张表的哪个字段创建索引。语法格式为

CREATE INDEX 索引名 ON 表名(字段名);

索引名自定义,应遵循一定命名规范以便管理和识别,如IDX_表名_字段名形式。

多字段索引创建

        可同时为多个字段创建一个索引,字段间用逗号分隔,语法为

CREATE INDEX 索引名 ON 表名(字段名1, 字段名2,...);

多字段索引在查询条件涉及多个字段组合时能发挥作用,提高查询效率。

唯一索引创建

        若创建唯一索引,在CREATE INDEX前添加UNIQUE关键字,确保索引字段值唯一,语法为

CREATE UNIQUE INDEX 索引名 ON 表名(字段名);

唯一索引适用于需保证字段值唯一性的场景,如用户表中的用户名字段。

创建索引示例

(以 TB_EMP 表 name 字段为例)

  • 索引创建语句编写

        为TB_EMP表的name字段创建索引,根据命名规范,索引名可设为IDX_EMP_name,创建语句为

CREATE INDEX IDX_EMP_name ON TB_EMP(name);

  • 执行创建操作

        在图形化工具(如 IDEA)中,选中上述创建索引语句执行,成功执行后,索引即创建完成,数据库会依据 B + 树结构(MySQL 默认索引结构)为name字段构建索引数据结构,后续查询该字段数据时,数据库将利用此索引提高查询速度。

查看索引

查看索引语法

        使用SHOW INDEX FROM语句查看表中索引信息,语法为

SHOW INDEX FROM 表名;

执行该语句可获取表所有索引详细信息,包括索引名称、字段、索引类型等,助于了解表索引状况,判断索引是否合理创建及使用。

查看结果分析

(以 TB_EMP 表为例)

查看 TB_EMP 表索引信息

        执行语句,

SHOW INDEX FROM TB_EMP;

查询EMP表索引信息,返回结果包含多条记录,每条记录对应一个索引。

结果中索引解释

  • 主键索引(PRIMARY):若表定义了主键(如TB_EMP表中的ID字段),数据库会自动创建主键索引。主键索引用于唯一标识表中每行记录,其性能在所有索引中最高,数据库在执行查询、关联等操作时,常利用主键索引快速定位和操作数据。
  • 唯一索引(UNIQUE):若字段设置了唯一约束(如TB_EMP表中的user_name字段),数据库会自动创建唯一索引。唯一索引保证字段值唯一性,除主键索引外,用于确保特定字段在表内不重复,防止插入重复值。
  • 自定义索引:除主键索引和自动创建的唯一索引外,还有手动创建的索引(如之前为name字段创建的IDX_EMP_name索引),这些索引根据业务需求创建,用于提高特定查询条件下的查询效率。

删除索引

删除索引语法

        使用DROP INDEX语句删除索引,语法为

DROP INDEX 索引名 ON 表名;

通过指定索引名和表名,准确删除指定表上的索引,删除后,数据库将不再维护该索引相关数据结构,释放存储空间,同时查询涉及该字段时,数据库将无法使用已删除索引优化查询。

删除索引操作

(以删除 TB_EMP 表 name 字段索引为例)

  • 编写删除语句

        要删除TB_EMPname字段的索引(假设索引名为IDX_EMP_name),删除语句为

DROP INDEX IDX_EMP_name ON TB_EMP;
  • 执行删除操作与验证:在图形化工具中执行删除语句,执行成功后,再次查看EMP表索引信息(执行
    SHOW INDEX FROM TB_EMP;
    )可确认name字段索引已被删除,确保索引管理操作准确无误。

END


学习自:黑马程序员——JavaWeb课程


http://www.kler.cn/a/571207.html

相关文章:

  • C++网络编程之Socket
  • 二分题目leetcode
  • 二百八十五、华为云PostgreSQL——建分区表并设置主键
  • 10.LED点阵实验
  • 安卓内存泄露之DMA-BUF异常增长:Android Studio镜像引起DMA内存泄露
  • Google chrome拦截某些下载内容
  • 基于EM期望最大化算法的GMM参数估计与三维数据分类系统python源码
  • 软件架构设计7大原则
  • ESP32之Flash操作
  • 11、HTTPS和HTTP有哪些区别【高频】
  • SSM开发(十四) Spring之IOC
  • 大模型——CogView4:生成中英双语高清图片的开源文生图模型综合介绍
  • DeepSeek vs Grok vs ChatGPT:大模型三强争霸,谁将引领AI未来?
  • Web⾃动化测试及常用函数
  • pnpm+monorepo实现前端公共函数、组件库
  • 芯麦 GC1272 芯片:电脑散热风扇领域的高效替代之选,对比 APX9172/茂达芯片优势解析
  • Linux基础 -- ARM 32位常用机器码(指令)整理
  • Deepseek的底层架构思维构成
  • 面试-----每日一题
  • android13打基础: 接收自定义广播并在接收到广播时触发设备震动