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引擎的数据表;作用于CHARVARCHARTEXT数据类型的列。

  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;

 

posted @ 2019-07-30 18:11  褚褚丶  阅读(119)  评论(0)    收藏  举报