首页 SQL实验二

SQL实验二

举报
开通vip

SQL实验二Chapter 2 SQL实验二 连接查询和嵌套查询 实验目标: ​ 掌握基本的连接查询操作 ​ 等值连接 ​ 非等值连接 ​ 自身连接 ​ 外连接 ​ 掌握嵌套查询操作 ​ 带有比较运算符的子查询 ​ 带有IN谓词的子查询 ​ 带有ANY或ALL谓词的子查询 ​ 带有EXISTS谓词的子查询 2.1 连接 实验一的查询都只涉及了一个表,但由于存放在数据库中的各个表不是孤立的,而是相互联系的,因此,有时我们会对多个表中的数据同时进行查询以组成一个综合性的结果集,这样的查询称为连接查询。 连接查询...

SQL实验二
Chapter 2 SQL实验二 连接查询和嵌套查询 实验目标: ​ 掌握基本的连接查询操作 ​ 等值连接 ​ 非等值连接 ​ 自身连接 ​ 外连接 ​ 掌握嵌套查询操作 ​ 带有比较运算符的子查询 ​ 带有IN谓词的子查询 ​ 带有ANY或ALL谓词的子查询 ​ 带有EXISTS谓词的子查询 2.1 连接 实验一的查询都只涉及了一个 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf ,但由于存放在数据库中的各个表不是孤立的,而是相互联系的,因此,有时我们会对多个表中的数据同时进行查询以组成一个综合性的结果集,这样的查询称为连接查询。 连接查询主要包括: ​ 等值连接 ​ 非等值连接 ​ 自身连接 ​ 外连接 下面详细介绍各种连接查询类型。 1.等值连接 以等于运算符 (=) 为基础的连接称为等值连接。通常情况下,所有连接都是等值连接。等值连接的语法如下: SELECT FROM WHERE table1.common_column = table2.common_column AND table3.common_column = tablen.common_column; 实验2-1 查询所有产品的名称、类别名称和库存量等数据。 实验2-2 查询所有订单的订单代号、客户公司名称和运货费,查询结果按订单代号的升序排列。 实验2-3 查询由北京客户订购的运货费等于于8元的订单的订单代号、客户公司名称和运货费。 等值连接可在两个表上执行,也可在多个表上执行。下面看看如何在一个连接中使用四个表。 实验2-4 查询每一客户的客户代号、公司名称及其订单的订单代号、订购日期、产品名称和数量等数据。 本例查询中的客户代号、公司名称来自于Customer表,订单代号、订购日期来自于Orders表,产品名称来自于Product表,而数量来自于Order_items表。用SELECT语句表示如下: SELECT Customer.Cno,Company,Orders.Ono,Order_date,Pname,Qty FROM Customer,Orders,Order_items,Product WHERE Customer.Cno=Orders.Cno AND Orders.Ono=Order_items.Ono AND Order_items.Pno=Product.Pno; 请学生自行观察查询结果。 练习2-1 修改实验2-4中给出的语句并以如下方式给出,然后观察发生什么情况。 SELECT Cno,Company, Ono,Order_date,Pname,Qty FROM Customer,Orders,Order_items,Product WHERE Customer.Cno=Orders.Cno AND Orders.Ono=Order_items.Ono AND Order_items.Pno=Product.Pno; 给出上面的选择语句后,会出现 “Column ambiguously defined”(列定义模糊不清)的出错信息。这是因为“Ono”存在于两个表(即Orders表 和Order_items表)之中。我们需要明确指定要从哪个表选择Ono。在这种情况下,可以从任何一个表中选择Ono。 2.非等值连接 实验2-5 查询所有单价介于20和35元之间的产品的名称、类别名称、单价和库存量等数据。 或 3.自身连接 自身连接是连接的另一种形式。在这种情况下,连接是在单个表上进行的,就像它是两个独立的表。 表的每个行都与其本身组合,并与表的所有行组合。 实验2-6 查询单价正好相差0.5倍的每一对产品的名称及其单价。 注意:在进行表的自身连接时,须在FROM子句中给同一个表取不同的别名,并在 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 写SELECT语句的其它子句时把这些代表同一表的不同别名看成是具有相同数据的“不同表”(读者在理解自身连接查询时,可以将它们看成不同的表,但实际上只有一个表)。 练习2-2 查询与“Du Wei”客户在同一城市的其他客户的姓名及其电话。 4. 外连接 前面介绍的查询都是内连接。内连接不选择表中不符合查询条件的记录。这些值可通过外连接获得,外连接利用运算符加号 (+)。 语法如下: SELECT (column_names) FROM (tablenames) WHERE (table1.column1 = table2.column2)(+); 实验2-7 查询所有客户的代号、姓名以及其订单的代号和订购日期与订单状态,查询结果按客户代号的升序排列。 先请看下面的SQL语句及其查询结果: 上面的查询是一个内连接,由于客户“C0003”和“C0004”没有订单,他们都不满足查询条件,因此他们的信息没有出现在查询结果中;如果我们想让这两个客户的信息也出现在查询结果中就需要使用下面的外连接语句: 试比较上面的两个查询语句中查询结果有何区别? 2.2 嵌套查询 嵌套查询是指将一个SELECT-FROM-WHERE查询块嵌套在另一个查询块的WHERE或HAVING短语的条件中的查询。 1.带有比较运算符的子查询 实验2-8 查询与“Du Wei”客户在同一城市的其他客户的姓名及其电话。 本查询包括了两个SELECT-FROM-WHERE查询块,其中下层的查询块嵌套在上层的查询块中。我们将上层的查询块称为父查询,而把下层的查询块称为子查询。子查询的处理先于父查询。本嵌套查询的过程如下: ⑴ 先通过子查询,在Customer表中找到“Du Wei”客户所在的城市,结果为“Shanghai”; ⑵ 利用子查询得到的City值“Shanghai”,求出父查询中位于“Shanghai”的客户的姓名及其电话。 2.带有IN谓词的子查询 当子查询的查询结果包含多个值时,经常会使用谓词IN来连接子查询和父查询。 实验2-9 查询订购了单价比“3004”号产品大的那些产品的订单的代号。 本查询嵌套了两个SELECT子查询,其中最内层的子查询找出了“3004”号产品的单价,结果是单值30,在该子查询前可以使用比较运算符“>”,而其上一层的子查询找出了单价大于30的产品的代号,结果有多个值,故在该子查询前需用谓词“IN”。 3.带有ANY或ALL谓词的子查询 当子查询的查询结果包含多个值时,光用谓词“IN”来连接子查询和父查询是不够的,有时会用到前置了比较运算符(>、>=、=、<、<=、<>)的谓词“ANY”或“ALL”。其中“ANY”代表子查询结果中的某个值,“ALL”代表子查询结果中的所有值。这样,“>ANY”表示大于子查询结果中的某一个值,“>ALL”表示大于子查询结果中的所有值。其它如“>=ANY”、“=ANY”、“ANY”、“>=ALL”、“=ALL”、“ALL”的含义依此类推。 实验2-10 查询价格大于所有1号类产品的产品的名称及其价格。 实验2-11 查询其它类中、价格大于某个1号类产品的产品的名称及其价格。 4.带有EXISTS谓词的子查询 EXISTS 运算符检查两个表中是否存在值。它只可用于子查询,即没有像存在测试的简单比较测试。EXISTS 运算符不能返回 NULL 值。 实验2-12 查询没有订购“1001”号产品的订单的代号。 从上面的查询可以看出,带有EXISTS谓词的子查询与前面的几类子查询是有区别的,主要区别有以下两点: ⑴ 前几类子查询返回的是某一列的值(单值或多值),而带有EXISTS谓词的子查询返回的是逻辑值真或假。当在子查询的FROM子句的表中找到满足条件的元组时,子查询返回逻辑真值,否则返回逻辑假值。 ⑵ 前几类子查询的WHERE子句中的条件与父查询是无关的,而带有EXISTS谓词的子查询的WHERE条件的值却依赖于父查询的某个(或某些)属性列的值,如上例子查询的结果是真还是假就依赖于父查询中的Orders.Ono属性列的当前值。 对于下一个 1 小时: 1.​ 列出至少有一个雇员的所有部门。 2.​ 列出薪金比“SMITH”多的所有雇员。 3.​ 列出所有雇员的姓名及其上级的姓名。 4.​ 列出入职日期早于其直接上级的所有雇员。 5.​ 列出部门名称和这些部门的雇员,同时列出那些没有雇员的部门。 6.​ 列出所有“CLERK”(办事员)的姓名及其部门名称。 7.​ 列出各种类别的最低薪金,以使最低薪金大于 1500。 8.​ 列出从事“SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号。 9.​ 列出薪金高于公司平均水平的所有雇员。 10.​ 列出与“SCOTT”从事相同工作的所有雇员。 11.​ 列出薪金等于给予在部门 30 工作的雇员的薪金的雇员的所有姓名和薪金。 12.​ 列出薪金高于在部门 30 工作的所有雇员的薪金的雇员的姓名和薪金。 13.​ 列出在每个部门工作的雇员的数量以及其他信息。 14.​ 列出所有雇员的雇员名称、部门名称和薪金。 15.​ 列出从事同一种工作但属于不同部门的雇员的不同组合。 16.​ 列出分配有雇员数量的所有部门的详细信息,即使是分配有 0 个雇员。 17.​ 列出各种类别工作的最低工资。 18.​ 列出各个部门的 MANAGER(经理)的最低薪金。 19.​ 列出按计算的字段排序的所有雇员的年薪。 20.​ 列出薪金水平处于第四位的雇员。 此页有意留为空白 1、​ 对格式的要求 知网学位论文检测为整篇上传,上传论文后,系统会自动检测该论文的章节信息,如果有自动生成的目录信息,那么系统会将论文按章节分段检测,否则会自动按每一万字左右分段检测。格式对检测结果可能会造成影响,需要将最终交稿格式提交检测,将影响降到最小,此影响为几十字的小段可能检测不出。都不会影响通过。系统的算法比较复杂,每次修改论文后再测可能会有第一次没测出的小段抄袭(经2 年实践经验 证明 住所证明下载场所使用证明下载诊断证明下载住所证明下载爱问住所证明下载爱问 ,该小段不会超过200 字,并且二次修 改后论文一般会大大降低抄袭率)
本文档为【SQL实验二】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_147186
暂无简介~
格式:doc
大小:272KB
软件:Word
页数:11
分类:互联网
上传时间:2011-05-21
浏览量:24