- 打开 SQL Server Management Studio。
- 连接到测试数据库 test1。
- 在 New Query 窗口中输入以下 SQL 语句进行查询: (1)查询所有供应商情况,先按城市升序排列,城市相同按供应商名称降序排列。
SELECT * FROM s ORDER BY city ASC, sname DESC
(2)查询所有零件情况,先按零件名称升序排列,零件名称相同按重量降序排列。
SELECT * FROM p ORDER BY pname ASC, weight DESC
(3)查询项目名中含有“厂”的项目情况。
SELECT * FROM j WHERE jname LIKE '%厂%'
(4)查询供应商名称中第二个字为“方”的供应商情况。
SELECT * FROM s WHERE sname LIKE '_方%'
(5)查询所有零件中的最大、最小、平均重量。
SELECT MAX(weight), MIN(weight), AVG(weight) FROM p
(6)查询零件中名为“螺丝刀”的零件的种类数、平均重量。
SELECT COUNT(*) AS '种类数' ,AVG(weight) AS '平均重量' FROM p WHERE pname = '螺丝刀'
(7)查询供应商 S1 所供应的各种零件的名称和数量。
SELECT p.pname, spj.qty FROM spj JOIN p ON spj.pno = p.pno WHERE spj.sno = 's1'
(8)查询工程 J1 所使用的各种零件的名称和数量。
SELECT p.pname, spj.qty FROM spj JOIN p ON spj.pno = p.pno WHERE spj.jno = 'j1'
(9)查询没有使用红色螺丝刀的工程名称。
SELECT DISTINCT j.jname FROM spj JOIN j ON spj.jno = j.jno JOIN p ON spj.pno = p.pno WHERE p.pname <> '螺丝刀' OR p.color <> '红'
(10)查询没有供应红色螺丝刀的供应商名称。
SELECT s.sname FROM s WHERE NOT EXISTS ( SELECT * FROM spj JOIN p ON spj.pno = p.pno WHERE s.sno = spj.sno AND p.pname = '螺丝刀' AND p.color = '红' )
(11)查询所用零件数量超过 500 的工程项目号。
SELECT spj.jno FROM spj GROUP BY spj.jno HAVING SUM(qty) > 500
(12)查询所用零件种类超过 3 种的工程项目名称。
SELECT j.jname FROM spj JOIN j ON spj.jno = j.jno GROUP BY spj.jno, j.jname HAVING COUNT(DISTINCT spj.pno) > 3
(13)查询使用了全部零件的工程项目名称。
SELECT j.jname FROM j WHERE NOT EXISTS ( SELECT * FROM p WHERE NOT EXISTS ( SELECT * FROM spj WHERE spj.jno = j.jno AND spj.pno = p.pno ) )
(14)查询至少供应了工程 J1 所使用的全部零件的供应商名称。
SELECT s.sname FROM spj JOIN p ON spj.pno = p.pno JOIN s ON spj.sno = s.sno WHERE NOT EXISTS ( SELECT * FROM spj WHERE spj.jno = 'j1' AND spj.pno NOT IN ( SELECT pno FROM spj WHERE jno = 'j1' ) AND spj.sno = s.sno )
(15)查询供应情况,显示内容为供应商名称、零件名、工程名称、数量。
SELECT s.sname, p.pname, j.jname, spj.qty FROM spj JOIN s ON spj.sno = s.sno JOIN p ON spj.pno = p.pno JOIN j ON spj.jno = j.jno
(16)查询“东方红”供应商供应情况,显示供应的零件名、工程名称、数量。
SELECT p.pname, j.jname, spj.qty FROM spj JOIN s ON spj.sno = s.sno JOIN p ON spj.pno = p.pno JOIN j ON spj.jno = j.jno WHERE s.sname = '东方红'
- 为机车厂工程项目建立一个供应情况的视图,包括供应商代码,零件代码,供应数量。
CREATE VIEW supply_view AS SELECT spj.sno, spj.pno, spj.qty FROM spj JOIN j ON spj.jno = j.jno WHERE j.jname = '机车厂'
(1)查询机车厂工程项目使用的各种零件代码及其数量。
SELECT p.pno, SUM(spj.qty) as quantity FROM spj JOIN p ON spj.pno = p.pno WHERE spj.jno = 'j5' GROUP BY p.pno
(2)查询处供应商 S2 的供应情况。
SELECT p.pname, spj.qty FROM spj JOIN p ON spj.pno = p.pno WHERE spj.sno = 's2'
- 关于数据库管理的各种直接操作的方法,您可以了解以下内容:
- 创建新的数据库
- 创建/删除表
- 修改表结构
- 插入/更新/删除数据
- 创建/删除索引
- 执行存储过程/函数
- 创建/删除触发器
- 管理用户和权限
以上是一些常见的操作,您可以根据实际需求进行学习和使用。
标签:JOIN,语言,WHERE,spj,实验,pno,SQL,jno,SELECT From: https://www.cnblogs.com/yunbianshangdadun/p/17422794.html