• mysq 视图的用法


    一. 视图概述

    视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
    对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。
    视图是存储在数据库中的查询的SQL 语句,它主要出于两种原因:安全原因, 视图可以隐藏一些数据

    既然视图的定义是基于基本表的,哪为什么还要定义视图呢?这是因为合理地使用视图能够带来许多好处:
    1、 视图能简化用户操作
    视图机制使用户可以将注意力集中在所关心地数据上。如果这些数据不是直接来自基本表,则可以通过定义视图,使数据库看起来结构简单、清晰,并且可以简化用户的的数据查询操作。例如,那些定义了若干张表连接的视图,就将表与表之间的连接操作对用户隐藏起来了。换句话说,用户所作的只是对一个虚表的简单查询,而这个虚表是怎样得来的,用户无需了解。

    如、创建一个部门为20的所有的员工:
    create view Dept_emp as select emp.* from dept,emp where emp.deptno=dept.deptno and emp.deptno=20;

     在没有使用视图时 是通过SQL语句进行连接查询,现在使用视图,只需要一个SQL即可查询出来;


    2、 视图使用户能以多种角度看待同一数据
    视图机制能使不同的用户以不同的方式看待同一数据,当许多不同种类的用户共享同一个数据库时,这种灵活性是非常必要的。

    -- 创建一个隐藏表字段的视图
    create view emp_filed_hide as
    select ename,job,mgr,deptno from emp;
    -- 隐藏薪资字段,只对外暴露姓名,职位,部门号
    alter view emp_filed_hide
    as 
    select ename,job,deptno from emp; 


    3、 视图对重构数据库提供了一定程度的逻辑独立性
    数据的物理独立性是指用户的应用程序不依赖于数据库的物理结构。数据的逻辑独立性是指当数据库重构造时,如增加新的关系或对原有的关系增加新的字段,用户的应用程序不会受影响。层次数据库和网状数据库一般能较好地支持数据的物理独立性,而对于逻辑独立性则不能完全的支持

    4、可对视图进行crud的操作,同时操作的表的值也会发生变化

    -- 更新视图,也更新表alter
    update   emp_filed_hide set job='clerk1' where ename='smith'; 
    select * from emp_filed_hide where ename='smith'; 
     select * from emp where ename='smith'; 

    总的来说:视图提供了一定的安全性、数据逻辑独立性

  • 相关阅读:
    剑指offer——从尾到头打印链表节点的值
    1, sync_with_stdio(), tie()的应用
    Python基础1:一些小知识汇总
    HTML
    CSS
    周总结
    十三章
    十二章总结
    十一章总结
    第十一章
  • 原文地址:https://www.cnblogs.com/hellohero55/p/12111349.html
Copyright © 2020-2023  润新知