- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
班级: 学号: 姓名:
实验5 SQL表中数据的连接查询
1.实验目的
(1)掌握SELECT语句在连接查询中的应用
2.背景知识
若查询涉及多个表,此时可以使用连接进行查询。连接查询是关系数据库中最主要的核心查询,包括普通连接和外连接查询。
(1)普通连接
普通连接操作只输出满足连接条件的元组,连接查询中用来连接两个表的条件称为连接条件或连接谓词,连接谓词中的列名称为连接字段,其一般格式为:
[表名1.]列名1 比较运算符 [表名2.]列名2
连接条件中的各连接字段类型必须是可比的,但名称不必是相同的。且连接条件在WHERE中。在连接查询中为了避免混淆,在属性名前面加上表名前缀。若没有指定两表的连接条件,则两表做广义笛卡尔积,即两表元组交叉乘积。其连接结果会产生一些没有意义的远祖。若在连接条件中的连接运算符是等号(=)则是等值连接,其中会有相同的重复属性列,如果去掉重复的属性,则是自然连接。连接不仅可以在两个不同的表中进行,也可以四一个表与其自身进行连接,这个称为自身连接,在实际查询中经常会用到;还可以是两个表以上的多表进行连接,称为多表连接。多数时候,WHERE子句中会有多个条件,称为复合条件连接。
(2)外连接
通常情况下,连接操作只有满足条件的元组才会作为结果输出。外连接Outer Join是参与连接的一方(左方或右方),即使不满足条件,也要出现在结果中。不满足条件的元组的另一方属性置空值NULL。左外连接 Left Outer Join表示左面关系的所有元组将出现在结果中;右外连接 Right Outer Join表示右面关系的所有元组将出现在结果中;全外连接 Full Outer Join表示两面关系的所有元组将出现在结果中。
(3)集合查询
SELECT语句的查询结果是元组的集合,所以多个SELECT语句的结果可以进行集合操作。集合操作的种类主要有并操作UNION、交操作INTERSECT、差操作EXCEPT,参加集合操作的各查询结果的列数必须相同;对应项的数据类型也必须相同。
3.实验内容
要求:实现对关系数据库product中相关数据的连接查询操作。
product(maker,model,type)
PC(model,speed,ram,hd,rd,price)
Laptop(model,speed,ram,hd,screen,price)
Printer(model,color,type,price)
查询硬盘容量至少30GB的笔记本电脑制造商及该电脑的速度。
查询制造商B生产的任意类型的所有产品的型号和价格。
查询只卖笔记本电脑不卖PC的厂商。
!d)查询出现在两种或两种以上PC中硬盘的大小。
!e)查询每对具有相同速度和RAM容量的PC型号。每一对只能列出一次,例如若(i,j)已被列出,则(j,i)就不能再被列出。
!!f)查询生产至少两种速度至少3.0的电脑(PC或笔记本电脑)的厂商。
实验6 SQL表中数据的复杂查询
1.实验目的
(1)掌握SELECT语句在复杂查询中的应用
2.背景知识
在SQL语言中,一个SELECT-FROM-WHERE语句称为一个查询块。将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询。
在SQL语言中可以有多层嵌套查询,即一个子查询还可以嵌套另外一个子查询。特别要注意子查询不能有ORDER BY子句,只有在最外层的最终查询结果才可以使用ORDER BY子句进行排序。嵌套查询一般的求解方法是由里向外处理,即每一个子查询在其上一级查询处理之前求解,子查询结果用于建立其父查询的查询条件。嵌套查询可以使用多个简单查询嵌套成一个复杂的查询,这样通过层层嵌套的方法构造查询,提高SQL语言的查询能力。当目标中涉及的属性在同一个表中,就可以使用嵌套查询,需要注意的是连接查询和嵌套查询可以在一个查询中同时出现。
(1)带有IN谓词的子查询。在嵌套查询中,子查询的结果往往是一个集合,所以谓词IN是嵌套查询中最常用的谓词。当查询涉及多个关系时,用嵌套查询实现求解,层次清晰,易于构造,具有结构化程序的优点。有些嵌套查询可以用连接查询实现,有些则不行,对于可以用连接查询代替嵌套查询的,最终想用哪种方法实现查询由用户习惯决定。
(2)带有比较运算符的子查询。当子查询结果返回一个单值时,父查询和子查询之间可用比较运算符进行连接,可以用、=、、=、=、!=、等比较运算符。求解相关子查询不像求解普通子查询那样一次将子查询求解出来,然后求解父查询。内查询由于与外查询相关,必须反复求值。
(3)带有ANY和ALL谓词的子查询。若子查询结果返回一个集合时,就要使用
文档评论(0)