2301_80243658 2023-11-30 16:43 采纳率: 0%
浏览 19

只会做三道,help

  1. 简答题
    新建一个数据库,导入下面sql文件中的四张表数据,连接查询
    (1)选择学生管理xsgl数据库。
    (2)用内连接查询出每个同学的学号、姓名、课程代码及综合成绩。
    (3)对表chengji与kecheng分别进行左连接和右连接,要求显示kcdm,kcmz,xh,zhcj四个字段的值。
    (4)四表连接查询:要求查询出每个学生的学号、姓名、专业名称、选修的课程名称以及综合成绩,按学号升序排列。
    (5)自连接查询:查询出就读了专业代码为01(护理)和04(计算机应用)两个专业的学生的学号、姓名、省份与专业代码。
    子查询
    (1)选择学生管理xsgl数据库。
    (2)在xuesheng和zhuanye两表中,利用子查询,查询出“护理”专业的所有女学生。
    (3)选修了C02号课程的学生有哪些。
    (4)利用子查询,查询出计算机应用专业的学生信息。
    (5)利用子查询,查询出考试成绩最好的同学的各科成绩。
    (6)利用子查询,查询出实验成绩非最低的学生成绩信息。
    (7)从湖南籍的学生中找出专业代码是01的学生。(8)合并查询xuesheng表、kecheng表的所有信息。
    二管理视图
    (1)选择学生管理xsgl数据库。
    (2)以各学院辅导员的身份,定制一个方便其管理学生信息的视图view_fdy,能够以院系或专业为关键词查询本专业或院系学生的基本信息,包括学号、姓名、性别、出生日期、籍贯、联系方式、专业名称、所属院系。
    (3)验证一下在当前数据库下是否多了一个视图view_fdy。
    (4)以生态宜居学院辅导员的身份,查询本学院的所有学生的基本信息。
    (5)在view_fdy视图的基础上,再创建一个视图view_fdy2,方便各专业的辅导员进行该专业学生信息的统计查询,统计出该专业的学生总人数。
    (6)以医学院护理专业的辅导员身份,查询出护理专业学生的总人数。
    三应用视图
    (1)选择学生管理xsgl数据库。
    (2)以任课老师的身份,创建一个视图view_teacher,方便其查询和输入以及更新某学生的成绩。
    (3)某任课老师查询他教的课程代码为“C01”的所有学生的学号、课程代码、平时成绩、实验成绩、考试成绩以及综合成绩。
    (4)某任课老师为其所教的课程代码为“H01”的课程添加一条记录,该同学的学号为“017”,各项原始成绩分别为94、88、86。
    (5)分别验证刚插入的记录是否存在视图view_teacher和基表chengji中。
    (6)通过视图view_teacher更新学号为“017”同学的综合成绩,其计算公式为:平时成绩和实验成绩各占30%,考试成绩占40%。
    (7)重复第5步,验证成绩是否更新。
    (8)删除视图view_t
  • img


    eacher,并验证是否真正删除。

    img

  • 写回答

1条回答 默认 最新

  • 柒-寒 2023-12-04 16:15
    关注

    你的图看不清,对照着凑合改吧
    -- 连接查询
    -- (2) 内连接查询出每个同学的学号、姓名、课程代码及综合成绩
    SELECT xh, xm, kcdm, zhcj
    FROM chengji
    INNER JOIN xuesheng ON chengji.xh = xuesheng.xh;

    -- (3) 左连接和右连接
    -- 左连接
    SELECT kecheng.kcdm, kecheng.kcmz, chengji.xh, chengji.zhcj
    FROM chengji
    LEFT JOIN kecheng ON chengji.kcdm = kecheng.kcdm;

    -- 右连接
    SELECT kecheng.kcdm, kecheng.kcmz, chengji.xh, chengji.zhcj
    FROM kecheng
    RIGHT JOIN chengji ON kecheng.kcdm = chengji.kcdm;

    -- (4) 四表连接查询
    SELECT xuesheng.xh, xuesheng.xm, zhuanye.zymc, kecheng.kcmz, chengji.zhcj
    FROM xuesheng
    INNER JOIN chengji ON xuesheng.xh = chengji.xh
    INNER JOIN kecheng ON chengji.kcdm = kecheng.kcdm
    INNER JOIN zhuanye ON xuesheng.zydm = zhuanye.zydm
    ORDER BY xuesheng.xh;

    -- (5) 自连接查询
    SELECT xh, xm, sf, zydm
    FROM xuesheng
    WHERE zydm IN ('01', '04');

    -- 子查询
    -- (2) 利用子查询,查询出“护理”专业的所有女学生
    SELECT xh, xm
    FROM xuesheng
    WHERE zydm = (SELECT zydm FROM zhuanye WHERE zymc = '护理') AND xb = '女';

    -- (3) 选修了C02号课程的学生有哪些
    SELECT xh, xm
    FROM xuesheng
    WHERE xh IN (SELECT xh FROM chengji WHERE kcdm = 'C02');

    -- (4) 利用子查询,查询出计算机应用专业的学生信息
    SELECT *
    FROM xuesheng
    WHERE zydm = (SELECT zydm FROM zhuanye WHERE zymc = '计算机应用');

    -- (8) 合并查询xuesheng表、kecheng表的所有信息
    SELECT * FROM xuesheng
    UNION ALL
    SELECT * FROM kecheng;

    -- 管理视图
    -- (2) 创建视图view_fdy
    CREATE VIEW view_fdy AS
    SELECT *
    FROM xuesheng
    WHERE ... ; -- 根据需要添加筛选条件

    -- (3) 验证视图是否创建成功
    SHOW FULL TABLES IN xsgl WHERE TABLE_TYPE LIKE 'VIEW';

    -- (4) 查询生态宜居学院的学生信息
    SELECT *
    FROM view_fdy
    WHERE ... ; -- 添加筛选条件

    -- (5) 创建视图view_fdy2
    CREATE VIEW view_fdy2 AS
    SELECT zydm, COUNT(*) AS student_count
    FROM xuesheng
    GROUP BY zydm;

    -- (6) 查询护理专业学生总人数
    SELECT student_count
    FROM view_fdy2
    WHERE zydm = '01';

    -- 应用视图
    -- (2) 创建视图view_teacher
    CREATE VIEW view_teacher AS
    SELECT ...
    FROM ...
    WHERE ... ; -- 根据需要添加筛选条件

    -- (3) 查询课程代码为C01的学生成绩
    SELECT *
    FROM view_teacher
    WHERE kcdm = 'C01';

    -- (4) 插入一条记录
    INSERT INTO chengji (xh, kcdm, ps, sy, ks)
    VALUES ('017', 'H01', 94, 88, 86);

    -- (5) 验证记录是否存在
    SELECT * FROM view_teacher WHERE xh = '017';
    SELECT * FROM chengji WHERE xh = '017';

    -- (6) 更新学号为017的学生成绩
    UPDATE chengji
    SET zhcj = (ps * 0.3 + sy * 0.3 + ks * 0.4)
    WHERE xh = '017';

    -- (7) 验证成绩是否更新
    SELECT * FROM view_teacher WHERE xh = '017';

    -- (8) 删除视图view_teacher
    DROP VIEW view_teacher;

    评论 编辑记录

报告相同问题?

问题事件

  • 提问应符合社区要求 11月30日
  • 创建了问题 11月30日