当前位置:   article > 正文

数据库系统头歌实验一 SQL的DDL语言和单表查询_在users表中新增一个用户,user_id为2019100904学号,name为'2019-物联网

在users表中新增一个用户,user_id为2019100904学号,name为'2019-物联网-李明

第1关:创建供应商表S(SNO,SNAME,STATUS,CITY)

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

  1. USE mydata;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. CREATE TABLE S(
  5. SNO char(10),
  6. SNAME char(10),
  7. STATUS char(10),
  8. CITY char(10)
  9. );
  10. INSERT INTO S VALUES ('S1', '精益', '20', '天津');
  11. INSERT INTO S VALUES ('S2', '盛锡', '10', '北京');
  12. INSERT INTO S VALUES ('S3', '东方红', '30', '北京');
  13. INSERT INTO S VALUES ('S4', '丰泰盛', '20', '天津');
  14. INSERT INTO S VALUES ('S5', '为民', '30', '上海');
  15. ########## End ##########
  16. #以下代码禁止删除
  17. SELECT * FROM S;

第2关:将P表中的所有红色零件的重量增加6。

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

P表如下:

  1. USE mydata;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. UPDATE P
  5. SET WEIGHT=WEIGHT+6
  6. WHERE COLOR='红';
  7. ########## End ##########
  8. #以下代码禁止删除
  9. SELECT * FROM P;

第3关:把P表中全部红色零件的颜色改成蓝色

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

  1. USE mydata;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. UPDATE P
  5. SET COLOR='蓝'
  6. WHERE COLOR='红';
  7. ########## End ##########
  8. #以下代码禁止删除
  9. SELECT * FROM P;

第4关:将SPJ表中由S5供给J4的零件P6改为由S3供应

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

SPJ表如下:

  1. USE mydata;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. UPDATE SPJ
  5. SET SNO='S3'
  6. WHERE SNO='S5'AND PNO='P6'AND JNO='J4';
  7. ########## End ##########
  8. #以下代码禁止删除
  9. SELECT * FROM SPJ;

第5关:将SPJ表中所有天津供应商的QTY属性值减少11(用子查询方式)

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

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

S表:

SPJ表: 

  1. USE mydata;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. UPDATE SPJ
  5. SET QTY=QTY-11
  6. WHERE SNO IN
  7. (SELECT SNO
  8. FROM S
  9. WHERE CITY='天津');
  10. ########## End ##########
  11. #以下代码禁止删除
  12. SELECT * FROM SPJ;

第6关:删除J表中的所有工程项目在天津的记录

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

  1. USE mydata;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. DELETE
  5. FROM J
  6. WHERE CITY='天津';
  7. ########## End ##########
  8. #以下代码禁止删除
  9. SELECT * FROM J;

第7关:从SPJ表中删除供应商号是S2的记录

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

  1. USE mydata;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. DELETE
  5. FROM SPJ
  6. WHERE SNO='S2';
  7. ########## End ##########
  8. #以下代码禁止删除
  9. SELECT * FROM SPJ;

第8关:从SPJ表中删除零件名称为螺丝刀的记录(用子查询方式)

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

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

  1. USE mydata;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. DELETE
  5. FROM SPJ
  6. WHERE PNO IN
  7. (SELECT PNO
  8. FROM P
  9. WHERE PNAME='螺丝刀');
  10. ########## End ##########
  11. #以下代码禁止删除
  12. SELECT * FROM SPJ;

第9关:删除P表中所有的记录

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

  1. USE mydata;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. DELETE
  5. FROM P;
  6. ########## End ##########
  7. #以下代码禁止删除
  8. SELECT * FROM P;

第10关:请将(S2,J6,P4,200)插入供应情况关系表SPJ

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

  1. USE mydata;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. INSERT
  5. INTO SPJ
  6. VALUES('S2','P4','J6','200');
  7. ########## End ##########
  8. #以下代码禁止删除
  9. SELECT * FROM SPJ;

第11关:求供应工程J1零件的供应商号码SNO(注意去重复)

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

  1. USE mydata;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT DISTINCT SNO
  5. FROM SPJ
  6. WHERE JNO='J1';
  7. ########## End ##########

第12关:求供应工程J1零件P1的供应商号码SNO

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

  1. USE mydata;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT DISTINCT SNO
  5. FROM SPJ
  6. WHERE JNO='J1' AND PNO='P1';
  7. ########## End ##########

第13关:找出所有供应商的姓名和所在城市

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

  1. USE mydata;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT DISTINCT SNAME,CITY
  5. FROM S;
  6. ########## End ##########

第14关:找出所有零件的名称、颜色、重量

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

  1. USE mydata;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT DISTINCT PNAME,COLOR,WEIGHT
  5. FROM P;
  6. ########## End ##########

第15关:找出使用供应商S1所供应零件的工程号码

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

  1. USE mydata;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT DISTINCT JNO
  5. FROM SPJ
  6. WHERE SNO='S1';
  7. ########## End ##########

第16关:在users表中新增一个用户,user_id为2019100904学号,name为'2019-物联网-李明'

