10级《数据库系统》上机作业03—单号_第1页
10级《数据库系统》上机作业03—单号_第2页
10级《数据库系统》上机作业03—单号_第3页
10级《数据库系统》上机作业03—单号_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

10 级 数据库系统 上机作业 03 单号 1 班级 学号 姓名 实验 5 SQL 表中数据的连接查询 1 实验目的 1 掌握 SELECT 语句在连接查询中的应用 2 背景知识 若查询涉及多个表 此时可以使用连接进行查询 连接查询是关系数据库中最主要的核 心查询 包括普通连接和外连接查询 1 普通连接 普通连接操作只输出满足连接条件的元组 连接查询中用来连接两个表的条件称为连 接条件或连接谓词 连接谓词中的列名称为连接字段 其一般格式为 连接条件中的各连接字段类型必须是可比的 但名称不必是相同的 且连接条件在 WHERE 中 在连接查询中为了避免混淆 在属性名前面加上表名前缀 若没有指定两表 的连接条件 则两表做广义笛卡尔积 即两表元组交叉乘积 其连接结果会产生一些没有 意义的远祖 若在连接条件中的连接运算符是等号 则是等值连接 其中会有相同的 重复属性列 如果去掉重复的属性 则是自然连接 连接不仅可以在两个不同的表中进行 也可以四一个表与其自身进行连接 这个称为自身连接 在实际查询中经常会用到 还可 以是两个表以上的多表进行连接 称为多表连接 多数时候 WHERE 子句中会有多个条 件 称为复合条件连接 2 外连接 通常情况下 连接操作只有满足条件的元组才会作为结果输出 外连接 Outer Join 是 参与连接的一方 左方或右方 即使不满足条件 也要出现在结果中 不满足条件的元组 的另一方属性置空值 NULL 左外连接 Left Outer Join 表示左面关系的所有元组将出现 在结果中 右外连接 Right Outer Join 表示右面关系的所有元组将出现在结果中 全外 连接 Full Outer Join 表示两面关系的所有元组将出现在结果中 3 集合查询 SELECT 语句的查询结果是元组的集合 所以多个 SELECT 语句的结果可以进行集合 操作 集合操作的种类主要有并操作 UNION 交操作 INTERSECT 差操作 EXCEPT 参 加集合操作的各查询结果的列数必须相同 对应项的数据类型也必须相同 10 级 数据库系统 上机作业 03 单号 2 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 生产的任意类型的所有产品的型号和价格 c 查询只卖笔记本电脑不卖 PC 的厂商 d 查询出现在两种或两种以上 PC 中硬盘的大小 e 查询每对具有相同速度和 RAM 容量的 PC 型号 每一对只能列出一次 例如若 i j 已 被列出 则 j i 就不能再被列出 f 查询生产至少两种速度至少 3 0 的电脑 PC 或笔记本电脑 的厂商 10 级 数据库系统 上机作业 03 单号 3 实验 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 谓词的子查询 若子查询结果返回一个集合时 就要使用带 有 ANY 或 ALL 谓词的比较运算符 表 带有 ANY 和 ALL 谓词的比较运算符及其含义 运算符描述 ANY大于子查询结果中的某个值 ALL大于子查询结果中的所有值 ANY大于或等于子查询结果中的某个值 ALL大于或等于子查询结果中的所有值 ANY不等于子查询结果中的某个值 ALL不等于子查询结果中的任何一个值 ANY小于子查询结果中的某个值 ALL小于子查询结果中的所有值 ANY小于或等于子查询结果中的某个值 ALL小于或等于子查询结果中的所有值 ANY等于子查询结果中的某个值 ALL等于子查询结果中的所有值 通常没有实际意义 实际上用聚集函数实现子查询通常比直接用 ANY 或 ALL 查询效率要高 ANY ALL 谓词与聚集函数 IN 谓词的等价转换关系 或 ANY MAXMIN MIN ALL MINMAX MAX 10 级 数据库系统 上机作业 03 单号 4 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 注意 每题应当至少使用一个子查询 并且要求使用两种不同的方法写出每个查询 例如 使用不同运算符 EXISTS IN ALL 和 ANY

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论