MySQL8 练习基础SQL脚本代码(二)——索引

create database mydb5;

use mydb5;

-- --方式1-创建表的时候直接指定

create  table student(

    sid int primary key,

    card_id varchar(20),

    name varchar(20),

    gender varchar(20),

    age int,

    birth date,

    phone_num varchar(20),

    score double,

    index index_name(name) -- 给name列创建索引

);

select * from student where name = '张三';

 

-- create index indexname on tablename(columnname);

create index index_gender on student(gender);

 

-- --方式3-修改表结构(添加索引)

-- alter table tablename add index indexname(columnname)

alter table student add index index_age(age);

-- select * from mysql.`innodb_index_stats` a where a.`database_name` = '数据库名’;

select * from mysql.`innodb_index_stats` a where a.`database_name` = 'mydb5';

-- select * from mysql.`innodb_index_stats` a where a.`database_name` = '数据库名' and a.table_name like '%表名%’;

select * from mysql.`innodb_index_stats` a where a.`database_name` = 'mydb5' and a.table_name like '%student%';

---- 3、查看表中所有索引

-- show index from table_name;

show index from student;

---- 删除索引

/*

  drop index 索引名 on 表名

  -- 或

  三条sql只有 2 、 3、4能使用的到索引idx_phone_name,因为条件里面必须包含索引前面的字段  才能够进行匹配。

  而3和4相比where条件的顺序不一样,为什么4可以用到索引呢?是因为mysql本身就有一层sql优化,他会根据sql来识别出来该用哪个索引,我们可以理解为3和4在mysql眼中是等价的。