资源描述:
《10级《数据库系统》上机作业03—单号》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、10级《数据库系统》上机作业03—单号班级:学号:姓名:实验5SQL表中数据的连接查询1.实验目的(1)掌握SELECT语句在连接查询中的应用2.背景知识若查询涉及多个表,此时可以使用连接进行查询。连接查询是关系数据库中最主要的核心查询,包括普通连接和外连接查询。(1)普通连接普通连接操作只输出满足连接条件的元组,连接查询中用来连接两个表的条件称为连接条件或连接谓词,连接谓词中的列名称为连接字段,其一般格式为:[<表名1>.]<列名1><比较运算符>[<表名2>.]<列名2>连接条件中的各连接字段类型必须是可比的,但名称不必是相同的。且连接条件在
2、WHERE中。在连接查询中为了避免混淆,在属性名前面加上表名前缀。若没有指定两表的连接条件,则两表做广义笛卡尔积,即两表元组交叉乘积。其连接结果会产生一些没有意义的远祖。若在连接条件中的连接运算符是等号(=)则是等值连接,其中会有相同的重复属性列,如果去掉重复的属性,则是自然连接。连接不仅可以在两个不同的表中进行,也可以四一个表与其自身进行连接,这个称为自身连接,在实际查询中经常会用到;还可以是两个表以上的多表进行连接,称为多表连接。多数时候,WHERE子句中会有多个条件,称为复合条件连接。(2)外连接通常情况下,连接操作只有满足条件的元组才会作
3、为结果输出。外连接OuterJoin是参与连接的一方(左方或右方),即使不满足条件,也要出现在结果中。不满足条件的元组的另一方属性置空值NULL。左外连接LeftOuterJoin表示左面关系的所有元组将出现在结果中;右外连接RightOuterJoin表示右面关系的所有元组将出现在结果中;全外连接FullOuterJoin表示两面关系的所有元组将出现在结果中。(3)集合查询SELECT语句的查询结果是元组的集合,所以多个SELECT语句的结果可以进行集合操作。集合操作的种类主要有并操作UNION、交操作INTERSECT、差操作EXCEPT,参
4、加集合操作的各查询结果的列数必须相同;对应项的数据类型也必须相同。-4-10级《数据库系统》上机作业03—单号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)a)查询硬盘容量至少30GB的笔记本电脑制造商及该电脑的速度。b)查询制造商B生产的任意类型的所有产品的型号和价格。
5、c)查询只卖笔记本电脑不卖PC的厂商。!d)查询出现在两种或两种以上PC中硬盘的大小。!e)查询每对具有相同速度和RAM容量的PC型号。每一对只能列出一次,例如若(i,j)已被列出,则(j,i)就不能再被列出。!!f)查询生产至少两种速度至少3.0的电脑(PC或笔记本电脑)的厂商。-4-10级《数据库系统》上机作业03—单号实验6SQL表中数据的复杂查询1.实验目的(1)掌握SELECT语句在复杂查询中的应用2.背景知识在SQL语言中,一个SELECT-FROM-WHERE语句称为一个查询块。将一个查询块嵌套在另一个查询块的WHERE子句或HAV
6、ING短语的条件中的查询称为嵌套查询。在SQL语言中可以有多层嵌套查询,即一个子查询还可以嵌套另外一个子查询。特别要注意子查询不能有ORDERBY子句,只有在最外层的最终查询结果才可以使用ORDERBY子句进行排序。嵌套查询一般的求解方法是由里向外处理,即每一个子查询在其上一级查询处理之前求解,子查询结果用于建立其父查询的查询条件。嵌套查询可以使用多个简单查询嵌套成一个复杂的查询,这样通过层层嵌套的方法构造查询,提高SQL语言的查询能力。当目标中涉及的属性在同一个表中,就可以使用嵌套查询,需要注意的是连接查询和嵌套查询可以在一个查询中同时出现。(
7、1)带有IN谓词的子查询。在嵌套查询中,子查询的结果往往是一个集合,所以谓词IN是嵌套查询中最常用的谓词。当查询涉及多个关系时,用嵌套查询实现求解,层次清晰,易于构造,具有结构化程序的优点。有些嵌套查询可以用连接查询实现,有些则不行,对于可以用连接查询代替嵌套查询的,最终想用哪种方法实现查询由用户习惯决定。(2)带有比较运算符的子查询。当子查询结果返回一个单值时,父查询和子查询之间可用比较运算符进行连接,可以用>、>=、<、<=、=、!=、<>等比较运算符。求解相关子查询不像求解普通子查询那样一次将子查询求解出来,然后求解父查询。内查询由于与外查
8、询相关,必须反复求值。(3)带有ANY和ALL谓词的子查询。若子查询结果返回一个集合时,就要使用带有ANY或ALL谓词的比较运算符。表带