mysql实验7 视图与索引_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;

你可能感兴趣的:(mysql实验7,视图与索引)