SQL-索引详细介绍

前提

本篇博客,主要讲述 

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);

  • 13
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值