前提
本篇博客,主要讲述
1索引是什么
2 索引的分类
3 索引的创建 和删除
4 查询 表中的索引
5 索引的具体应用
1 索引的含义
含义:数据库索引是一种提高数据库系统性能的方法。索引能让数据库服务器更快地查找和获取表中指定的行。
2 索引分类
单例索引:一个索引只包含单个列,但一个表中可以有多个单列索引;
- 普通索引:仅加速查询 最基本的索引,没有任何限制,是我们大多数情况下使用到的索引;
- 唯一索引:索引列中的值必须是唯一的,但允许为空值;
- 主键索引:是一种特殊的唯一索引,不允许有空值。
组合索引:在表的多个字段上创建的索引,只有在查询条件中使用了这些字段的左边字段时,索引才会被使用,使用组合索引时遵循最左前缀集合。
3 索引的创建 和删除
3.1 索引的创建
索引的创建有两种方式:一种是建表时创建,另一种是建表后创建。
普通索引
1 创表时创建普通索引
CREATE table mytable(
id INT NOT NULL,
username VARCHAR(16) NOT NULL,
INDEX [indexName] (username)
);
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);