zoukankan      html  css  js  c++  java
  • mysql----视图

    视图:
    含义:虚拟表,和普通表一样使用
    MySQL5.5版本出现的新特性,是通过表动态生成的数据
    比如:舞蹈班和普通班的对比,
    通常,舞蹈班的学生是通过普通班的学生组建起来的,也就是说舞蹈班的学生来自于普通班
    
    案例:查询姓张的学生名和专业名
    select stuname,majorname
     from stuinfo a 
     inner join major m on a.majorid=m.id
     where a.stuname like '张%';
     
     换一种做法:
     创建一个视图
     create view v1
     as
     select stuname,majorname
     from stuinfo a 
     inner join major m on a.majorid=m.id;
    	
    	
    这样,上面案例可以这样做:
    select stuname,majorname from v1 WHERE stuname like '张%';
    
    二;视图的修改
    方式一:
    语法:
    create or REPLACE view 视图名
    as
    查询语句;
    案例:
    create or REPLACE view myv3
    as
    select avg(salary),job_id
    from employees
    GROUP BY job_id;
    方式二:
    语法:
    alter view 视图名
    as
    查询语句;
    案例:
    alter view myv3
    as 
    SELECT * from employees;
    
    三、删除视图
    语法:drop view 视图名,视图名,,,,
    一次行可以删除多个视图
     drop view myv1,myv2;
     
     四、查看视图
     desc myv3;
     show create view myv3;---推荐在dos命令窗口进行使用
     
     五、更新视图
    create or REPLACE view myv3
    as 
    select last_name,email
    from employees;
    
    #1插入
    insert into myv1 VALUES('张飞','zf@qq.com');
    运行结果;能够向视图中插入数据,同样也能够向原始表中插入数据,只不过没有赋值的字段是为null
    #修改   是同样的道理
    update myv1 set last_name ='张无忌' where last_name ='张飞';
    
    #删除也是同样的道理
    delete from myv1 where last_name='张无忌';
    
    不过总体上来说,视图在大部分情况下是不能够进行更新操作

      

  • 相关阅读:
    一行命令搞定AD数据库备份
    PowerShell实战4:批量修改AD账户EMail属性
    PowerShell实战1:Ping_Test
    分享/etc/sysctl.conf和/boot/loader.conf优化
    PowerShell实战5: 批量增加AD组成员
    bsd压力测试工具
    kernel : arp .....的訊息
    将域控制器移到新的 Active Directory 站
    pf限速限链接数
    FreeBSD笔记
  • 原文地址:https://www.cnblogs.com/dongyaotou/p/12353323.html
Copyright © 2011-2022 走看看