users为选手信息表;

  1. USE `sqlexp-sztuoj`;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. INSERT
  5. INTO users(user_id,name)
  6. VALUES('2019100904','2019-物联网-李明');
  7. ########## End ##########
  8. #以下代码禁止删除
  9. SELECT * FROM users WHERE users.user_id = '2019100904';

第17关:在users表中更新用户 user_id为robot_2 的信息,name设为 '机器人二号'

  1. USE `sqlexp-sztuoj`;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. UPDATE users
  5. SET name='机器人二号'
  6. WHERE user_id='robot_2';
  7. ########## End ##########
  8. #以下代码禁止删除
  9. SELECT * FROM users WHERE users.user_id = 'robot_2';

第18关:将solution表中所有 problem_id 为1003 题目的解答结果(result)设为 6

  1. USE `sqlexp-sztuoj`;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. UPDATE solution
  5. SET result=6
  6. WHERE problem_id='1003';
  7. ########## End ##########
  8. #以下代码禁止删除
  9. SELECT * FROM solution WHERE solution.problem_id = 1003;

第19关:删除solution表中比赛contest_id 为1001的全部解答

  1. USE `sqlexp-sztuoj`;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. DELETE
  5. FROM solution
  6. WHERE contest_id='1001';
  7. ########## End ##########
  8. #以下代码禁止删除
  9. SELECT * FROM solution WHERE solution.contest_id = 1001;

第20关:查询所有 contest 的 title 和 end_time。

contest为比赛信息表;

  1. USE `sqlexp-sztuoj`;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT title,end_time
  5. FROM contest;
  6. ########## End ##########

第21关:查询哪些选手的 user_id 提交过 solution,要求结果中 user_id 不重复

  1. USE `sqlexp-sztuoj`;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT DISTINCT user_id
  5. FROM solution;
  6. ########## End ##########

第22关:查询 end_time 晚于 '2020-11-21 17:30:00' 的 contest_id

contest为比赛信息表;

  1. USE `sqlexp-sztuoj`;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT contest_id
  5. FROM contest
  6. WHERE end_time>'2020-11-21 17:30:00';
  7. ########## End ##########

第23关:查询 problem_id 在 1005~1009 之间的 problem 的 title

problem为题目表;

  1. USE `sqlexp-sztuoj`;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT title
  5. FROM problem
  6. WHERE problem_id BETWEEN 1005 AND 1009;
  7. ########## End ##########

第24关:查询 language 不在 0、1、3 中的 solution 的 code_length

solution:选手提交的题目解答

  1. USE `sqlexp-sztuoj`;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT code_length
  5. FROM solution
  6. WHERE language NOT IN('0','1','3');
  7. ########## End ##########

第25关:查询2018级选手信息(user_id 为学号的用户前4位为年级)

  1. USE `sqlexp-sztuoj`;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT*
  5. FROM users
  6. WHERE user_id LIKE '2018%';
  7. ########## End ##########

第26关:查询'生医'专业选手信息(name 中有 '生医' 的选手)

  1. USE `sqlexp-sztuoj`;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT*
  5. FROM users
  6. WHERE name LIKE '___生医%';
  7. ########## End ##########

第27关:查询不属于任何比赛的solution的 solution_id 和 in_date(contest_id 为 NULL)

  1. USE `sqlexp-sztuoj`;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT solution_id,in_date
  5. FROM solution
  6. WHERE contest_id IS NULL;
  7. ########## End ##########

第28关:查询 result 为 6 且 problem_id大于1010 的 solution_id与language

  1. USE `sqlexp-sztuoj`;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT solution_id,language
  5. FROM solution
  6. WHERE result=6 AND problem_id>1010;
  7. ########## End ##########

第29关:查询提交过solution的选手人数

  1. USE `sqlexp-sztuoj`;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT COUNT(DISTINCT solution.user_id)
  5. FROM solution;
  6. ########## End ##########

第30关:查询耗内存(memory)最多的solution的内存消耗大小与 solution_id

  1. USE `sqlexp-sztuoj`;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT memory,solution_id
  5. FROM solution
  6. WHERE memory IN(
  7. SELECT MAX(memory)
  8. FROM solution
  9. );
  10. ########## End ##########

第31关:查询每个题目的提交数

  1. USE `sqlexp-sztuoj`;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT problem_id,COUNT(solution.problem_id)
  5. FROM solution
  6. GROUP BY problem_id;
  7. ########## End ##########

第32关:查询提交数大于20的题目的题号

  1. USE `sqlexp-sztuoj`;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT problem_id
  5. FROM solution
  6. GROUP BY problem_id
  7. HAVING COUNT(*)>20;
  8. ########## End ##########

第33关:查找所有problem_id 为1001 的解答或 contest_id 为空的解答

  1. USE `sqlexp-sztuoj`;
  2. #请在此处添加实现代码
  3. ########## Begin ##########
  4. SELECT*
  5. FROM solution
  6. WHERE problem_id=1001 OR contest_id IS NULL;
  7. ########## End ##########
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/490650
推荐阅读
相关标签
  

闽ICP备14008679号