四 视图

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.mzph.cn/news/606854.shtml

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

相关文章

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

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

【设计模式】 模板方法模式

前言 1. 单例模式(Singleton Pattern):保证一个类只有一个实例,并提供一个全局的访问点。 2. 工厂模式(Factory Pattern):定义一个创建对象的接口,但由子类决定要实例化的类是哪一…

2_工厂设计_工厂方法和抽象工厂

工厂设计模式-工厂方法 1.概念 工厂方法模式(Fatory Method Pattern ) 是指定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。 在工厂方法模式中用户只需要关心所需产品对应的工厂,…

css——box-shadow阴影效果

/* box-shadow:内外阴影(inset:内阴影,水平阴影,垂直阴影,阴影模糊距离,阴影大小,阴影颜色) */box-shadow: 0 0 50px #ccc; 引用来源:box-shadow详解_box-shadow属性详解-CSDN博客

AUTOSAR开发文档

目录 目录 状态机电源管理开发... I 文档... I 1. 综述... 1 2. 系统硬件架构图... 1 3. 状态机设计方案... 2 4. 电源管理方案... 4 综述 本文档主要描述了MCU芯片TC297的AUTOSAR方案。MCU的基础软件由AUTOSAR软件实现&#xff0…

嵌入式——循环队列

循环队列 (Circular Queue) 是一种数据结构(或称环形队列、圆形队列)。它类似于普通队列,但是在循环队列中,当队列尾部到达数组的末尾时,它会从数组的开头重新开始。这种数据结构通常用于需要固定大小的队列,例如计算机内存中的缓冲区。循环队列可以通过数组或链表实现,…

微信小程序实战-01翻页时钟-1

文章目录 前言需求分析功能设计界面设计界面结构设计界面样式设计 逻辑设计 单页功能实现运行结果 前言 我经常在手机上用的一款app有一个功能是翻页时钟,基于之前学习的小程序相关的基础内容,我打算在微信小程序中也设计一个翻页时钟功能,J…

大模型实战营Day2 作业

基础作业 1 使用 InternLM-Chat-7B 模型生成 300 字的小故事 2 熟悉 hugging face 下载功能,使用 huggingface_hub python 包,下载 InternLM-20B 的 config.json 文件到本地 进阶作业 1 完成浦语灵笔的图文理解及创作部署 2 完成 Lagent 工具调用 Demo…

大数据计算基础真题回忆

转载学长20 21的真题 转载链接 注:每年的课件可能会有更改,内容不一样,所以读者复习的时候以所在年份的课件为准 2020 ​ 2021 笔者2023秋 2023 都是大题,没有选择题。 改进的近似算法中,结合具体的例子说明&am…

【Linux】Linux系统编程——Linux命令解析器

【Linux】Linux系统编程——Linux命令解析器 什么是Linux 命令解析器? Linux 命令解析器,通常被称为 shell,是 Linux 操作系统中的一个关键组件。它充当用户和系统内核之间的接口,允许用户通过输入命令来控制和管理操作系统和应…

计算机丢失mfc140.dll怎么办?解决mfc140.dll缺失的3种方法分享

计算机丢失mfc140.dll怎么办?在使用微软办公软件的时候,可能会弹出一个错误提示框说“找不到mfc140.dll,无法继续执行代码”。为了不影响工作效率,我们可能需要亲自动手尝试修复这一问题。以下是一些mfc140.dll缺失的3种方法相关介…

LED显示屏控制卡常见问题详解

LED显示屏控制卡是LED图文显示屏的关键组件,主要负责接收来自计算机串行口的图像显示信息,将其放入帧存储器,并按照分区驱动方式生成LED显示屏所需的串行显示数据和扫描控制时序。带你5分钟了解LED显示屏控制系统。本文将针对LED显示屏控制卡…

2024最新外贸建站:ChemiCloud主机购买使用及自建外贸独立站教程

随着电商平台竞争的加剧,许多外贸从业者意识到减少对平台依赖的重要性,并选择搭建自己的外贸独立站来获得更多的控制权和灵活性。即使是没有建站基础的新手,也可以通过学习建站来实现这一目标。下面是一个适用于新手的外贸建站教程&#xff0…

Spring AOP概念

什么是 AOP ? AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP 是 OOP 的延续,是软件开发中的一个热点,也是 Spring …

请问下大家PMP证书值得考嘛?

做项目的去考,项目经理、产品经理这些,或者有往项目管理领域发展的去考。其他行业有空可以学习下 不一定要考证了。 PMP证书更多的是“敲门砖”作用,大部分公司招聘的门槛都要去了这个证书。 当然现在PMP管理模式也很热门,各大企…

数字IC芯片设计实现 | 时序Timing Signoff check_timing检查解析

今天分享在数字IC芯片设计实现做timing signoff阶段必须要看的report。check_timing的报告必须是clean的,否则芯片回来大概率是废片!!!实际上一堆公司的芯片败在不看这个report了。 我们知道primetime(简称PT)做时序检查是基于我…

深入PostgreSQL:高级函数用法探索

写在开头 在 PostgreSQL 中,函数是数据库开发和管理中强大而灵活的工具。通过深入了解高级函数用法,我们可以更有效地利用 PostgreSQL 的功能。在本文中,我们将探讨一些看起来比较高级的 PostgreSQL 函数用法,包括窗口函数、自定义聚合函数、JSONB 类型函数、全文搜索、PL…

YACS(上海计算机学会竞赛平台)2022年12月月赛——星号三角阵(二)

题目描述 给定一个整数 n,输出一个 n 行 n 列的星号三角阵,直角位于图形的左上角。例如当 n4 时,输出 **** *** ** *输入格式 单个整数表示 n。 输出格式 共 n 行:表示一个星号三角阵。 数据范围 1≤n≤100 样例数据 输入…

数据库参数 PGA_AGGREGATE_LIMIT 限制进程大小

在自动化 PGA 内存管理模式下,Oracle 数据库通过动态控制分配到工作区的 PGA 内存量来尝试遵从 PGA_AGGREGATE_TARGET 值。但是,有时因为以下原因,PGA 内存使用量可能会超过 PGA_AGGREGATE_TARGET 设置: PGA_AGGREGATE_TARGET 设置…

localhost和127.0.0.1的区别是什么

今天在网上逛的时候看到一个问题,没想到大家讨论的很热烈,就是标题中这个: localhost和127.0.0.1的区别是什么? 前端同学本地调试的时候,应该没少和localhost打交道吧,只需要执行 npm run 就能在浏览器中打…