2024年3月6日发(作者:)

实 验 报 告

专业:计算机科学与技术 班级:11科技 学号: 姓名:

课程名称:数据库系统原理 2012 -2013学年度第2学期

课程类别:专业必修 实验时间:2013 年 4 月 20日

实验名称:实验六 多表查询实验目的和要求:

1. 了解查询的概念和方法

2. 掌握查询分析器的使用方法

3. 掌握复杂查询的实现方法

4. 掌握多表连接的方法

5. 掌握嵌套查询与集合的基本方法

6. 掌握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 = and =))

操作结果:

操作4

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use shiyan

go

select pname,weight

from p,spj

where ='j2' and =

或者

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 spj

where sno=(select sno

from s

where city='上海')

操作结果:

操作6

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use shiyan

go

select distinct jname

from s,j,spj

where = and =(select sno

from s

where ='上海')

操作结果:

操作7

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use shiyan

go

select distinct jno

from spj

where sno in (select sno

from s

where city<>'天津')

操作结果:

操作8

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use shiyan

go

select pno

from p

where weight=(select min(weight)

from p

where color='红')

或者

select top 1 pno

from p

where color='红'

order by weight

操作结果:

操作9

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use shiyan

go

select distinct pno

from s,j,spj

where = and = and =

操作结果:

操作10

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use shiyan

go

select distinct CITYA, CITYB, PNAME

from s,p,j,spj

where = and = and =

操作结果:

操作11

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use shiyan

go

select distinct CITYA, CITYB, PNAME

from s,p,j,spj

where = and = and = and <>

操作结果:

操作12

(1)打开SQL Server查询分析器。

(2)在查询分析器中输入如下所示的SQL脚本:

use shiyan

go

select sum(qty) TotalQTY

from spj

where sno='s1' and jno in(select jno

from j

where jname like '%厂%')

操作结果: