zoukankan      html  css  js  c++  java
  • 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子句中的表

  • 相关阅读:
    Maven 环境的配置
    zTree的简单例子
    plsql免安装客户端的配置
    HDU 1232 畅通工程
    HDU 5698 瞬间移动
    Codeforces 1015E1 Stars Drawing (Easy Edition)
    Codeforces 784B Santa Claus and Keyboard Check
    Codeforces 500C New Year Book Reading
    NSarray 赋值 拷贝 等问题记录
    UINavigationController 操作记录
  • 原文地址:https://www.cnblogs.com/wuguiyu/p/11763910.html
Copyright © 2011-2022 走看看