• PTA之SQL训练题


    目录

    10-24 创建视图计算学生平均绩点

    表结构:

    表样例

    输出样例:

    0-14 创建视图,包含拥有属性值个数大于1的商品信息

    表结构:

    表样例

    视图样例:


    10-24 创建视图计算学生平均绩点

    现有一个学生数据库,内包含学生表(Student)、课程表(Course)和选修表(SC)。

    通常在学生毕业前,教务工作人员需要统计每位学生的课程平均绩点以检查其是否达到毕业条件和授位条件。由于数据库中只有课程百分制成绩,因此需要先将课程成绩转换为课程绩点后再计算其平均绩点。课程成绩与绩点之间的转换规则如下:

    请设计一个视图V_average_point,计算学生平均绩点。

    提示:请使用CREATE VIEW语句作答,并请注意数据表名、列名大小写。

    表结构:

    学生表(Student)、课程表(Course)和选修表(SC)结构如下:

    1. CREATE TABLE `Student` (
    2. `Sno` varchar(20) NOT NULL,
    3. `Sname` varchar(10) DEFAULT NULL,
    4. `Ssex` varchar(2) DEFAULT NULL,
    5. `Sage` int(3) DEFAULT NULL,
    6. `Sdept` varchar(10) DEFAULT NULL,
    7. PRIMARY KEY (`Sno`)
    8. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    9. CREATE TABLE `Course` (
    10. `Cno` varchar(10) NOT NULL,
    11. `Cname` varchar(20) DEFAULT NULL,
    12. `Cpno` varchar(10) DEFAULT NULL,
    13. `Ccredit` int(3) DEFAULT NULL,
    14. PRIMARY KEY (`Cno`)
    15. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    16. CREATE TABLE `SC` (
    17. `Sno` varchar(20) NOT NULL,
    18. `Cno` varchar(10) NOT NULL,
    19. `Grade` int(3) DEFAULT NULL,
    20. PRIMARY KEY (`Sno`,`Cno`),
    21. KEY `Cno` (`Cno`),
    22. CONSTRAINT `sc_ibfk_1` FOREIGN KEY (`Sno`) REFERENCES `student` (`Sno`),
    23. CONSTRAINT `sc_ibfk_2` FOREIGN KEY (`Cno`) REFERENCES `course` (`Cno`)
    24. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    表样例

    Student表:

    Course表:

    SC表:

    输出样例:

    视图V_average_point输出:

     

    取消

    1. create view V_average_point
    2. as select Sdept,Sno,avg(Grade) as Average_point
    3. from
    4. (
    5. select a.Sdept,a.Sno,(case when Grade<60 then 0 else (Grade-50)/10 end) as Grade
    6. from Student as a
    7. right join SC as b on a.Sno = b.Sno
    8. ) as c
    9. group by Sno

    0-14 创建视图,包含拥有属性值个数大于1的商品信息

    本题目要求编写SQL语句,
    结合sh_goods表和sh_goods_attr_value表创建视图view_goods_2,包含拥有属性值的数量大于1个的商品对应的商品idname

    表结构:

    1. CREATE TABLE sh_goods (
    2. id INT PRIMARY KEY, --商品id
    3. category_id INT NOT NULL DEFAULT 0 , -- 商品分类id
    4. name VARCHAR(120) NOT NULL, --商品名称
    5. keyword VARCHAR(255) NOT NULL, -- 关键词编号
    6. content TEXT NOT NULL , --商品详情
    7. price DECIMAL(10, 2) NOT NULL DEFAULT 0 , --价格
    8. stock INT NOT NULL DEFAULT 0, -- 库存
    9. score DECIMAL(3, 2) NOT NULL DEFAULT 0 , -- 用户评分
    10. comment_count INT NOT NULL DEFAULT 0 -- 评论数量
    11. ) ;
    1. CREATE TABLE sh_goods_attr_value (
    2. id INT PRIMARY KEY ,-- 属性值id,
    3. goods_id INT NOT NULL DEFAULT 0 , --商品id
    4. attr_id INT NOT NULL DEFAULT 0 ,-- 属性id
    5. attr_value VARCHAR(80) NOT NULL --属性值
    6. );

    表样例

    sh_goods表:

    sh_goods_attr_value表:

    视图样例:

    1. create view view_goods_2
    2. as select
    3. id,name
    4. from sh_goods
    5. where id in(
    6. select goods_id
    7. from sh_goods_attr_value
    8. group by goods_id
    9. having count(*) > 1
    10. )

  • 相关阅读:
    OS | 【二 PV操作】强化阶段 —— 应用题
    HTML5 跨屏前端框架 Amaze UI
    Linux SSH命令实战教程,提升你的服务器管理基本功!
    SylixOS 版本与 RealEvo-IDE 版本对应关系说明
    RabbitMQ-网页使用消息队列
    mysql 默认时间写入时差问题
    这些调试API技巧你熟悉吗?
    三年经验前端vue面试记录
    【自学记录】深度学习入门——基于Python的理论与实现(第3章 神经网络)
    深入理解MySQL索引:从原理到最佳实践
  • 原文地址:https://blog.csdn.net/qq_62799214/article/details/127703507