数据库——实验6 视图的创建与使用

1. 视图的定义

视图是根据需要以一个表或多个表为基础,选择满足一定条件的行或列数据的静态定义。它是一种逻辑对象,是一种虚拟表。视图并不生成行或列的永久副本,并不占用存储空 间,也就是说,视图就是保存在数据库中的 SELECT  查询,视图定义后,可以像表一样访问它。

视图为应用程序提供了一种重新组织数据的方法,可以用视图方式来获得一些复杂报表的数据。

2. 视图的优点

使用视图有很多优点,主要表现在:

(1)为用户集中数据,简化用户的数据查询和处理,使得分散在多个表中的数据,通过视图定义在一起。

(2)简化操作,屏蔽了数据库的复杂性。

(3)重新定制数据,使得数据便于共享。

(4)合并分割数据,有利于数据输出到应用程序中。

(5)简化了用户权限的管理,增加了安全性。

3. 视图的使用范围

视图通常用来集中、简化和自定义每个用户对数据库的不同认识。通常在以下情况下将使用视图;

(1)着重于特定数据。

(2)简化数据操作。

(3)自定义数据。

(4)数据的导入与导出。

(5)跨服务器组合分区数据库。

4. 创建视图应考虑的因素

(1)在 CREATE   VIEW 语句中,不能包括 ORDER BY 、COMPUTE 或 COMPUTE BY 子句,也不能出现INTO关键字。

(2)创建视图的列最多为1024列。

(3)创建视图不能参考临时表。

(4)在一个批处理语句中,CREATE  VIEW 语句不能和其他SQL 语句混合使用。

(5)尽量避免使用外连接创建视图。

5. 创建视图的步骤

(1)编写用于创建视图的 SELECT 语句。

(2)对 SELECT  语句进行测试。

(3)检查测试结果是否正确,是否和预期的一样。

(4)创建视图。

6. 使用 SQL 语句创建和管理视图

创建视图是数据库应用中的常见需求,可以使用SQL Server 管理平台创建和管理视图,也可以使用SQL 语言创建和管理视图。

(1)使用 SQL 语句创建视图是根据对基本表的查询定义的,其命令格式如下:

CREATE VIEW < 视 图 名 > AS <SELECT-查询块>

① 从单个表派生出的视图

例:创建视图 view_ 1, 从“学生管理”数据库的“学生”表中,查询出所在院系为计算机系的,学生的学号和姓名资料,其中“学生”表结构如图所示。

8dc372642d74442f8ae4c2cdb9ce50a4.png

CREATE VIEW view_1 AS

SELECT 学号,姓名

FROM  学生

WHERE 所在院系='计算机系'

基于视图 view_ 1 进行查询: 

SELECT * FROM  view_1

② 从多个表派生出的视图

例:创建视图 view_2, 从“学生管理”数据库的“学生”表和“成绩”表中查询出学生的学号、姓名、分数资料,其中“学生”表和“成绩”表结构如图所示。

8dc372642d74442f8ae4c2cdb9ce50a4.png

CREATE VIEW view_2 AS

SELECT 学号,姓名,分数

FROM 学生,成绩

WHERE 学生.学号=成绩.学号

对用户就好像有一个如图1-27 所示的 view_2表。

d58f51ef7c554958a27920f53d0a1c72.png

 ( 2 ) 对视图修改操作,使 用 ALTER  VIEW语句。

例 :修改view_ 1视图,从“学生管理”数据库的“学生”表中,查询出所在院系为计算机系的,女学生的学号和姓名资料,其中“学生”表结构如图1-20 所示。

ALTER VIEW view_ 1 AS

SELECT 学号,姓名

FROM 学生

WHERE 所在院系='计算机系’

AND 性别='女’

(3)对视图更新时,DBMS 将转换为对基本表的更新,同样使用基本表的更新语句 UPDATE 语句。

例:将学生视图 view_2中学号为“102001”的学生姓名改为“赵南”。

UPDATE view_2

SET 姓名='赵南'

WHERE 学号='102001’

(4)对视图的删除操作,使用DROP VIEW语句,命令格式为:

DROP VIEW < 视 图 名 >

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/801565.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

加州大学欧文分校英语基础语法专项课程03:Simple Past Tense 学习笔记(完结)

Learn English: Beginning Grammar Specialization Specialization Certificate course 3&#xff1a; Simple Past Tense Course Certificate 本文是学习 https://www.coursera.org/learn/simple-past-tense 这门课的学习笔记&#xff0c;如有侵权&#xff0c;请联系删除。…

函数重载和引用【C++】

文章目录 函数重载什么是函数重载&#xff1f;函数重载的作用使用函数重载的注意点为什么C可以函数重载&#xff0c;C语言不行&#xff1f; 引用什么是引用&#xff1f;引用的语法引用的特点引用的使用场景引用的底层实现传参时传引用和传值的效率引用和指针的区别 函数重载 什…

OpenHarmony实战:物联网解决方案之芯海cst85芯片移植案例

本文介绍基于芯海cst85芯片的cst85_wblink开发板移植OpenHarmony LiteOS-M轻量系统的移植案例。 开发了Wi-Fi连接样例和XTS测试样例&#xff0c;同时实现了wifi_lite, lwip, startup, utils, xts, hdf等部件基于OpenHarmony LiteOS-M内核的适配。 移植架构上采用Board和Soc分…

ArcGIS和ArcGIS Pro快速加载ArcGIS历史影像World Imagery Wayback

