多表查询实验报告

时间:2024.5.4

《数据库系统概论》实验报告

实验名称:   多表查询                 

人:                   

实验地点:   实验楼317               

实验日期:    20##-10-12                


一、   实验准备

1.硬件及软件环境要求

为了使该实验顺利进行,需要有一台计算机,计算机必须安装Windows 20##、Windows XP或Windows NT操作系统,还必须安装Microsoft SQL Server 20## 任意一版本(个人版、标准版、企业版)。实验开始之前,必须将实验1.2节中创建好的SCDB数据库和ShiYan数据库附加到当前SQL数据库服务器中。

2.本实验涉及的主要SQL语句的语法格式及各种操作说明

数据库各数据表中存放着不同的数据,用户经常需要用多个表中的数据来组合提炼出所需的数据信息,如果一个查询需要对多个表进行操作,这一查询就称为多表查询(或关联查询)。多表查询是通过各个表之间共同的关联属性列来实现数据查询的,它是关系数据库查询操作的一种最常见的方法。多表查询主要表现为连接查询、嵌套查询、集合查询等几种形式。

(1) 连接查询

连接查询是关系数据库中最主要的查询,包括等值连接查询、自然连接查询、非等值连接查询、自身连接查询、外连接查询和复合条件连接查询。

1) 等值、非等值和自然连接查询

连接查询中用来连接两张表的条件称为连接条件或连接谓词,其语法为:

SELECT column_name [ ,...n ]

 [ FROM tablename1,tablename2 ]

 WHERE [tablename1].< column_name ><operator>[tablename2].< column_name >

说明

operator:连接运算符。当为“=”时,称为等值连接;否则称为非等值连接;在等值连接中,如果将目标列中重复的属性列去掉则称为自然连接。

2) 外连接查询

在通常的连接操作中,只有满足条件的元组才能作为结果输出,但如果想以某张表作为主体列出所有的情况,在没有信息的情况下,只能输出其基本情况信息,这时就需要使用外连接查询。其语法为:

SELECT column_name [ ,...n ]

 [ FROM tablename1,tablename2 ]

 WHERE [tablename1].< column_name >[(*)]<operator>[(*)]

[tablename2].< column_name >

说明

外连接的表示方法为在连接谓词的某一边加符号“*”(外连接符)。外连接符出现在<operator>左边称为左外连接;外连接符出现在<operator>右边称为右外连接。

3) 复合条件连接查询

如果在查询语句的WHERE子句中有多个连接条件,则称为复合条件连接查询其语法为:

SELECT column_name [ ,...n ]

 [ FROM tablename1,tablename2 ]

 WHERE [tablename1].< column_name ><operator>[tablename2].< column_name >

    <link> [tablename1].< column_name ><operator>

[tablename2].< column_name >[ ,...n ]

说明

link:逻辑连接词,可以是AND、OR、NOT或其他限定条件。

(2) 嵌套查询

一个SELECT-FROM-WHERE语句称为一个查询块。将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询。在嵌套查询中,子查询的结果往往是一个集合,因此IN、EXISTS等谓词经常使用在嵌套查询中。

(3) 集合查询

如果有多个不同的查询结果数据集,但又希望它们连接在一起,组成一组数据,这组数据就是这多个结果集的逻辑联合。在这种情况下,通常可以使用UNION子句。使用UNION子句时的两条基本原则:

·每一个查询结果集的数据类型必须相同;

·每一个查询结果集中的列数必须相同,列的排列顺序必须相互对应。

二、   实验目的

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

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

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

4.掌握多表连接的方法;

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

6.掌握SELECT语句在多表查询中的应用。

三、   实验内容

针对实验数据库ShiYan,完成以下多表查询操作:

1.查询为工程J1供应红色零件的供应商号码SNO。

SELECT SPJ.SNO

FROM SPJ

WHERE  SPJ.JNO='j1' AND SPJ.PNO in(

 select P.PNO

 from P

 where P.COLOR='红')

2.查询没有使用天津供应商生产的零件并且当前工程所使用零件的颜色全部为红色的工程号JNO。

select SPJ.JNO

from SPJ

where SPJ.PNO in(

 select P.PNO

 from P

 where P.COLOR='红') AND

 SPJ.SNO in(

 select S.SNO

 from S

 where S.CITY!='天津')

3.查询至少选用了供应商S1所供应的全部零件的工程号JNO。

select SPJ.JNO

