MySQL索引语法

 

目录

1、创建索引:

 2、查看索引

3、删除索引

4、案例分析:

4.1、name是姓名字段,该字段的值可能会重复,为该字段创建索引

4.2、phone是手机号,手机号字段的值非空且唯一,为该字段创建索引

4.3、为profession,age创建联合索引(这里的联合索引的顺序是有讲究的)

4.4、为email建立合适的索引来提升查询效率


首先索引的语法主要由:创建索引,查看索引、删除索引构成

1、创建索引:

CREATE [UNIQUE|FULLTEXT] INDEX index_name ON table_name (index_col_name,...);
#index_name是自己起的索引的名字
#table_name是自己的数据表名
#index_col_name是需要建立索引的数据列,其中...代表多个列,一个索引时可以关联多个字段的(联合索引/组合索引)

其中,[UNIQUE|FULLTEXT] 是指创建的是唯一索引,不可以重复使用同一个值,如果不加的话就是常规索引

 2、查看索引

SHOW INDEX FROM tb_user;

可以看到索引的结果的表变形了,可以使用以下语法:

show index from table_name\G;

虽然现在数据是一行一行的,但是不直观,在实际应用中还是选择上一种;

3、删除索引

DROP INDEX index_name ON table_name;
#删除那一张表的哪一个索引

4、案例分析:

 先创建数据表,并插入数据 

 create table tb_user(id int auto_increment primary key comment '主键ID',name varchar(10) comment '姓名',profession varchar(10) comment '专业',age int comment '年龄',gender char(1) comment '1:男,2:女',phone char(11) comment '手机号',email char(11) comment '邮件'
)comment '用户基本信息表';insert into tb_user(id,name,profession,age,gender,phone,email) values(null,'黄渤','教授',45,'1','18800801111','3333@qq.com'),(null,'冰冰','学生',35,'2','18800002222' ,'4444@qq.com'),(null,'码云','老板',55,'1','18800008888' ,'5555@qq.com'),(null,'李彦宏','总裁',50,'1','18800009999','6666@qq.com');

4.1、name是姓名字段,该字段的值可能会重复,为该字段创建索引

CREATE INDEX index_user_name ON tb_user(name);

4.2、phone是手机号,手机号字段的值非空且唯一,为该字段创建索引

CREATE UNIQUE INDEX index_user_phone ON tb_user(phone);

4.3、为profession,age创建联合索引(这里的联合索引的顺序是有讲究的)

CREATE INDEX index_user_pro_age ON tb_user(profession,age);

4.4、为email建立合适的索引来提升查询效率

CREATE INDEX index_user_eamil ON tb_user(email);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/470695.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯真题:纸张尺寸

import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {Scanner scan new Scanner(System.in);//在此输入您的代码...String s scan.nextLine();char[] c s.toCharArray();char c1 c[1];in…

SpringBoot3 + Vue3 由浅入深的交互 基础交互教学

说明:这篇文章是适用于已经学过SpringBoot3和Vue3理论知识,但不会具体如何实操的过程的朋友,那么我将手把手从教大家从后端与前端交互的过程教学。 目录 一、创建一个SpringBoot3项目的和Vue3项目并进行配置 1.1后端配置: 1.1.1applicatio…

(15)Hive调优——数据倾斜的解决指南

目录 前言 一、什么是数据倾斜 二、发生数据倾斜的表现 2.1 MapReduce任务 2.2 Spark任务 三、如何定位发生数据倾斜的代码 四、发生数据倾斜的原因 3.1 key分布不均匀 3.1.1 某些key存在大量相同值 3.1.2 存在大量异常值或空值 3.2 业务数据本身的特性 3.3 SQL语句…

Django学习笔记教程全解析:初步学习Django模型,初识API,以及Django的后台管理系统(Django全解析,保姆级教程)

把时间用在思考上是最能节省时间的事情。——[美]卡曾斯 导言 写在前面 本文部分内容引用的是Django官方文档,对官方文档进行了解读和理解,对官方文档的部分注释内容进行了翻译,以方便大家的阅读和理解。 概述 在上一篇文章里&#xff0…

Repo命令使用实例(三十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

Git快速掌握,通俗易懂

Git分布式版本控制工具 介绍 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是由Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。Git可以帮助开发者们管理代码的版本,避免代码冲突&#…

无人机地面站技术,无人机地面站理论基础详解

地面站作为整个无人机系统的作战指挥中心,其控制内容包括:飞行器的飞行过程,飞行航迹, 有效载荷的任务功能,通讯链路的正常工作,以及 飞行器的发射和回收。 无人机地面站总述 地面站作为整个无人机系统的作战指挥中心…

分层图最短路

分层最短路用更加具体或者形象一点的说法就是有限制的最短路径问题。 通常是拆点解决问题,原图中的点加上一个当前点的状态&#xff0c;成为一个新的点 P4568 [JLOI2011] 飞行路线 P4568 [JLOI2011] 飞行路线 #include <bits/stdc.h> #define int long long #define …

2024.2.14

1.请编程实现二维数组的杨慧三角 #include<stdio.h> #include<string.h> int main(int argc, const char *argv[]) { int n,i,j;printf("please enter n:");scanf("%d",&n);int arr[n][n];for(i0;i<n;i){for(j0;j<i;j){if(j0 || ij…

C++类和对象-多态->多态的基本语法、多态的原理剖析、纯虚函数和抽象类、虚析构和纯虚析构

#include<iostream> using namespace std; //多态 //动物类 class Animal { public: //Speak函数就是虚函数 //函数前面加上virtual关键字&#xff0c;变成虚函数&#xff0c;那么编译器在编译的时候就不能确定函数调用了。 virtual void speak() { …

C++文件操作->文本文件(->写文件、读文件)、二进制文件(->写文件、读文件)

#include<iostream> using namespace std; #include <fstream>//头文件包含 //文本文件 写文件 void test01() { //1.包含头文件 fstream //2.创建流对象 ofstream ofs; //3.指定打开方式 ofs.open("test.txt", ios::out); //4.写…

将人工智能应用于 DNS 流量以阻止恶意软件感染

Infoblox Inc. 透露&#xff0c;它正在利用人工智能 (AI) 来识别恶意软件来源的网站。然后可以阻止这些网站以使 IT 环境更加安全。 Infoblox 产品管理副总裁 Craig Sanderson 桑德森表示&#xff0c;SOC Insights 将机器学习算法应用于 BloxOne 威胁防御平台域名服务器 (DNS)…