美文网首页
二、数据库视图view

二、数据库视图view

作者: 圣贤与无赖 | 来源:发表于2018-10-03 23:36 被阅读15次

一、视图的定义及作用

定义
视图是从若干基本表和(或)其他视图构造出来的表。

在创建一个视图时,只是存放的视图的定义,也即是动态检索数据的查询语句,而并不存放视图对应的数据。
在用户使用视图时才去求相对应的数据。所以视图被称作“虚表”

作用
可以限制对数据的访问,可以给用户授予表的特定部分的访问权限而不是整个表的访问权限。

可以使复杂的查询变的简单。在编写查询后,可以方便地重用它而不必知道他的基本查询细节提供了对相同数据的不同显示。

二、视图的创建和删除

  1. 创建单表视图
CREATE VIEW MYVIEW1
AS
SELECT * FROM EMP;
  1. 创建或 修改一个单表视图
CREATE OR REPLACE VIEW MYVIEW2
AS
SELECT EMPNO,ENAME,JOB,SAL,DEPTNO
FROM EMP
WHERE DEPTNO >=20
  1. 使用视图添加和修改数据
    INSERT INTO MYVIEW1 (EMPNO,ENAME,SAL)VALUES(9999,'AAAA',3000);
  1. 为视图添加相关权限
CREATE OR REPLACE VIEW MYVIEW2
AS
SELECT EMPNO,ENAME,JOB,SAL,DEPTNO
FROM EMP
WHERE DEPTNO >=20

WITH CHECK OPTION   设置视图只能操作WHERE条件的数据
WITH READ ONLY   设置视图只能读
  1. 删除视图
DROP VIEW MYVIEW4;
  1. 统计视图
CREATE OR REPLACE VIEW MYVIEW4
AS
SELECT DEPTNO 部门编号,DNAME 部门名称,AVG(SAL) 平均工资,MAX(SAL) 最高工资,COUNT(*)人数
FROM EMP E
JOIN DEPT D USING(DEPTNO)
WHERE DEPTNO IS NOT NULL
GROUP BY DEPTNO,DNAME
ORDER BY AVG(SAL)
WITH READ ONLY;
  1. 基于其它视图的视图
CREATE OR REPLACE VIEW MYVIEW5
AS
SELECT * FROM MYVIEW4 
WHERE 部门编号=10 
  1. 创建多表视图
create view trace_inputview 
as 
select a.*,b.name as username,
c.company_name as base_name,
c.manage_product as manage_product,
c.record_type as record_type,
d.name as good_name
from trace_input a 
left join sys_user b on(a.user_id=b.id) 
left join sys_company c on(a.company_code=c.company_code) 
left join trace_goods d on(a.code=d.code) 
order by a.id
  1. 用Navicat查看/编辑视图
用Navicat查看/编辑视图

三,视图的总结

  1. 视图对应一个查询语句;
    视图是(从若干基本表和(或)其他视图构造出来的)表

  2. 视图进行查询,添加,修改,删除,其实就是对背后的表进行相应操作

  3. 虚表 在创建一个视图时,只是存放的视图的定义,也即是动态检索数据的查询语句,而并不存放视图对应的数据

  4. 视图的好处
    1.安全 可以只显示部分行部分列的数据;可以对添加的数据进行检查;可以设置为只读视图
    2.操作简单

相关文章

  • 二、数据库视图view

    一、视图的定义及作用 定义视图是从若干基本表和(或)其他视图构造出来的表。 在创建一个视图时,只是存放的视图的定义...

  • SQLite 视图(View)

    SQLite 视图(View) 视图(View)只不过是通过相关的名称存储在数据库中的一个 SQLite 语句。视...

  • 关系数据库标准语言SQL(二)

    声明:最近在准备考试,故整理数据库原理笔记。 视图 视图的创建和删除 CREATE VIEW <视图名 > [ ...

  • ORACLE之视图和系统函数

    视图 视图是什么? 视图(View)是从一个或多个表(或视图)导出的表。视图与数据库中的物理表不同,视图是一个虚表...

  • 单词笔记第七天

    Browser:浏览器 URL:网址 view:视图 Model:模型 Database:数据库 template...

  • 「SQLite学习笔记」视图(View)

    视图(View)只不过是通过相关的名称存储在数据库中的一个 SQLite 语句。视图(View)实际上是一个以预定...

  • 【解题】什么是MVC、当浏览器输入域名做了什么操作、HTTP协议

    1、什么是MVC: M(model模型):主要负责数据(向数据库请求数据) V(view视图):主要负责视图(页面...

  • 【概念】MVC、MVT、ORM

    1、MVC: M(model模型):主要负责数据(向数据库请求数据) V(view视图):主要负责视图(页面) C...

  • MySQL视图

    1、视图简介 -> 视图(view)是存在数据库中虚拟的表(只是结构没有数据,数据来源于其他表)-> 访问视图,相...

  • MySQL

    数据库对象:表、视图(view)、序列(sequence)、索引(index)、同义词(synonym) DDLd...

网友评论

      本文标题:二、数据库视图view

      本文链接:https://www.haomeiwen.com/subject/qbdtaftx.html