from SPJ

where SPJ.SNO='S1'

4.找出工程项目J2使用的各种零件的名称及其重量。

select P.PNAME,P.WEIGHT

from P

where P.PNO in (

select SPJ.PNO

from SPJ

where SPJ.JNO='J2')

5.找出上海厂商供应的所有零件号码。

select DISTINCT SPJ.PNO

from SPJ

where SPJ.SNO in (

select S.SNO

from S

where S.CITY='上海')

6.找出使用上海产的零件的工程名称。

select DISTINCT SPJ.JNO

from SPJ

where SPJ.SNO in (

select S.SNO

from S

where S.CITY='上海')

7.找出没有使用天津产的零件的工程号码。

select DISTINCT SPJ.JNO

from SPJ

where SPJ.JNO not in (

select DISTINCT SPJ.JNO

from SPJ

where SPJ.SNO  in (

select S.SNO

from S

where S.CITY='天津'))

8.找出重量最轻的红色零件的零件编号PNO。

select P.PNO

from P

where P.WEIGHT <=all(

select P.WEIGHT

from P

where P.COLOR='红')

9.找出供应商与工程所在城市相同的供应商提供的零件号码。

SELECT DISTINCT P.PNO
FROM S,J,SPJ,P
WHERE S.CITY = J.CITY AND 
       J.JNO = SPJ.JNO AND 
       S.SNO = SPJ.SNO AND 
       SPJ.PNO = P.PNO

10.找出所有这样的一些<CITY,CITY,PNAME>三元组,使得第一个城市的供应商为第二个城市的工程供应零件的名称为PNAME。

SELECT  S.CITY,J.CITY,P.PNAME

FROM S,J,SPJ,P

WHERE 

       J.JNO = SPJ.JNO AND

       S.SNO = SPJ.SNO AND

       SPJ.PNO = P.PNO

11.重复第15题,但不检索两个CITY值相同的三元组。

SELECT  S.CITY,J.CITY,P.PNAME

FROM S,J,SPJ,P

WHERE  S.CITY!=J.CITY AND

       J.JNO = SPJ.JNO AND

       S.SNO = SPJ.SNO AND

       SPJ.PNO = P.PNO

12.找出供应商S1为工程名中含有“厂”字的工程供应的零件数量总和。

select SUM(SPJ.QTY) as '零件数量总和'

from SPJ

where SPJ.SNO='S1' AND SPJ.JNO in(

select J.JNO

from J

where J.JNAME LIKE '%厂%')

四、   总结

  这次多表查询是对第一个实验的扩展和融合,对自己来说,也是提高实验能力的一种方式。 这次实验也使得我理解了查询分析器的大致使用方法,嵌套和集合查询的基本方法。 对select语句也有了更深一步的认识。


第二篇:多用电表使用实验报告


西峰育才中学物理实验报告

 班级:             时间:             指导教师:         

 实验学生名单:                                          

【实验内容】:多用电表的使用

【实验目的】:学会使用多用电表测量电阻、二极管正负极、电压、电流

【实验原理】:

欧姆表:欧姆表由灵敏电流计表头、电池、变阻器改装而成,欧姆表内阻就是这三部分电阻的串联阻值,根据闭合电路欧姆定律: 电流有一一对应关系,就可测出不同的电阻。可画出其内部如图1所示:

多用电表:电流表和电压表都是由灵敏电流计表头改装来的,所以欧姆表、电流表和电压表可以公用一个表头改装成一个多用电表。可画出其内部结构如图2所示:

【注意事项】:

因为表头是多用的,而电流必须从其正接线柱流入,表内又有电池,所以红表笔接的是表头的正接线柱,但却与电池负极相连,而黑表笔与电池正极相连。

测电阻时,用的是表内的电池,待测电阻必须与电源断开;测电压和电流时,不用表内电池,多用电表必须按照电压表和电流表的接法接入电路。

【实验过程及数据记录】:

1、测量定值电阻:

(1)、将多用电表的        表笔分别插入+、-插孔,选择开关旋至       (“Ω”)档。

(2)、试测一下桌面上的电阻,根据指针所指示的位置,判断目前所选的       是否合适,然后将选择开关调到合适的位置。

(3)、将两个表笔       在一起,调节              旋钮,直至指针指到     侧0位置。

(4)、测量电阻并读出数据。R=       Ω

(5)、如果测量另一电阻时改变了量程,必须重新进行             