ArcGIS在线历史影像网站 World Imagery Wayback(网址:https://livingatlas.arcgis.com/wayback/)提供了数期历史影像在线浏览服务,之前不少自媒体作者在文中宣称其能代表Google Earth历史影像。 1、一点对比 (1)同一级别下的版本覆盖面 以下述区域为例,自2014年2月20…

【随笔】Git 基础篇 -- 分支与合并 git rebase(十)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

GFS分布式 文件系统

一、GFS的概念 文件存储分为nfs、lvm、raid 对象存储分为GFS、CEPH、fastDFS&#xff08;分布式文件存储&#xff09;NAS OSS S3 switch OSS 属于阿里云 通过URL 链接 S3属于亚马逊通过URL链接 1.1 GFS简介 开源的分布式文件系统&#xff0c;由存储服务器、客户端…

2012年认证杯SPSSPRO杯数学建模D题(第二阶段)人机游戏中的数学模型全过程文档及程序

2012年认证杯SPSSPRO杯数学建模 D题 人机游戏中的数学模型 原题再现&#xff1a; 计算机游戏在社会和生活中享有特殊地位。游戏设计者主要考虑易学性、趣味性和界面友好性。趣味性是本质吸引力&#xff0c;使玩游戏者百玩不厌。网络游戏一般考虑如何搭建安全可靠、丰富多彩的…

第七篇:3.6 其他评估考虑/4.审计指南/5. 通用报告规范/6.披露指南、参考标准及其他 - IAB/MRC及《增强现实广告效果测量指南1.0》

翻译计划 第一篇概述—IAB与MRC及《增强现实广告效果测量指南》之目录、适用范围及术语第二篇广告效果测量定义和其他矩阵之- 3.1 广告印象&#xff08;AD Impression&#xff09;第三篇广告效果测量定义和其他矩阵之- 3.2 可见性 &#xff08;Viewability&#xff09;第四篇 …

c语言 — 文件操作【求个关注!】

文章目录 一1 为什么要使用文件&#xff1f;2 什么是文件&#xff1f;2.1 程序文件2.2 数据文件2.3 关于文件名问题&#xff01;2.4 扩展 3 关于流的思想3.1 标准流 4 文件信息区5 fopen函数与fclose函数5.1 fopen函数5.2 fclose函数 6 顺序读写函数的介绍6.1 fgetc函数6.2 fpu…

oj赛(双周赛第二十四次)

目录 1. 八大藤校2025fall标化要求已全部出炉 2. 上海“2024人才储备”计划启动&#xff01; 伐木工小码哥 杰瑞吃奶酪 小码哥处理订单 黑手党 第k小的距离 养竹鼠 甜品配置 礼物 合数分解 均分糖果 持盾 咖啡品鉴师小码哥 1. 八大藤校2025fall标化要求已全部…

景芯2.5GHz A72训练营dummy添加(一)

景芯A72做完布局布线之后导出GDS&#xff0c;然后进行GDS merge&#xff0c;然后用Calibre对Layout添加Dummy。在28nm以及之前的工艺中&#xff0c;Dummy metal对Timing的影响不是很大&#xff0c;当然Star RC也提供了相应的解决方案&#xff0c;可以考虑Dummy metal来抽取RC。…

前端二维码工具小程序产品使用说明书

一、产品概述 前端二维码工具小程序是一款便捷实用的二维码生成与识别工具&#xff0c;通过本小程序&#xff0c;用户可以轻松根据文本或链接生成二维码&#xff0c;并支持扫一扫功能识别二维码内容&#xff0c;同时提供复制识别内容的功能。此外&#xff0c;本小程序还具备美…

快速删除node_modules

1.rd /s /q node_modules 2.rimraf node_modules/ 亲测可用

【C++】手搓 list 容器

送给大家一句话&#xff1a; 若结局非你所愿&#xff0c;就在尘埃落定前奋力一搏。—— 《夏目友人帐》 手搓 list 容器 1 前言1.1 底层结构1.2 使用场景1.3 功能简介 2 框架搭建2.1 节点类2.2 list 类2.3 迭代器类 3 功能实现3.1 begin() 与 end()3.2 插入操作3.3 删除操作3…

ATM04-6P 安费诺汽车连接器6芯压线端子胶壳

ATM04-6P是一款压线端子胶壳&#xff0c;属于Amphenol&#xff08;安费诺&#xff09;品牌 ATM04-6P 规格信息&#xff1a; 制造商:Amphenol 产品种类:汽车连接器 RoHS:是 产品:Connectors 位置数量:6 Position 型式:Receptacle (Female) 线规量程:22 AWG to 16 AWG 系列:ATM 颜…

ssm032基于Java的汽车客运站管理系统的设计与实现+jsp

汽车客运站管理系统的设计与实现 摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对汽车客运站售票信息管理混乱&…

layui后台框架,将左侧功能栏目 集中到一个页面,通过上面的tab切换 在iframe加载对应页面

实现上面的 功能效果。 1 html代码 <form class"layui-form layui-form-pane" action""><div class"layui-tab" lay-filter"demo"><ul class"layui-tab-title"><li id"a0" class"lay…

使用 proxySQL 来代理 Mysql

我有若干台云主机&#xff0c; 但是只有1个台vm 具有外部ip 而在另1台vm上我安装了1个mysql instance, 正常来讲&#xff0c; 我在家里的电脑是无法连接上这个mysql 尝试过用nginx 代理&#xff0c; 但是nginx只能代理http协议的&#xff0c; mysql 3306 并不是http协议 解决…

Leetcode 6. Z 字形变换

将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时&#xff0c;排列如下&#xff1a; P A H N A P L S I I G Y I R 之后&#xff0c;你的输出需要从左往右逐行读取&#xff0…

BM96 主持人调度(二)(贪心算法)

一开始写的时候忘了给start、end数组赋值了 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可** 计算成功举办活动需要多少名主持人* param n int整型 有n个活动* param start…