文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

数据库系统头歌实验二 SQL的多表查询

2023-10-27 05:55

关注

第一关:等值连接:求S表和J表城市相同的等值连接(列顺序还是按照S、J表)

工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。

供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成. S表如下图:

USE mydata;#请在此处添加实现代码########## Begin ##########SELECT S.*,J.*FROM S,JWHERE S.city=J.city;########## End ##########

 

第2关:查询供应情况,并显示供应商、零件和工程三者的名称

供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成. S表如下图:

零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成; P表如下图:

工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。 J表如下图:

供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件 给某工程项目的数量为QTY。 SPJ表如下图:

 

USE mydata;#请在此处添加实现代码########## Begin ##########SELECT SNAME,PNAME,JNAME,QTYFROM S,P,J,SPJWHERE SPJ.sno=S.sno AND SPJ.pno=P.pno AND SPJ.jno=J.jno;########## End ##########

 

第3关:找出上海厂商供应的所有零件号码(注意去重)

供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成. S表如下图:

供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件 给某工程项目的数量为QTY。 SPJ表如下图:

USE mydata;#请在此处添加实现代码########## Begin ##########SELECT DISTINCT PNO FROM S,SPJWHERE SPJ.sno=S.sno AND city='上海';########## End ##########

第4关:找出使用上海产的零件的工程名称,结果按工程名称降序排序。

供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成. S表如下图:

工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。 J表如下图:

供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件 给某工程项目的数量为QTY。 SPJ表如下图:

USE mydata;#请在此处添加实现代码########## Begin ##########SELECT DISTINCT JNAMEFROM S,SPJ,JWHERE SPJ.sno=S.sno AND J.jno=SPJ.jno AND S.city='上海';########## End ##########

第5关:找出没有使用天津产的零件的工程号码

供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成. S表如下图:

供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件 给某工程项目的数量为QTY。 SPJ表如下图:

USE mydata;#请在此处添加实现代码########## Begin ##########SELECT JNOFROM SPJWHERE JNO NOT IN(    SELECT JNO    FROM SPJ    WHERE SNO IN(        SELECT SNO        FROM S        WHERE CITY='天津'    ));########## End ##########

第6关:求供应工程J1零件为红色的供应商号码SNO

零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成; P表如下图:

供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件 给某工程项目的数量为QTY。 SPJ表如下图:

USE mydata;#请在此处添加实现代码########## Begin ##########SELECT SNOFROM SPJWHERE JNO='J1' AND PNO IN(    SELECT PNO    FROM P    WHERE COLOR='红');########## End ##########

第7关:求没有使用天津供应商生产的红色零件的工程号 JNO

供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成. S表如下图:

零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成; P表如下图:

供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件 给某工程项目的数量为QTY。 SPJ表如下图:

USE mydata;#请在此处添加实现代码########## Begin ##########SELECT DISTINCT JNOFROM SPJWHERE JNO NOT IN(    SELECT JNO    FROM SPJ    WHERE PNO IN(        SELECT PNO        FROM P        WHERE COLOR='红') AND SNO IN(            SELECT SNO            FROM S            WHERE CITY='天津'        ));########## End ##########

第8关:查询每个选手的信息及其提交的解答信息,没做题的选手不显示 (查询结果仅显示前50条,即在查询语句末尾加LIMIT 50)

users为选手信息表;

solution为选手提交的题目解答

USE `sqlexp-sztuoj`;#请在此处添加实现代码,在语句末尾加LIMIT 50,即可显示查询结果前50条。########## Begin ##########SELECT*FROM users,solutionWHERE users.user_id=solution.user_id LIMIT 50;########## End ##########

第9关:查询做了1001题且耗时大于500(time)的选手信息

users为选手信息表;

solution为选手提交的题目解答

USE `sqlexp-sztuoj`;#请在此处添加实现代码########## Begin ##########SELECT DISTINCT users.user_id,reg_time,nameFROM users,solutionWHERE users.user_id=solution.user_id AND solution.problem_id=1001 AND solution.time>500;########## End ##########

