视图(View)实际上是一张或者多张表上的预定义查询,这些表称为基表。从视图中
查询信息与从表中查询信息的方法完全相同。只需要简单的
SELECT…FROM 即可。
视图具有以下优点:
1.
可以限制用户只能通过视图检索数据。这样就可以对最终用户屏蔽建表时底层的基
表。
2.
可以将复杂的查询保存为视图。可以对最终用户屏蔽一定的复杂性。
3.
限制某个视图只能访问基表中的部分列或者部分行的特定数据。这样可以实现一定
的安全性。
4.
从多张基表中按一定的业务逻辑抽出用户关心的部分,形成一张虚拟表。
语法结构:创建视图
CREATE [OR REPLACE]
[{FORCE|NOFORCE}] VIEW view_name
AS
SELECT查询
[WITH READ ONLY
CONSTRAINT]
语法解析:
1. OR REPLACE:如果视图已经存在,则替换旧视图。
2.
FORCE:即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表
创建成功后,视图才能正常使用。
3.
NOFORCE:如果基表不存在,无法创建视图,该项是默认选项。
4. WITH READ
ONLY:默认可以通过视图对基表执行增删改操作,但是有很多在基表上
的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视
图执行
insert 操作),WITH READ ONLY
说明视图是只读视图,不能通过该视图进行
增删改操作。现实开发中,基本上不通过视图对表中的数据进行增删改操作。
案例 3:基于 EMP 表和 DEPT
表创建视图
代码演示:视图
SQL> CREATE OR REPLACE VIEW EMPDETAIL
2 AS
3
SELECT EMPNO,ENAME,JOB,HIREDATE,EMP.DEPTNO,DNAME
4 FROM EMP JOIN DEPT ON
EMP.DEPTNO=DEPT.DEPTNO
5 WITH READ ONLY
6 /
VIEW CREATED
SQL> SELECT * FROM EMPDETAIL; ①
EMPNO ENAME JOB HIREDATE
DEPTNO DNAME
7369 SMITH CLERK 17-12 月-80 20 RESEARCH
7499 ALLEN SALESMAN 20-2 月 -81 30 SALES
7521 WARD
SALESMAN 22-2 月 -81 30 SALES
7566 JONES MANAGER 02-4 月
-81 20 RESEARCH
7654 MARTIN SALESMAN 28-9 月 -81 30
SALES
7698 BLAKE MANAGER 01-5 月 -81 30 SALES
7782
CLARK MANAGER 09-6 月 -81 10 ACCOUNTING
7788 SCOTT ANALYST
19-4 月 -87 20 RESEARCH
7839 KING PRESIDENT 17-11 月-81
10 ACCOUNTING
7844 TURNER SALESMAN 08-9 月 -81 30 SALES
7876 ADAMS CLERK 23-5 月 -87 20 RESEARCH
7900 JAMES
CLERK 03-12 月-81 30 SALES
7902 FORD ANALYST 03-12 月-81
20 RESEARCH
7934 MILLER CLERK 23-1 月 -82 10 ACCOUNTING
14 ROWS SELECTED
代码解析:
①
对视图可以像表一样进行查询。该视图中隐藏了员工的工资。
删除视图可以使用“DROP VIEW 视图名称”,删除视图不会影响基表的数据
视图
时间: 2024-10-26 11:45:16
视图的相关文章
Django Book
The Django Book 2.0--中文版 第一章:介绍Django 本书所讲的是Django:一个可以使Web开发工作愉快并且高效的Web开发框架. 使用Django,使你能够以最小的代价构建和维护高质量的Web应用. 从好的方面来看,Web 开发激动人心且富于创造性:从另一面来看,它却是份繁琐而令人生厌的工作. 通过减少重复的代码,Django 使你能够专注于 Web 应用上有 趣的关键性的东西. 为了达到这个目标,Django 提供了通用Web开发模式的高度抽象,提供了频繁进行的编程
Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步
摘自:http://blog.csdn.net/javaee_sunny/article/details/53439980 目录(?)[-] Oracle 10g 物化视图语法如下 实例演示 主要步骤 在A节点创建原表和物化视图日志 在B节点创建连接A节点的远程链接 在B节点处创建目标表和与目标表名称相同的物化视图 在B节点处刷新物化视图 升级采用存储过程定时任务JOB方式定时刷新物化视图 进一步优化 文章更新记录 参考文章 Oracle 10g 物化视图语法如下: create materia
Android零基础入门第61节:滚动视图ScrollView
原文:Android零基础入门第61节:滚动视图ScrollView 前面几期学习了ProgressBar系列组件.ViewAnimator系列组件.Picker系列组件和时间日期系列组件,接下来几期继续来学习常见的其他组件. 一.ScrollView概述 从前面的学习有的同学可能已经发现,当拥有很多内容时屏幕显示不完,显示不全的部分完全看不见.但是在实际项目里面,很多内容都不止一个屏幕宽度或高度,那怎么办呢?那就需要本节学习的ScrollView来完成. 在默认情况下,ScrollView只是
Android零基础入门第60节:日历视图CalendarView和定时器Chronometer
原文:Android零基础入门第60节:日历视图CalendarView和定时器Chronometer 上一期学习了AnalogClock.DigitalClock和TextClock时钟组件,本期继续来学习日历视图CalendarView和定时器Chronometer. 一.CalendarView 日历视图(CalendarView)可用于显示和选择日期,用户既可选择一个日期,也可通过触 摸来滚动日历.如果希望监控该组件的日期改变,则可调用CalendarView的 setOnDateCha
手动创建CView视图
通过VC2010向导创建一个标准的MFC单文档框架,去掉文档/视图结构支持.然后,在资源中插入一个FormView窗口,在MainFrame的Create中创建并显示此视图窗口. CView *pView = (CMainView *)(RUNTIME_CLASS(CMainView)->CreateObject()); if(!pView) { MessageBox(_T("创建视图不成功!")); return 0; } CRec
《spring boot》8.2章学习时无法正常启动,报“ORA-00942: 表或视图不存在 ”
在学习<spring boot>一书的过程中,由于原书作者难免有一些遗漏的的地方,或者系统.软件版本不一致.框架更新等各种因素,完全安装书中源码页不能实现项目的正常启动 在8.2章节,演示JPA对oracle的支持时,配置文件中设置了如下代码,正常情况下应该支持数据库自动创建序列和表,但实际启动时却报错"ORA-00942: 表或视图不存在 " spring.datasource.driverClassName=oracle.jdbc.OracleDriver spring
视图框架:Spring MVC 4.0(1)
目录 一.表单标签库 1.1.简介 1.2.常用属性 1.3.form标签与input标签 1.4.checkbox标签 1.5.radiobutton标签 1.6.password标签 1.7.select标签 1.8.option标签 1.9.options标签 1.10.textarea.errors标签 1.11.hidden标签 1.12.radiobuttons 单选列表与checkboxs复选列表 二.视图解析器 2.1.ViewResolver视图解析器 2.2.链式视图解析器
Atitit 数据库view视图使用推荐规范与最佳实践与方法
1. 视图的优点:1 1.1. **提升可读性 定制用户数据,聚焦特定的数据1 1.2. 使用视图,可以简化数据操作. 1 1.3. **提升扩展性 屏蔽底层表的重构变动,免编译免部署热更新2 1.4. B.查询简单化. 2 1.5. C.逻辑数据独立性. 2 1.6. 提高数据安全性,可以不让用户看到表中的某个字段.2 1.7. 合并分离的数据,创建分区视图 2 1.8. 模拟索引列3 2. 缺点3 2.1. 小部分场景下,复杂视图可能会有性能问题,可以使用带参数的s
MySQL系列:视图基本操作
1. 视图简介 1.1 视图定义 视图是一种虚拟的表,是从数据库中一个或多个表中导出来的表. 视图可以从已存在的视图的基础上定义. 数据库中只存放视图的定义,并没有存放视图中的数据,数据存放在原来的表中. 视图中的数据依赖于原来的表中的数据,表中的数据发生变化,显示在视图中的数据也会改变. 1.2 视图作用 (1)增加数据安全性 通过视图,用户只能查询和修改指定的数据. 数据库授权命令可以限制用户的操作权限,但不能限制到特定行和列上.使用视图可以将用户的权限限制到特定的行和列上. (2)提高表的
自定义视图
1.创建一个视图类实现spring的View接口,并且把视图类用@Component注解为sprinmvc组建(重要) package com.hy.springmvc.views; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Compo