一、索引
索引作用:
索引使对数据库的查询不需要进行全表扫描,加快数据查询速度。
比如在student表中建立索引项为学号sno字段
解释:比数据库管理系统在执行一个在student表中根据指定的学号sno字段查找某个学生信息的语句时,它可以识别sno列是否是索引列,并首先在索引部分(按学号有序存储)查找该学生,然后根据找到的学号所指向的数据的存储位置,直接检索出需要的信息,如果没有索引,则需要从student表第一行开始,逐行检索指定的sno。而有序数据的查找往往要比无序查找更快。
索引缺点:
索引在 数据库中会占用一定的存储空间来储存索引信息。
加大了数据插入、更改和删除的时间。
索引分类
聚集索引:按索引关键字进行物理的排序。
非聚集索引:不对数据进行物理排序。
唯一索引
创建索引
create index 索引名 on 表名(列名)
例如:
为student表姓名列sname创建索引
create index sname_ind
on student(sname)
删除索引
drop index 索引名
例如:drop index sname_ind
二、视图
封装了一条复杂的查询语句。
定义视图:
create view 视图名
as
查询语句
查询语句可以是任意的select语句,但通常不包含order by和distinct子句。
例如:建立查询计算机系学生姓名,学号,性别和年龄的视图。
create view view_student
as
select sno,snam,ssex,sage
from student where sdept=‘计算机系’
在已有视图上定义新视图:
基于上面视图view_student,建立查询计算机系年龄小于20的学生姓名,学号,性别和年龄的视图。
create view view_student_age
as
select sno,sname,sage
from view_student sage<20