Ex25.1
一、什么是索引?索引分为哪几类?哪些适合建索引哪些不适合建索引。(知识点:索引的基本概念,P105-106)
二、导入school_DB数据库,做以下操作:
- 创建索引
– 1.查看表(STUDENTS)已建有哪些索引。(知识点:SHOW INDEX FROM语法,P108)
– 2.给STUDENTS表的SNAME字段创建普通索引STUINDEX1。(知识点:CREATE INDEX语法,P107)
– 3.给STUDENTS表创建联合索引STUINDEX2,SNAME字段前2字符升序,SNO字段降序。(知识点:ALTER TABLE …ADD INDEX语法,P108) - 删除索引
– 4.删除数据表STUDENTS中的STUINDEX1索引。(知识点:ALTER TABLE …DROP INDEX 语法, P109-110)
– 5.删除数据表STUDENTS中的STUINDEX2索引。(知识点:DROP INDEX 语法, P110)
一、
(1)索引是对数据库表中的一列或者多列的数据进行排序的一种结构,使用索引可快速访问数据表中的特定信息。
比如中国移动里边的表数据可能达到上亿,这样查询数据用索引就派上了用场,因为使用索引可以快速检索数据。
(2)MySQL索引分类:
普通索引:仅加速查询
唯一索引:加速查询 + 列值唯一(可以有null)
主键索引:加速查询 + 列值唯一(不可以有null)+ 表中只有一个
空间索引:主要用于地理空间数据类型
全文索引:对文本的内容进行分词,进行搜索
单列索引:只包含原表的一个列
组合索引(多列):多列值组成一个索引,专门用于组合搜索,其效率大于索引合并
二、
# 创建索引
# 1.查看表(STUDENTS)已建有哪些索引。(知识点:SHOW INDEX FROM语法,P108)
SHOW INDEX FROM students;
# 2.给STUDENTS表的SNAME字段创建普通索引STUINDEX1。(知识点:CREATE INDEX语法,P107)
CREATE INDEX STUINDEX1 ON students(sname);
# 3.给STUDENTS表创建联合索引STUINDEX2,SNAME字段前2字符升序,SNO字段降序。(知识点:ALTER TABLE ...ADD INDEX语法,P108)
# 方法一:
CREATE INDEX STUINDEX2 ON students(sname(3)ASC,sno DESC);
# 方法二:
ALTER TABLE students
ADD INDEX STUINDEX2(sname(3)ASC,sno DESC);
# 删除索引
# 4.删除数据表STUDENTS中的STUINDEX1索引。(知识点:ALTER TABLE ...DROP INDEX 语法, P109-110)
ALTER TABLE students
DROP INDEX STUINDEX1;
# 5.删除数据表STUDENTS中的STUINDEX2索引。(知识点:DROP INDEX 语法, P110)
DROP INDEX STUINDEX2 ON students;