2024.5.27

所学时间:3小时

代码行数:129

博客园数:1篇

所学知识:今天学习了使用 SQL 语言进行各种查询的操作和视图的操纵方法。

查询所有零件情况,先按零件名称升序排列,零件名称相同按重量降序排列:

SELECT pname, weight FROM p ORDER BY pname ASC, weight DESC;

查询所有零件中的最大、最小、平均重量:

SELECT MAX(weight) AS max_weight, MIN(weight) AS min_weight, AVG(weight) AS avg_weight FROM p;

查询零件中名为“螺丝刀”的零件的种类数、平均重量:

SELECT COUNT(DISTINCT pname) AS part_count, AVG(weight) AS avg_weight FROM p WHERE pname = '螺丝刀';

查询供应商 S1 所供应的各种零件的名称和数量:

SELECT p.pname, spj.qty FROM spj JOIN p ON spj.pno = p.pno WHERE spj.sno = 'S1';

查询工程 J1 所使用的各种零件的名称和数量:

SELECT p.pname, spj.qty FROM spj JOIN p ON spj.pno = p.pno WHERE spj.jno = 'J1';

查询没有使用红色螺丝刀的工程名称:

SELECT DISTINCT j.jname FROM j LEFT JOIN spj ON j.jno = spj.jno LEFT JOIN p ON spj.pno = p.pno WHERE p.color != '红色' OR p.pname != '螺丝刀';

查询所用零件数量超过 500 的工程项目号:

SELECT jno FROM spj GROUP BY jno HAVING SUM(qty) > 500;

查询所用零件种类超过 3 种的工程项目名称:

SELECT j.jname FROM j JOIN spj ON j.jno = spj.jno GROUP BY j.jname HAVING COUNT(DISTINCT spj.pno) > 3;

查询使用了全部零件的工程项目名称:

SELECT j.jname FROM j JOIN spj ON j.jno = spj.jno GROUP BY j.jname HAVING COUNT(DISTINCT spj.pno) = (SELECT
posted @ 2024-05-27 12:06  kuku睡  阅读(29)  评论(0)    收藏  举报