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