zoukankan      html  css  js  c++  java
  • Mysql视图

    什么是视图?

    比方说有一张基本表,用户1来查看数据可以查看到字段1和字段2,用户2来查看可以看到字段3和字段4,那么这两个用户对同一张表就有不同的视图

    首先从两个角度来看,一个是系统角度,一个是用户角度

    系统角度

    视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表

    用户角度

    视图是从一个或多个表(或视图)导出的表。可以像表一样被查询、修改、删除换个更新。

    刨根问底视图是啥?

    视图是存储在数据库中的查询的sql 语句,它主要出于两种原因:安全原因,视图可以隐藏一些数据,如:身份证号,可以用视图只显示姓名,地址,而不显账号密码等,另一原因是可使复杂的查询易于理解和使用

    视图的操作

    # 语法
    # 创建视图
    mysql>: create view 视图名[(别名们)] as select 语句;
    eg>: create view v1 as select dep, max(salary) from emp group by dep;
    
    # 创建或替换视图
    mysql>: create or replace 视图名[(别名们)] as select 语句;
    mysql>: alter 视图名[(别名们)] as select 语句;
    eg>: create or replace view v1(dep_name, max_salary) as select dep, max(salary) from emp group by dep;
    eg>: alter view v1(name, salary) as select dep, max(salary) from emp group by dep;
    
    # 删除视图
    mysql>: drop view 视图名
    eg>: drop view v1;
    
    # 视图可以作为正常表完成连表查询
    select name, dep_name, salary 
    from emp join v1 
    on emp.dep=v1.dep_name and emp.salary=v1.max_salary;
    
    # 前提:视图的增删改操作可以直接映射给真实表(本质就是对真实表进行操作)
    
    # 视图可以完成增删改,增删改本质是直接对创建视图的真实表进行操作
    create or replace view v2 as select id,name,age,salary from emp;
    update v2 set salary=salary+1 where id=1;
    delete from v2 where id=1;
    
    create or replace view v3 as select * from emp;
    insert into v3 values(1, 'yangsir', '男', 66, 1.11, '上海', '那噶的', '教职部');
    
    # 总结:操作视图,会影响真实表,反之也会影响
    update emp set salary=salary+1 where id=1;
    

    视图的优点

    1.简化数据的查询和处理,提高了重用性,就像一个函数

    2.对数据库重构,却不影响程序的运行(数据库重构,封装一个视图,和之前的表结构一样)

    3.简化用户权限的管理,提高安全性,不同用户不同视图

    4.简化查询,让数据更加的清晰,便于数据共享

  • 相关阅读:
    微信小程序之自定义模态弹窗(带动画)实例
    微信小程序 tab切换内容及分页
    Django实现标签联动以及xadmin中实现标签联动
    小程序跨页面数据传递与事件响应
    django admin显示多对多字段ManyToManyField
    【pycharm】Unable to save settings: Failed to save settings. Please restart PyCharm解决
    django-xadmin自定义widget插件(自定义详情页字段的显示样式)
    django 做 migrate 时 表已存在的处理
    感悟|再谈数学知识的积累
    欣赏|最新技术显示的试卷
  • 原文地址:https://www.cnblogs.com/zx125/p/11595089.html
Copyright © 2011-2022 走看看