当前位置: 首页 > news >正文

头歌实训之SQL视图的定义与操纵

🌟 各位看官好,我是maomi_9526

🌍 种一棵树最好是十年前,其次是现在!

🚀 今天来学习C语言的相关知识。

👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享给更多人哦

目录

1.创建行列子集视图

2.创建带聚合函数的视图

3.在视图上查询平均成绩

4.创建信息系学生的视图

5.修改信息系学生的视图

6.向信息系学生的视图中插入数据


1.创建行列子集视图

任务描述
本关任务:创建计算机系的学生信息的视图 student_cs。

相关知识
  行列子集视图是指视图的结果集来源于基本表,没有经过表达式计算。
#####创建视图

CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    VIEW view_name [(column_list)]
    AS select_statement
   [WITH [CASCADED | LOCAL] CHECK OPTION]

参数说明:

  • OR REPLACE:表示替换已有视图;
  • ALGORITHM:表示视图选择算法,默认算法是UNDEFINED(未定义的): MySQL 自动选择要使用的算法 ;merge合并;temptable临时表;
  • column_list:可选参数,指定视图中各个属性的名词,默认情况下与 select 语句中查询的属性相同;
  • select_statement:表示 select 语句;
  • [WITH [CASCADED | LOCAL] CHECK OPTION]:表示视图在更新时保证在视图的权限范围之内;cascade是默认值,表示更新视图的时候,要满足视图和表的相关条件;local表示更新视图的时候,要满足该视图定义的一个条件即可。

编程要求
根据提示,在右侧编辑器补充代码:

  • 创建计算机系的学生信息视图 student_cs。

测试说明
编写代码后,点击测评即可。


开始你的任务吧,祝你成功!

 use teachingdb;/****请在此编写代码,操作完毕之后点击评测******//**********Begin**********/create view  student_cs as select  * from student where sdept='计算机';/**********End**********/

2.创建带聚合函数的视图

任务描述
本关任务: 创建由学号和平均成绩两个字段组成的视图 v_grade_avg。

相关知识
创建带聚合函数的视图时,一定要给聚合函数列取别名。

编程要求
根据提示,在右侧编辑器补充代码, 创建由学号和平均成绩两个字段组成的视图 v_grade_avg。

测试说明
编写代码后,点击测评即可。
 


开始你的任务吧,祝你成功!

 use teachingdb;/****请在此编写代码,操作完毕之后点击评测******//**********Begin**********/create view v_grade_avg as select distinct(sno) 学号,avg(grade) 平均成绩 from score group by sno;/**********End**********/

3.在视图上查询平均成绩

任务描述
本关任务:在视图 v_grade_avg 上查询平均成绩大于90分的学生信息。

相关知识
为了完成本关任务,你需要掌握:视图的使用。

视图的使用
查询视图数据

对视图进行查询,这个是非常简单的(和使用SQL语句去查询数据表一样的语法)。虽然视图是虚拟表,但它依旧是一张表,可通过Select语句进行查询数据。

例:在视图 V_AVG_S_G 上,查询平均成绩为90分及以上的学生学号、姓名和成绩;

SELECT sno,sname,grade from V_AVG_S_G WHRER 平均成绩>=90;

编程要求
在视图 v_grade_avg 上查询平均成绩大于90分的学生信息,并将代码补充在右侧编辑器中。

测试说明
编写代码后,点击测评即可。


开始你的任务吧,祝你成功!

 use teachingdb;/****请在此编写代码,操作完毕之后点击评测******//**********Begin**********/
select 学号,平均成绩 from v_grade_avg where 平均成绩>=90;  /**********End**********/

4.创建信息系学生的视图

任务描述
本关任务:建立信息系学生的视图 v_information。

相关知识
为了完成本关任务,你需要掌握:如何创建视图。

创建视图
基本语法
可以使用 CREATE VIEW 语句来创建视图。若要求该视图在修改和插入数时要符合WHERE中的条件,创建时需加with check option选项。

编程要求
建立信息系学生的视图 v_information,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生,并将代码补充在右侧编辑器中。

测试说明
编写代码后,点击测评即可。 


开始你的任务吧,祝你成功!

 use TeachingDb;/****请在此编写代码,操作完毕之后点击评测******//**********Begin**********/create view v_information as select *from student where sdept='信息'with check option; /**********End**********/

5.修改信息系学生的视图

任务描述
本关任务:修改信息系学生的视图 v_information。

相关知识
为了完成本关任务,你需要掌握:如何修改视图。

修改视图
1.CREATE OR REPLACE VIEW 语句

语法结构:

