zoukankan      html  css  js  c++  java
  • 数据库之视图

    视图

    1.什么是视图?

    -- 视图就是通过查询得到的一张虚拟表,然后将其保存下来,方便下次可以直接使用.视图的本质也是一张表.
    

    2.为什么要有视图?

    -- 如果频繁的操作一张虚拟表(拼表组成的),那么就可以将这个虚拟表建成一个视图,方便后续查询.
    

    3.视图的使用

    -- 固定语法
    create view 表名(最好让别人知道这个是视图不是表,可以设计为x2x_view的格式)
    as 虚拟表的查询sql语句;
    
    -- 具体案例
    -- 准备好俩张表,老师和课程的表
    create view teacher2course_view as 
    	select * from teacher
    	inner join course
    	on teacher.tid = course.teacher_id;
    show tables;
    select * from teacher2course_view;
    
    -- 修改视图
    alter view teacher2course_view as 
    select * from course 
    where cid > 3;
    show tables;
    select * from teacher2course_view;
    
    
    -- 删除视图
    drop view teacher2course_view;
    show tables;
    

    注意:

    1. 创建视图在硬盘上只会有表结构(.frm),没有表数据(.idb). 数据还是来自于之前的表
    2. 视图一般只用来查询,里面的数据不要修改,因为可能会影响到真正的表中的数据. 如果你要修改还不如重新创建一个视图.
    3. 视图的修改一般只针对创建视图时 as 后面定义的虚拟表的sql查询语句

    说到底,视图在以后用到的频率高不高呢??

    -- 不高
    -- 因为当你创建了很多视图之后,会造成表的不好维护.且视图有明显的效率问题.
    -- 视图是存放在数据库中的,我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用
    
  • 相关阅读:
    tuple 元组及字典dict
    day 49 css属性补充浮动 属性定位 抽屉作业
    day48 选择器(基本、层级 、属性) css属性
    day47 列表 表单 css初识
    day 46 http和html
    day 45索引
    day 44 练习题讲解 多表查询
    day 40 多表查询 子查询
    day39 表之间的关联关系、 补充 表操作总结 where 、group by、
    day38 数据类型 约束条件
  • 原文地址:https://www.cnblogs.com/jkeykey/p/14457455.html
Copyright © 2011-2022 走看看