数据库——实验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 < 视 图 名 >

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LLMs之FreeGPT35:FreeGPT35的简介、安装和使用方法、案例应用之详细攻略

LLMs之FreeGPT35&#xff1a;FreeGPT35的简介、安装和使用方法、案例应用之详细攻略 目录 FreeGPT35的简介 FreeGPT35的安装和使用方法 1、部署和启动服务 Node 2、使用 Docker 部署服务&#xff1a; 运行 Docker 容器以部署服务 使用 Docker Compose 进行更方便的容器化…

TCP/IP协议、HTTP协议和FTP协议等网络协议简介

文章目录 一、常见的网络协议二、TCP/IP协议1、TCP/IP协议模型被划分为四个层次2、TCP/IP五层模型3、TCP/IP七层模型 三、FTP网络协议四、Http网络协议1、Http网络协议简介2、Http网络协议的内容3、HTTP请求协议包组成4、HTTP响应协议包组成 一、常见的网络协议 常见的网络协议…

Docker之数据卷和Dockerfile

目录 一、Docker数据管理 二、数据卷 创建数据卷 查看数据卷 删除数据卷 挂载数据卷 三、数据卷容器 创建数据卷容器 测试数据卷容器 备份数据卷容器 还原数据卷容器 四、Dockerfile 什么是Dockerfile 基本结构 常用指令 快速入门 编写Dockerfile文件 构建镜…

Java-Tomcat

一、web补充技术 ①&#xff1a;B/S架构 主流的方式&#xff0c;只要有浏览器即可。编程方式直接基于socket即可 ②&#xff1a;javascript 简称js&#xff0c;早期只是实现在客户端的浏览器的动态效果&#xff0c;但服务端不会解释运行&#xff0c;所以本质上是静态资源。 …

使用新版FLIR (FLIR_ADAS_v2) 数据集创建yolo格式数据集(目标检测)

FLIR在2022.1.19发布了新版的FLIR_ADAS_v2&#xff0c;有着更多的类别和数量更丰富的图像。数据集同步注释热图像和无注释RGB图像供参考。本文章主要介绍如何使用FLIR_ADAS_v2中的rgb图像和thermal图像来制作yolo格式数据集。 1.官方数据集下载&#xff1a;FLIR_ADAS_v2数据集…

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…

【鸿蒙开发】ArkTS和组件

1. 初识ArkTS语言 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性。 当前&#xff0c;ArkTS在TS的基础上主要扩展了如下能力&#xff1a; 基本语法&#xff1a;ArkTS定义了声明式UI描述、自…

AI日报:北大Open Sora视频生成更强了;文心一言可以定制你自己的声音;天工 SkyMusic即将免费开放;

&#x1f916;&#x1f4f1;&#x1f4bc;AI应用 北大Open Sora视频生成更强了!时长可达10秒&#xff0c;分辨率更高 【AiBase提要:】 ⭐️ Open-Sora-Plan v1.0.0模型发布 显著提升视频生成质量和文本控制能力 ⭐️ 支持华为昇腾910b芯片&#xff0c;提升运行效率和质量。 ⭐…

智慧安防系统EasyCVR视频汇聚平台接入大华设备无法语音对讲的原因排查与解决

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台支持7*24小时实时高清视频监控&#xff0c;能同时播放多路监控视频流&#xff0c;视频画面1、4、9、16个可选&#xff0c;支持自定义视频轮播。EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标…

CasaOS玩客云部署AList+Aria2结合内网穿透实现公网离线下载文件至网盘

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-cdH8fnSF05FmvunX {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

React - 请你说一说setState是同步的还是异步的

难度级别:中高级及以上 提问概率:70% 在React项目中,使用setState可以更新状态数据,而不能直接使用为this.state赋值的方式。而为了避免重复更新state数据,React首先将state添加到状态队列中,此时我们可以通过shouldComponentUpdate这个钩…

AutoDev 1.8 融合 DevOps 规范和实践,构建演进式 AI 辅助编码

在新版本的 AutoDev 中&#xff0c;我们又融入了一系列软件开发的实践&#xff0c;以更好地辅助开发人员的日常工作。这些新的特性&#xff0c;融合了我们对于 AI 辅助编码的新理解。诸如于&#xff1a; 重构&#xff1a;AI 重命名、坏味道重构、重构建议。提交信息优化&#x…

【Python】OPC UA 服务器扫描工具

引言 OPC UA&#xff08;开放平台通信统一架构&#xff09;是一种跨平台的、开放的数据交换标准&#xff0c;广泛用于工业自动化领域。在工业4.0的大背景下&#xff0c;OPC UA服务器在网络中的部署日益增多&#xff0c;如何快速有效地发现这些服务器成为了一个实际需求。本文将…

【opencv】示例-create_mask.cpp 通过鼠标交互产生掩膜图像(黑白图像)

/* * create_mask.cpp * * Author: * Siddharth Kherada <siddharthkherada27[at]gmail[dot]com> * * 这个教程演示了如何制作掩膜图像&#xff08;黑白图像&#xff09;。 * 该程序将输入图像作为源图像&#xff0c;并输出对应的掩膜图像。 */#include "opencv2/im…

【opencv】示例-demhist.cpp 调整图像的亮度和对比度,并在GUI窗口中实时显示调整后的图像以及其直方图。...

#include "opencv2/core/utility.hpp" // 包含OpenCV核心工具库的头文件 #include "opencv2/imgproc.hpp" // 包含OpenCV图像处理的头文件 #include "opencv2/imgcodecs.hpp" // 包含OpenCV图像编码解码的头文件 #include "opencv2/highgui…

3.1_2 内存管理的概念

3.1_2 内存管理的概念 重要考点

不使用 Docker 构建 Triton 服务器并在 Google Colab 平台上部署 HuggingFace 模型

Build Triton server without docker and deploy HuggingFace models on Google Colab platform EnvironmentBuilding Triton serverDeploying HuggingFace models客户端推荐阅读参考 Environment 根据Triton 环境对应表 &#xff0c;Colab 环境缺少 tensorrt-8.6.1&#xff0…

matlab读/写文本数据(矩阵格式)

1、背景介绍 文本格式的点云数据是一种常见的形式,其形式一般如下:x y z。后面可能带有标签、颜色等信息。在使用matlab进行数据处理时,常用的2个操作:读取与写入。有时,点云之间用逗号‘,’进行间隔。 2、数据读取 对于上述两种形式,均可使用load函数进行读取,如下:…

Kali系统的常用安装后开机配置(都是实用的配置)

目录 一.查看当前操作系统的所有版本信息 二.开启root并修改密码 二.启动 Apache 服务&#xff08;用不到可忽略&#xff09; 三.开启Secure Shell&#xff08;ssh&#xff09;服务&#xff0c;才可以使用远程工具&#xff08;xshell&#xff0c;finalshell&#xff09;连接…

(虚拟DOM)前端八股文修炼Day10

一 虚拟 DOM 是什么 虚拟 DOM (Virtual DOM) 本质上是真实 DOM 的一个轻量级的 JavaScript 表示形式。它是一个在内存中的抽象&#xff0c;用于描述真实 DOM 的结构和内容。虚拟 DOM 提供了一种机制&#xff0c;允许开发者通过操作 JavaScript 对象来间接更新页面&#xff0c;…