四 视图

news2024/9/22 5:41:05

1、实验目的

理解SQL成熟设计基本规范,能够熟练使用SQL语句来创建需要的视图,定义数据库外模式,并能使用所创建的视图实现数据管理。

2、实验内容及要求

使用SQL对数据库进行各类查询数据操纵操作,掌握单行数据插入、多行数据插入,理解空值的意义及处理方式;掌握数据的修改,包括单行和多行数据修改,单列修改和多列数据修改;

针对给定的数据库模式以及相应的应用需求,创建视图和带WITH CHECK OPTION的视图,并验证视图WICH CHECK OPTION选项的有效性。

3、实验步骤

create table Student (

Sno char(7) primary key,

Sname char(10) not null,

Ssex char(2),

Sage tinyint,

Sdept char(20)

)

create table Course(

Cno char(6) not null,

Cname char(20) not null,

Credit tinyint,

Semester tinyint,

primary key(Cno)

)

create table SC(

Sno char(7) not null,

Cno char(6) not null,

Grade smallint,

primary key(Sno,Cno),

foreign key(Sno) references Student(Sno),

foreign key(Cno) references Course(Cno)

)

 

(1)利用Student、Course和SC表,写出创建满足下列要求的视图的SQL语句。

1)建立学生的学号、姓名、所在系、课程号、课程名、课程学分的视图。

CREATE VIEW v1 AS SELECT Student.Sno,Sname,Sdept,SC.Cno,Course.Cname,Course.Credit

FROM Student,SC,Course

WHERE Student.Sno=SC.Sno AND Course.Cno=SC.Cno

2)建立学生的学号、姓名、选修课程名和考试成绩的视图。

CREATE VIEW v2 AS SELECT Student.Sno,Sname,Cname,SC.Grade

from Student,SC,Course

where Student.Sno=SC.Sno and sc.Cno=Course.Cno;

3)建立统计每个学生的选课门数的视图,要求列出学生学号和选课门数。

create view v3 as select Sno '学号', COUNT(Cno) '选课门数' from SC group by Sno;

4)建立统计每个学生的修课总学分的视图,要求列出学生学号和总学分(说明:考试成绩大于等于60才可获得此门课程的学分)。

create view v4 as select SC.Sno, sum(Credit) '总学分' from SC,Course Where SC.Cno=Course.Cno and Grade >=60 group by Sno

(2)利用第(1)题建立的视图,完成如下查询:

1)查询考试成绩大于等于90分的学生的姓名、课程名和成绩。

select Sname,Cname,Grade from v2 where Grade >= 90;

2)查询选课门数超过3门的学生的学号和选课门数。

select 学号,选课门数 from v3 where 选课门数>3;

3)查询计算机系选课门数超过3门的学生的姓名和选课门数。

select Sname,选课门数 FROM Student,v3

WHERE v3.学号=Student.Sno AND Sdept='计算机系' AND 选课门数>3

4)查询修课总学分超过10分的学生的学号、姓名、所在系和修课总学分。

select Student.Sno,Sname,Sdept,总学分 from v4,Student where Student.Sno=v4.Sno and 总学分>10

5)查询年龄大于等于19岁的学生中,修课总学分超过10分的学生的姓名、年龄、所在系和修课总学分。

select Sname,Sage,Sdept,总学分 from v4,Student where Sage>=20 and Student.Sno=v4.Sno and v4.总学分>10;

4、实验小结

本次实验中,我学习了数据库中的视图。视图是一个虚拟表,它是由一个或多个基本表的行或列组合而成的,具有与基本表相同的数据结构。通过这次实验我理解了SQL成熟设计基本规范,能够熟练使用SQL语句来创建需要的视图,定义数据库外模式,并能使用所创建的视图实现数据管理。 使用SQL对数据库进行各类查询数据操纵操作,掌握单行数据插入、多行数据插入,理解空值的意义及处理方式;掌握数据的修改,包括单行和多行数据修改,单列修改和多列数据修改;针对给定的数据库模式以及相应的应用需求,创建视图和带WITH CHECK OPTION的视图,并验证视图WICH CHECK OPTION选项的有效性。在实验过程中,我们通过使用SQL语句创建了视图,并通过查询语句验证了视图的正确性。总的来说,视图是数据库中非常有用的工具,可以提高查询效率、加强数据安全性和保证数据独立性。

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

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

相关文章

设计模式的艺术P1基础—第1章 概述

刘伟,2020 概述:4部分,26章。 P1:基础(1-2章) P2:创建型设计模式(创建艺术,3-8章) P3:结构型设计模式(组合艺术,9-15章) P4:行为型设计模式&…

文件系统和日志

目录 一、inode号和black (一)inode号概述 (二)硬链接和软链接 (三)inode值 二、日志 (一)日志的分类 1.系统日志 2.用户日志 3.程序日志 (二)日志…

【SpringCloud Alibaba笔记】(4)Seata处理分布式事务

Seata 分布式事务问题 单机单库没这个问题,分布式之前从1: 1 -> 1:N ->N:N 分布式之后 单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用分别使用三个独立的数据源,业务操作需要调用三个服务来完成。 此时每个服务…

计算机毕业设计 基于javaweb的学生交流培养管理平台/系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

