数据库实验六多表查询实验报告
实 验 报 告
专业:计算机科学与技术 班级: 学号: 姓名:
课程名称:数据库系统原理 2012 -2013学年度第2学期
课程类别:专业必修 实验时间:2013 年 4 月 20日实验名称:实验六 多表查询实验目的和要求:
了解查询的概念和方法
掌握查询分析器的使用方法
掌握复杂查询的实现方法
掌握多表连接的方法
掌握嵌套查询与集合的基本方法
掌握SELECT语句在多表查询中的应用实验软硬件要求:安装Window 2000或windows xp或Windows NT操作系统和 SQL Server 2000的计算机或SQL Server 2005实验内容、实验过程、所遇问题及其解决方法
(附页)实验总结及心得体会:这次实验使我对SQL语句和查询分析器的使用方法有了基本了解。评定成绩: 批阅教师: 年 月 日附页
实验内容:
针对实验数据库shiyan,完成以下单表查询操作:
1.查询为工程J1供应红色零件的供应商号码SNO。
2.查询没有使用天津供应商生产的零件并且当前工程所使用零件的颜色全部为红色的工程号JNO。
3.查询至少选用了供应商S1所供应的全部零件的工程号JNO。
4.找出工程项目J2使用的各种零件的名称及其重量。
5.找出上海厂商供应的所有零件号码。
6.找出使用上海产的零件的工程名称。
7.找出没有使用天津产的零件的工程号码。
8.找出重量最轻的红色零件的零件编号PNO。
9.找出供应商与工程所在城市相同的供应商提供的零件号码。
10.找出所有这样的一些<CITY,CITY,PNAME>三元组,使得第一个城市的供应商为第二个城市的工程供应零件的名称为PNAME。
11.重复第15题,但不检索两个CITY值相同的三元组。
12.找出供应商S1为工程名中含有“厂”字的工程供应的零件数量总和。
实验方法、步骤以及实验结果:
操作1
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:
use ShiYan
go
select sno
from spj
where jno='j1' and pno in (select pno
from p
where color='红')
操作2
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
go
select jno
from spj
where sno in (select sno
from s
where city<>'天津')
and
pno in (select pno
from p
where color='红')
操作结果:
操作3
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:
select distinct jno
from spj as x
where not exists ( select *
from spj as y
where sno='s1'
and not exists (select *
from spj as z
where z.pno=y.pno and z.jno=x.jno))
操作结果:
操作4
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
go
select pname,weight
from p,spj
where spj.jno='j2' and spj.pno=p.pno
或者
select pname,weight
from p
where pno in (select distinct pno from spj where jno='j2')
操作结果:
操作5
(1)打开SQL Server查询分析器。
(2)在查询分析器中输入如下所示的SQL脚本:
use shiyan
go
select distinct pno
from