实验二 SQL 语言的使用(1)

  1. 打开 SQL Server Management Studio。
  2. 连接到测试数据库 test1。
  3. 在 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 = '东方红'

  1. 为机车厂工程项目建立一个供应情况的视图,包括供应商代码,零件代码,供应数量。

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'

  1. 关于数据库管理的各种直接操作的方法,您可以了解以下内容:
  • 创建新的数据库
  • 创建/删除表
  • 修改表结构
  • 插入/更新/删除数据
  • 创建/删除索引
  • 执行存储过程/函数
  • 创建/删除触发器
  • 管理用户和权限

以上是一些常见的操作,您可以根据实际需求进行学习和使用。

posted @   云边上打盹  阅读(242)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示