数据库(4)--视图的定义和使用

简介: 数据库(4)--视图的定义和使用

一、学习目的

加深对视图的理解,熟练视图的定义、查看、修改等操作

二、实验环境

Windows 11

Sql server2019


三、实验内容


学生(学号,年龄,性别,系名)

课程(课号,课名,学分,学时)

选课(学号,课号,成绩)

(1)根据上面基本表的信息定义视图显示每门课的课名、选课人数、平均成绩

(2)观察基本表数据变化时,视图中数据的变化。

(3)利用视图,查询平均成绩最高的学生。


四、SOL代码

(1)根据上面基本表的信息定义视图显示每门课的课名、选课人数、平均成绩

go
create view S_c(课名,选课人数,平均成绩)
as
select cname 课名,count(*) 选课人数,avg(grade) 平均成绩
from ce, xe where ce.cnum=xe.cnum
group by ce.cname
go
select * from S_c
go


bc15134db7c44b018645de35e6a9497c.png

(2)观察基本表数据变化时,视图中数据的变化

select * from S_c

(3)利用视图,查询平均成绩最高的学生

create view S_grade(学生姓名,平均成绩)
as
select stu.sname,avg(grade) as'平均成绩'
from stu,xe
where stu.sno= xe.sno
group by stu.sname
go
select *from S_grade
go
select 学生姓名 from S_grade
where 平均成绩=(select max(平均成绩) from S_grade)

五、结果分析


SQL语言用CREATE VIEW命令建立视图,其格式为:

CREATE VIEW <视图名> [(<列名> [,<列名>] …)]

AS<子查询>

[WITH CHECK OPTION] ;

其中,子查询可以是任意的SELECT语句,是否可以含有ORDER BY子句和DISTINCT短语,则取决于具体系统的实现;WITH CHECK OPTION表示对视图进行UPDATE、INSERT和DELETE操作时要保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)。


删除视图语句:DROP VIEW <视图名>[CASCADE];同时还有插入(INSERT),修改(UPDATE)数据。


六、小结


组成视图的属性列名或者全部省略或者全部指定,没有第三种选择。如果省略了视图的各介属性列名,则隐含该视图由子查询中SELECT子句目标列中的诸字段组成。但在下列三种情况下必须明确指定组成视图的所有列名:

(1)某个目标列不是单纯的属性名,而是聚集函数或列表达式:


(2)多表连接时选出了几个同名列作为视图的字段:


(3)需要在视图中为某个列启用新的更合适的名字。


目录
相关文章
|
5月前
|
SQL 数据库 数据库管理
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(一)模式、表、索引与视图
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(一)模式、表、索引与视图
142 11
|
2月前
|
存储 SQL 监控
ADBPG&Greenplum成本优化问题之ADB PG的数据库管控的定义如何解决
ADBPG&Greenplum成本优化问题之ADB PG的数据库管控的定义如何解决
33 2
|
20天前
|
存储 缓存 关系型数据库
MySQL 视图:数据库中的灵活利器
视图是数据库中的虚拟表,由一个或多个表的数据经筛选、聚合等操作生成。它不实际存储数据,而是动态从基础表中获取。视图可简化数据访问、增强安全性、提供数据独立性、实现可重用性并提高性能,是管理数据库数据的有效工具。
|
2月前
|
SQL 数据处理 数据库
|
2月前
|
Cloud Native 关系型数据库 分布式数据库
云原生数据库2.0问题之DBStack的定义如何解决
云原生数据库2.0问题之DBStack的定义如何解决
|
3月前
|
数据采集 分布式计算 大数据
MaxCompute产品使用合集之数据集成中进行数据抽取时,是否可以定义使用和源数据库一样的字符集进行抽取
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
3月前
|
存储 JSON 数据库
项目管理定义问题之什么是序列化大对象的值对象数据库形态
项目管理定义问题之什么是序列化大对象的值对象数据库形态
|
4月前
|
存储 SQL 关系型数据库
MySQL数据库进阶第四篇(视图/存储过程/触发器)
MySQL数据库进阶第四篇(视图/存储过程/触发器)
|
4月前
|
SQL 关系型数据库 MySQL
MySQL数据库练习——视图
MySQL数据库练习——视图
33 1
|
4月前
|
存储 安全 关系型数据库
下一篇
无影云桌面