第10关:查询所有选手信息及其提交的解答信息,没做题的选手也要显示 (查询结果仅显示前50条,即在查询语句末尾加LIMIT 50)

users为选手信息表;

solution为选手提交的题目解答

USE `sqlexp-sztuoj`;#请在此处添加实现代码,在语句末尾加LIMIT 50,即可显示查询结果前50条。########## Begin ##########SELECT *FROM usersLEFT JOIN solutionON users.user_id=solution.user_id LIMIT 50;########## End ##########

第11关:查询每个选手的信息、交的题目、和提交的结果,没做题的选手不显示 (查询结果仅显示前50条,即在查询语句末尾加LIMIT 50)

users为选手信息表;

solution为选手提交的题目解答

USE `sqlexp-sztuoj`;#请在此处添加实现代码,在语句末尾加LIMIT 50,即可显示查询结果前50条。########## Begin ##########SELECT  users.user_id,reg_time,name,problem_id,resultFROM users,solutionWHERE users.user_id=solution.user_id LIMIT 50;########## End ##########

第12关:用嵌套查询查找和problem_id为 1009 的题目属于同一个比赛的题目信息,结果按problem_id升序排序。

problem为题目表;

contest_problem为比赛-题目关系;

USE `sqlexp-sztuoj`;#请在此处添加实现代码########## Begin ##########SELECT problem.*FROM problemWHERE problem_id IN(    SELECT problem_id    FROM contest_problem    WHERE contest_id IN(        SELECT contest_id        FROM contest_problem        WHERE problem_id=1009    )    ORDER BY problem_id ASC)########## End ##########

第13关:用连接查询查找和problem_id为 1009 的题目属于同一个比赛的题目信息,结果按problem_id升序排序。

problem为题目表;

contest_problem为比赛-题目关系;

USE `sqlexp-sztuoj`;#请在此处添加实现代码########## Begin ##########SELECT problem.problem_id,title,description,hint,time_limit,memory_limitFROM problem,contest_problem A,contest_problem BWHERE A.problem_id=1009 AND A.contest_id=B.contest_id AND problem.problem_id=B.problem_idORDER BY B.problem_id ASC;########## End ##########

第14关:用 EXISTS 实现查询做了 1032 号题的选手信息

users为选手信息表;

solution为选手提交的题目解答

USE `sqlexp-sztuoj`;#请在此处添加实现代码########## Begin ##########SELECT user_id,reg_time,nameFROM usersWHERE EXISTS(    SELECT *    FROM solution    WHERE users.user_id=solution.user_id AND problem_id=1032);########## End ##########

第15关:用 EXISTS 实现查询没做 1032 号题的选手信息

users为选手信息表;

solution为选手提交的题目解答

USE `sqlexp-sztuoj`;#请在此处添加实现代码########## Begin ##########SELECT user_id,reg_time,nameFROM usersWHERE NOT EXISTS(    SELECT *    FROM solution    WHERE users.user_id=solution.user_id AND problem_id=1032);########## End ##########

第16关:用 EXISTS 实现查询和problem_id为 1009 的题目属于同一个比赛的题目信息,结果按problem_id升序排序。

problem为题目表;

contest_problem为比赛-题目关系;

USE `sqlexp-sztuoj`;#请在此处添加实现代码########## Begin ##########SELECT problem.*FROM problemWHERE problem_id IN(    SELECT problem_id    FROM contest_problem    WHERE contest_id IN(        SELECT contest_id        FROM contest_problem        WHERE problem_id=1009    )    ORDER BY problem_id ASC)########## End ##########

第17关:用 EXISTS 实现查询参与过所有比赛的选手信息

users为选手信息表;

contest为比赛信息表;

solution为选手提交的题目解答

USE `sqlexp-sztuoj`;#请在此处添加实现代码########## Begin ##########SELECT users.user_id,reg_time,nameFROM usersWHERE NO EXISTS(    SELECT *    FROM contest    WHERE NO EXISTS(        SELECT *        FROM solution        WHERE user_id=users.user_id AND contest_id=contest.contest_id    )  );########## End ##########

来源地址:https://blog.csdn.net/m0_53227534/article/details/128419664

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