2、测量二极管的正反向电阻:

(1)、将多用电表选择开关调至       档,并选择×10或×100的档位。

(2)、将两个表笔       在一起,调节              旋钮,直至指针指到     侧0位置。

(3)、用右手像握筷子那样抓住两表笔,接触到左手拿的二极管两端的电极。

(4)、测量出二极管的电阻并读出数据。

R=       Ω,说明现在连接黑表笔的是二极管的       极。

(5)、将多用电表选择开关调至×100或×10的档位。并将二极管电极颠倒,重新测量。

R=       Ω,说明现在连接黑表笔的是二极管的       极。

3、测量小灯泡两端电压:

(1)、按照黑板上的电路图连接电池、开关、变阻器、小灯泡。

(2)、将多用电表选择开关调至       档,为了安全先选择最大量程,试测以后再选择合适的量程。

(3)、通过两个表笔将多用电表与小灯泡       联在一起,读出小灯泡两端电压为     伏。

4、测量小灯泡中的电流:

(1)、将多用电表选择开关调至       档,为了安全先选择最大量程,试测以后再选择合适的量程。

(2)、通过两个表笔将多用电表与小灯泡       联在一起,读出小灯泡两端电压为     伏。

(3)、通过两个表笔将多用电表与小灯泡       联,读出小灯泡中通过的电流为     安。

更多相关推荐:
实验八 实验报告表

实验八实验报告表实验名称学号实验报告表81并行算法和串行算法实验数据表1120xx0421姓名宋丽班级020xx303实验时间1219实验报告表82分布式实验数据表实验报告表83虚拟计算实验数据表

实验报告格式模板-供参考

实验名称:粉体真密度的测定粉体真密度是粉体质量与其真体积之比值,其真体积不包括存在于粉体颗粒内部的封闭空洞。所以,测定粉体的真密度必须采用无孔材料。根据测定介质的不同,粉体真密度的主要测定方法可分为气体容积法和…

实验一 实验报告表

实验一实验报告表实验名称学号姓名班级实验时间实验报告表11图灵机模型中的主要组成部分及作用说明可根据需要加行实验报表12冯诺依曼计算机体系结构的功能描述实验报告表13实验所使用的计算机硬件配置登记表实验报告表1...

实验九 实验报告表

五实验报告学号姓名班级实验时间20xx年11月17日实验报告图像生成与图像处理一填写下载图像的相关数据二查看左侧的图像请填写相应的图像编码三计算机中实际存储的图像可能有数几百万像素为了减少图像存储的空间有一种游...

电子表格实验报告

深圳大学实验报告课程名称计算机基础1实验项目名称电子表格学院传播学院专业指导教师报告人彭可学号20xx080289班级实验时间20xx112实验报告提交时间教务处制4一实验目的了解并熟悉软件excel1掌握工作...

实验报告表格 - 副本

学生实验报告学院统计学院课程名称SAS软件专业班级会统核算姓名学号学生实验报告经管类专业用一实验目的及要求1目的2内容及要求二仪器用具运用系统聚类法进行聚类三实验方法与步骤1现有一个班级的全体学生的数学成绩如下...

实验十四 实验报告表

实验十四实验报告表实验名称数据管理与数据库操作实验报告表141数据库管理系统实验数据表实验报告表142虚拟数据库设计实验报告表143虚拟数据库查询1

北京理工大学 实验二 实验报告表

实验二实验报告表实验名称计算机中的数据表示与计算学号20xx216886姓名实验报告表21数值型数据在计算机中的二进制实验记录表唐玮班级计算机154班实验时间20xx年说明本实验对计算机内存数据的存放拟定为整数...

实验十五 实验报告表

五实验报告学号姓名班级实验时间年月日实验报告用计算机解题算法一请画出实验内容1真假话问题计算机求解算法的流程图二假定一个数列中有n个杂乱无章的整数请你用流程图描述一下插入排序的算法1

实验六 实验报告表

实验六实验报告表实验报告表61打开文件过程演示实验记录表实验报告表62创建文件过程演示实验记录表实验报告表63删除文件过程实验记录表

实验十六 实验报告表

实验十六实验报告表实验名称学号姓名班级实验时间实验报告表161并行算法和串行算法实验数据表1

实验四 实验报告表

实验四实验报告表实验名称学号姓名班级实验时间实验报告表41一条指令执行过程记录表

实验报告表(46篇)