OpenGauss数据库-G.视图的使用

第1关:创建视图

任务描述

本关任务:创建一个视图。

--创建视图stu_sco_view。该视图包含学生姓名,所选课程和成绩,并按照dept、学生姓名(name)升序排序。
--Begin
CREATE VIEW stu_sco_view AS
SELECT 
    s.name AS name, 
    c.name AS course, 
    sc.score AS score
FROM 
    student s
JOIN 
    sel_course sc ON s.num = sc.studentid
JOIN 
    course c ON sc.courseid = c.id
ORDER BY 
    s.dept ASC, s.name ASC;

--End

第2关:管理视图

任务描述

本关任务:修改视图。

 --修改视图stu_sco_view。使该视图只包含dept=‘cs’的学生的姓名,所选课程和成绩,,并按照name升序排序。(使用create or replace view... 命令)
 --begin
 CREATE OR REPLACE VIEW stu_sco_view AS
SELECT 
    s.name AS name, 
    c.name AS course, 
    sc.score AS score
FROM 
    student s
JOIN 
    sel_course sc ON s.num = sc.studentid
JOIN 
    course c ON sc.courseid = c.id
WHERE 
    s.dept = 'cs'  -- 添加部门过滤条件
ORDER BY 
    s.dept ASC, s.name ASC;

 --end
  
 --创建总分超过250分的同学的视图stu_good_view,显示其姓名、学院、总成绩。
 --begin
CREATE VIEW stu_good_view AS
SELECT 
    s.num AS id,           -- 假设学生表中num为学生ID
    s.name AS name, 
    s.dept AS dept, 
    SUM(sc.score) AS total
FROM 
    student s
JOIN 
    sel_course sc ON s.num = sc.studentid  -- 通过学生ID关联选课表
GROUP BY 
    s.num, s.name, s.dept  -- 分组字段需包含所有非聚合列
HAVING 
    SUM(sc.score) > 250;    -- 过滤总分超过250分的学生

 --end

第3关:删除视图

任务描述

本关任务:删除视图。

 --删除视图stu_sco_view。
 --begin
 DROP VIEW IF EXISTS stu_sco_view;
 --end
 --删除视图stu_good_view。
  --begin
 DROP VIEW IF EXISTS stu_good_view;
 --end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JzSt_Han

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值