算法通关村番外篇-LeetCode热题100系列一

大家好我是苏麟 , 今天开始出这个LeetCode热题100系列 . LeetCode热题100 , 是LeetCode的热门题目也是面试比较爱考的 . 大纲 两数之和 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,…

Visual Studio 2022 AI Code 支持

1.先在 Log In | Codeium Free AI Code Completion & Chat 上注册一个用户 在Visual Stuido 中扩展中搜索 codeium 并安装 安装完成后登录即可。 注意国内可能存在网络问题无法使用这时建议使用代理进行登录。 地址如下: Sign Up | Codeium Free AI Code Co…

金蝶EAS pdfviewlocal.jsp接口存在任意文件读取漏洞 附POC软件

免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。 1. 金蝶EAS简介 微信公众号搜索:南风漏洞复现文库 该…

Python笔记04-数据容器列表、元组、字符串、集合、字典

文章目录 listtuple 元组str序列(切片)setdict集合通用功能 Python中的数据容器: 一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素 每一个元素,可以是任意类型的数据,如字符串、数字、布尔等…

Anaconda详细安装步骤图文教程

文章目录 前言一、什么是Anaconda?二、为什么安装Anaconda三、如何安装AnacondaAnaconda关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试…

WEB 3D技术 three.js 解决几何体移动后 包围盒还留在原地问题

我们最基础方式 创建的包围盒 然后 通过 position 改变物体的位置 例如 这里我们改它的x轴 会发现 我们几何体移动了 但是 包围盒确留在了原地 我们可以通过 updateMatrixWorld和applyMatrix4的世界坐标更新举证解决 简单说 Mesh出来的实例对象.updateMatrixWorld 两个参数…

【MATLAB第89期】基于MATLAB的差分自回归滑动平均模型ARIMA时间序列预测模型含预测未来

【MATLAB第89期】基于MATLAB的差分自回归滑动平均模型ARIMA时间序列预测模型含预测未来 往期文章 【MATLAB第82期】基于MATLAB的季节性差分自回归滑动平均模型SARIMA时间序列预测模型含预测未来 一、模型介绍 1、模型简介 差分自回归移动平均模型(Autoregressiv…

Rapberry Pi 4 安装VxWorks笔记

Rapberry Pi 4 安装VxWorks笔记 本文章发表与我的github page: Rapberry Pi 4 安装VxWorks笔记 | Hi, I am watershade. Welcome to my pages. 在github page会有更好体验和更多文章。 一、概述 ROS2推荐的操作系统是ubuntu,众所周知,linux并不是实时…

mysql之CRUD和常见函数和UNION 和 UNION ALL

mysql之CRUD和常见函数和UNION 和 UNION ALL 一.CRUD1.创建(Create) - 插入数据2.读取(Read) - 查询数据3.更新(Update) - 修改数据4.删除(Delete) - 删除数据 二.函数1.字符串函数&…

VMware安装与CentOS8安装与配置

VMware安装与CentOS8安装与配置 话不多说,咱们开始干,文末附资料哦~ 一、安装VMware 1、双击安装包 2、如提出什么重启,重启就是了 3、按照提示下一步 4、选择安装目录,下一步 5、取消勾选,下一步 安装完成后&…

基于SSM酒店后台管理系统【源码】【最详细运行文档】

基于SSM酒店后台管理系统【源码】【最详细运行文档】 功能简介技术描述运行准备♝项目运行访问项目 演示图✅源码获取 💡 「分享」 大家好,最近几年在酒店后台管理系统非常流行,无论是上课的项目或者是一些毕设都会以酒店后台管理系统举例说…

【mysql】—— 事务

目录 (一)前言 (二)事务的理解 1、为什么会出现事务 2、什么是事务? 3、事务的版本支持 4、事务提交方式 (三)事务常见操作方式 1、正常演示 - 证明事务的开始与回滚 2、非正常演示…

4.5 A TILED MATRIX MULTIPLICATION KERNEL

我们现在准备展示一个tiled矩阵乘法内核,该内核使用共享内存来减少对全局内存的流量。图中4.16显示的内核。实施图4.15.中所示的阶段。在图4.16中,第1行和第2行声明Mds和Nds为共享内存变量。回想一下,共享内存变量的范围是一个块。因此&#…

过滤器和拦截器

上篇文章我们学习了 Session 认证和 Token 认证,这篇我们来学习一下过滤器和拦截器,过滤器和拦截器在日常项目中经常会用到。 一、过滤器 1.1、理论概念 过滤器 Filter 是 JavaWeb 三大组件(Servlet、Filter、Listener)之一&am…

为什么我国的计算机教育那么差?

建议看看计算机科学速成课,一门很全面的计算机原理入门课程,短短10分钟可以把大学老师十几节课讲不清楚的东西讲清楚!整个系列一共41个视频,B站上有中文字幕版。 每个视频都是一个特定的主题,例如软件工程、人工智能、…

CnosDB容灾方案概述

本文主要介绍了跟容灾相关的关键技术以及技术整合后形成的几种具体方案,每种方案都在RTO、RPO、部署成本和维护成本等方面有自己的特点和区别,可以根据具体场景选择最合适的方案。 基本概念 RTO(Recovery Time Objective)&#x…