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子句中的表

  • 相关阅读:
    HTML基础 meta refresh 网页定时刷新
    HTML基础 meta name author 添加网页作者的信息
    HTML基础 mate refresh 5秒钟后,页面自动跳转
    HTML基础 marquee div块实现循环跑马灯的效果
    微服务jar包启动脚本
    怎么实现将word中的公式导入(或粘贴)到在线编辑中
    怎么实现将word中的公式导入(或粘贴)到网页编辑中
    Nginx实现浏览器端大文件分块上传
    javascript实现浏览器端大文件分块上传
    js实现浏览器端大文件分块上传
  • 原文地址:https://www.cnblogs.com/wuguiyu/p/11763910.html
Copyright © 2011-2022 走看看