CREATE OR REPLACE 
VIEW view_name [{column_list}]
AS SELECT_STATEMENT
WITH CHECK OPTION

释义:

CREATE OR REPLACE : 【创建或替换已创建的】视图
view_name : 视图名称;
column_list : 属性列;
SELECT_STATEMENT :SELECT语句;
WITH CHECK OPTION 表示视图在更新时保证在视图的权限范围内。

编程要求
修改信息系学生的视图 v_information,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生,并且只返回学号、姓名和专业三个字段的值,并将代码补充在右侧编辑器中。

测试说明
编写代码后,点击测评即可。


开始你的任务吧,祝你成功!

 use TeachingDb;/****请在此编写代码,操作完毕之后点击评测******//**********Begin**********/create or replace view v_information as select sno,sname,sdept from student where sdept='信息' with check option;/**********End**********/

6.向信息系学生的视图中插入数据

任务描述
本关任务:使用 INSERT 语句向视图 v_information 中插入一条数据。

相关知识
为了完成本关任务,你需要掌握:如何向视图添加数据。

视图添加数据
在视图上使用INSERT语句添加数据时,要符合以下规则:

  1. 使用INSERT语句向数据表中插入数据时,用户必须有插入数据的权利;
  2. 由于视图只引用表中的部分字段,所以通过视图插入数据时只能明确指定视图中引用的字段的取值。而那些表中并未引用的字段,必须知道在没有指定取值的情况下如何填充数据,因此视图中未引用的字段必须具备下列条件之一;
    1. 该字段允许空值;
    2. 该字段设有默认值;
    3. 该字段是标识字段,可根据标识种子和标识增量自动填充数据;
    4. 该字段的数据类型为 timestamp 或 uniqueidentifier。
  3.  视图中不能包含多个字段值的组合,或者包含使用统计函数的结果;
  4. 视图中不能包含 DISTINCT 或 GROUP BY子句;
  5. 如果视图中使用了 WITH CHECK OPTION,那么该子句将检查插入的数据是否符合视图定义中 SELECT 语句所设置的条件。如果插入的数据不符合该条件,SQL Server 会拒绝插入数据;
  6. 不能在一个语句中对多个基础表使用数据修改语句。因此,如果要向一个引用了多个数据表的视图添加数据时,必须使用多个 INSERT 语句进行添加。

编程要求
使用 INSERT 语句向视图 v_information 中插入一条数据('98001','王立红','信息','02'),并将代码补充在右侧编辑器补充代码中。

测试说明
编写代码后,点击测评即可。


开始你的任务吧,祝你成功!

 use TeachingDb;/****请在此编写代码,操作完毕之后点击评测******//**********Begin**********/insert into v_information(sno,sname,sdept,sclass) values('98001','王立红','信息','02');/**********End**********/

相关文章:

  • 聚类算法(K-means、DBSCAN)
  • 基于mybatis与PageHelper插件实现条件分页查询(3.19)
  • iOS中使用AWS上传zip文件到Minio上的oss平台上
  • 使用Matlab工具将RAW文件转化为TXT文件,用于FPGA仿真输入
  • 用Mac M4构建多架构Docker镜像指南
  • 若依框架免登陆、页面全屏显示、打开新标签页(看板大屏)
  • neo4j-community-3.5.5-unix.tar.gz安装
  • SpringBoot + Vue 实现云端图片上传与回显(基于OSS等云存储)
  • map和set封装
  • 开源身份和访问管理(IAM)解决方案:Keycloak
  • 信息收集之hack用的网络空间搜索引擎
  • 快速搭建 Cpolar 内网穿透(Mac 系统)
  • Spark-SQL连接Hive全攻略
  • 基础服务系列-Jupyter Notebook 支持JavaScript
  • 解决使用hc595驱动LED数码管亮度低的问题
  • MetaGPT智能体框架深度解析:记忆模块设计与应用实践
  • Versal Adaptive SoC AI Engine 知识分享6
  • 一图掌握 C++ 核心要点
  • 【阿里云大模型高级工程师ACP习题集】2.1 用大模型构建新人答疑机器人
  • 在CSDN的1095天(创作纪念日)
  • 江西省人大教育科学文化卫生委员会主任委员王水平被查
  • 美军一天内对也门发动50余次袭击,胡塞武装称再次击落美军无人机
  • 一周观展|上海,一系列特展大展渐次呈现
  • “站在亚洲实现整体振兴的新起点上”——习近平主席对越南、马来西亚、柬埔寨进行国事访问纪实
  • 全国首家由司法行政部门赋码登记的商事调解组织落户上海
  • 6万余采购商消博会上“扫货”,全球好物“购物车”满载而归