• day13:视图


    视图:MySQL从5.0.1版本开始提供视图功能。一种虚拟 存在的表,行和列的数据来自定义视图的查询中使用的表 ,并且是在使用视图时动态生成的,只保存了sql逻辑,不 保存查询结果 

    应用场景:

      – 多个地方用到同样的查询结果

      – 该查询结果使用的sql语句较复杂 

    视图的好处:

       • 重用sql语句

      • 简化复杂的sql操作,不必知道它的查询细节

      • 保护数据,提高安全性

    一、创建视图的语法: 

      create  view  视图名称

      as

      查询语句;

    一般是比较复杂的查询语句,简单的就没必要用视图了

    例如:查询员工姓名是张三的部门名称

    1、创建视图查看所有员工的姓名以及对应的部门名称

    create view myvi 
    AS 
    SELECT ename,dname FROM employee e INNER JOIN department d ON e.departmentid = d.id;

    2、使用

    select * from myvi where ename='张三';

    二、修改视图的语法:

    方式一:

    create   or  replace  view  视图名

    as

    查询语句;

    例如:修改视图myvi

    create or replace view myvi 
    as 
    select ename,dname,pay from employee e inner join department d on e.departmentid=d.id;

    方式二:

    alter  view  视图名

    as

    查询语句;

    例如:修改视图myvi

    alter view myvi
    as 
    select ename,dname from employee e inner join department d on e.departmentid=d.id;

    三、删除视图的语法:

    用户可以一次删除一个或者多个视图,前提是必须有该视图的drop权限。

    drop  view  视图名,视图名,...;

    例如:删除视图myvi

    drop view myvi;

    四、查看视图的语法:

    desc  视图名;

    视图的可更新性和视图中查询的定义有关系,以下类型的 视图是不能更新的。

      • 包含以下关键字的sql语句:分组函数、distinct、group  by 、having、union或者union all

      • 常量视图

      • Select中包含子查询

      • join

      • from一个不能更新的视图

      • where子句的子查询引用了from子句中的表

  • 相关阅读:
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    National Treasures HDU
    Matrix HDU
    过山车 HDU
    Jimmy’s Assignment HDU
    Card Game Cheater HDU
    Uncle Tom's Inherited Land* HDU
    50 years, 50 colors HDU
  • 原文地址:https://www.cnblogs.com/wuguiyu/p/11763910.html
Copyright © 2020-2023  润新知