MySQL基础--视图

  1. 视图的概念:MySQL从5.0.1版本开始提供视图功能。一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果
  2. 应用场景:当我们对同一条sql语句多次使用时,我们不妨将他封装到一个视图中。封装到视图中当我们使用时就像一张表一样方便我们快速查询到我们想要的数据。
  3. 创建视图:
    1. 创建(j将查询语句进行封装)
      • create view 视图名  as  (查询语句); 
      • create view  v1  as   select * from a inner join b where a.id=b.id;
    2. 使用
      • select * from v1 where id>10;  
  4. 视图的用途:
    1. 重用了sql语句 
    2. 简化了复杂的sql操作,不必担心他的查询细节
    3. 保护数据,提高安全性,视图和原表相分离
  5. 视图的修改
    1. create or replace view 视图名  as  查询语句;
    2. alter view  视图名  as 查询语句;
  6. 视图的删除
    1. drop view  视图名1,视图名2;
  7. 查看视图
    1. desc  视图名
    2. show create view  视图名; 
    3. 补充:show create table 表名;可以查看表的结构
  8. 视图的更新
    1. 创建一个视图:create or replace view  v1 as select * from user;
    2. 查询视图中的数据:select  * from v1;
    3. 对视图进行插入数据:insert into view v1(字段名1,字段名2)  values(值1,值2);----》对原始表也会进行修改插入
    4. 修改视图中数据:update v1 set 字段名=新值  where  筛选条件; 原表也会进行修改
    5. 删除视图中数据:delect  from v1 where 筛选条件;原表也会进行删除操作
  9. 视图的可更新性和视图中查询的定义有关系,以下类型的视图是不能更新的。.
    • 包含以下关键字的sql语句:

      • 分组函数、distinct、 group by、having、union 或者union all
      • 常量视图
      • Select中包含子查询
      • join
      • from一个不能更新的视图
      • where子句的子查询引用了from子句中的表
  10. 视图和表的对比

 

  创建语法的关键字 是否实际占用了物理空间 使用
视图 create view 只保存了sql逻辑 增删高改查,一般不能增删改
create table 保存了数据 增删改

  

       

posted @ 2021-05-10 09:56  张紫韩  阅读(62)  评论(0编辑  收藏  举报