SQL-索引详细介绍

avatar
作者
猴君
阅读量:4

前提

本篇博客,主要讲述 

1索引是什么

2 索引的分类

3 索引的创建 和删除

4 查询 表中的索引

5 索引的具体应用

1 索引的含义

含义:数据库索引是一种提高数据库系统性能的方法。索引能让数据库服务器更快地查找和获取表中指定的行。

2 索引分类

  • 单例索引:一个索引只包含单个列,但一个表中可以有多个单列索引;

    • 普通索引:仅加速查询 最基本的索引,没有任何限制,是我们大多数情况下使用到的索引
    • 唯一索引:索引列中的值必须是唯一的,但允许为空值;
    • 主键索引:是一种特殊的唯一索引,不允许有空值。
  • 组合索引:在表的多个字段上创建的索引,只有在查询条件中使用了这些字段的左边字段时,索引才会被使用,使用组合索引时遵循最左前缀集合。

3  索引的创建 和删除

3.1 索引的创建

索引的创建有两种方式:一种是建表时创建,另一种是建表后创建。

普通索引

1 创表时创建普通索引
  1. CREATE table mytable(
  2. id INT NOT NULL,
  3. username VARCHAR(16) NOT NULL,
  4. INDEX [indexName] (username)
  5. );
2 建表后创建普通索引

语法: create  (unique )  index 索引的名字 on 表名(字段名); 或 alter table  表名  add  index ( unique) (字段名);

注意:当需要创建唯一索引时,要添加 unique

主键索引

主键索引:一般在建表时,创建,会设为 int  而且是 AUTO_INCREMENT自增类型的,例如一般表的id字段。

组合索引

组合索引:组合索引就是在多个字段上创建一个索引。(应用场景:当表的行数远远大于索引键的数目时,使用这种方式可以明显加快表的查询速度)

3.2 删除索引

删除索引 有两种方式

1 使用 drop 删除 索引

语法: drop index  索引名  on  表名;

2 使用 alter 删除索引

语法: alter  table 表名  drop   index  索引名;

注意:如果要删除主键索引,语法格式:alter table table_name drop primary key ; #删除主键索引

4 查询表中的索引

语法: show index from 表名;

5 索引的具体应用(投歌-数据库部分作业)

第1关 创建一般索引

代码如下

create index  idx_sname on student(sname asc);

第2关 删除索引

代码如下

drop index  idx_sname  on student ;

还有另外一种写法: 

alter  table student drop   index  idx_sname;

第3关 创建联合索引

 代码如下

create index idx_sname_sdept on student(sname,sdept);

第4关:创建唯一索引

代码如下

create  unique index  uk_cname on course (cname);

代码如下

#1.创建名为pk_student的主键索引

create table student(

    stu_id int not null,

    name varchar(25) not null,

    age int not null,

    sex char(2) not null,

    classes int not null,

    grade int not null,

    primary key(stu_id)

);

#2.创建名为idx_age的普通索引

create index idx_age on student(age);

#3.创建名为uniq_classes的唯一索引

create unique index uniq_classes on student(classes);

#4.创建名为idx_group的组合索引

create index idx_group on student(name,sex,grade);

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!