MySQL操作(第八章)-视图和索引
视图
视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,并可以将其当作表来使用。
创建视图
基本语法:create view + 视图名 + as + select语句;
其中,select语句可以是普通查询,也可以是连接查询、联合查询、子查询等。
create view tb1 as select * from student where gender='男';
-- 使用视图进行查询。
select * from tb1 where class_id>1;
单表视图:基表只有一个;
多表视图:基表至少两个。
-- 单表视图
create view my_v1 as select * from student;
create view my_v2 as select * from class;
-- 多表视图
create view my_v3 as select s.*, c.grade, c.room from student as s left join class c on s.c_id = c.id;
查询视图
desc my_v1
-- 查询视图创建语句
show create view my_v1;
使用视图
select * from my_v1;
select * from my_v2;
select * from my_v3;
修改视图
视图本身不可修改,但是视图的来源(select)语句是可以修改的。因此,修改视图,就是修改视图的来源(select)语句。
基本语法:alter view + 视图名 + as + 新的select语句;
删除视图
基本语法:drop view + 视图名;
视图数据操作
新增数据
新增数据就是指通过视图直接对基表进行数据的新增操作。
限制 1:多表视图不能进行新增数据。
限制 2:可以向单表视图新增数据,但视图中包含的字段必须有基表中所有不能为空的字段。
删除数据
多表视图不能删除数据;
单表视图可以删除数据。
更新数据
update my_v5 set grade = 'PM2014' where id = 5;
更新限制:with check option
索引
1、索引
索引是表的目录,在查找内容之前可以先在目录中查找索引位置,以此快速定位查询数据。对于索引,会保存在额外的文件中。
2、索引,是数据库中专门用于帮助用户快速查询数据的一种数据结构。类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获取即可。
优点
索引由数据库中一列或多列组合而成,其作用是提高对表中数据的查询速度
索引的优点是可以提高检索数据的速度
缺点
索引的缺点是创建和维护索引需要耗费时间
索引可以提高查询速度,会减慢写入速度
索引分类
1,普通索引:
仅加速查询 最基本的索引,没有任何限制,是我们大多数情况下使用到的索引。
CREATE INDEX index_name on user_info(name) ;
2,唯一索引:
与普通索引类型,不同的是:加速查询 + 列值唯一(可以有null)
CREATE UNIQUE INDEX mail on user_info(name) ;
3,全文索引:
全文索引(FULLTEXT)仅可以适用于MyISAM引擎的数据表;作用于CHAR、VARCHAR、TEXT数据类型的列。
4,组合索引:
将几个列作为一条索引进行检索,使用最左匹配原则。
创建索引
1、创建表的时候同时创建索引
create table table_name(...INDEX index_name (name) COMMENT '索引name')
2、在存在的表上创建索引
create index index_name on healerjean(name)
删除索引
drop index_name on healerjean;
alter TABLE users drop index name_index ;
查看索引
show index from healerjean;

浙公网安备 33010602011771号