第六章SQL进阶查询-联合大学.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章SQL进阶查询-联合大学

資料庫系統理論與實務-使用Oracle SQL 進階查詢 ▊ Data Query Language, DQL (資料查詢語言) DQL只有一個指令– Select,用以查詢資料庫的相關資料,語法如下: SELECT attribute list FROM table list WHERE condition GROUP BY grouping attributes HAVING grouping condition ORDER BY column name ASC/DESC SQL查詢語言由上述六個子句所組成,只有Select和From是必要的。 執行順序: FROM→WHERE →GROUP BY →HAVING →SELECT →ORDER BY ▊關聯查詢 因為資料庫設計與正規化的原因,單一資料庫表格的查詢似乎比較少,反而因為正規化把在單一表格分割成兩個或兩個以上的表格,所以原本可以在原單一表格中查詢到的資料,現在必須透過兩個或兩個以上的表格查詢才能得到,這種跨表格的查詢稱為關聯查詢。 卡笛生乘積(Cartesian Product) 卡笛生乘積實際上就是一種無條件Join的關聯,這種操作往往會產生大量的資料列,其結果並沒有太大的意義。因此在相關的關聯操作時,往往會加上限制條件,再進行關聯運算。 兩個表格的“卡笛生乘積”形式 SELECT 欄位名11, 欄位名12,…, 欄位名1m , 欄位名21, 欄位名22,…, 欄位名2n, FROM 表格名1, 表格名2 等值關聯(Equal Join) SELECT … FROM 表格名1, 表格名2 WHERE 表格名1.欄位名1 = 表格名2.欄位名2; 列出員工編號、員工姓名、部門名稱與部門所在地 非等值關聯 非等值關聯就是指關聯條件中不使用“ = ”運算子的關聯運算。非等值關聯能夠使用的比較運算子包括 != 、 、 、= 、= 、 BETWEEN… AND 和 LIKE 等。 列出員工編號、員工姓名,以及 “不屬於” 他的部門名稱與部門所在地 自身關聯 自身關聯可以把一個表格看成兩個完全相同的表格 (副本),然後再對這兩個表格在相關欄位上進行關聯,其關聯方式與多表格關聯完全相同。 如:員工vs.管理者、主課程vs.先修課程 表格自身關聯 SELECT … FORM 表格名 表格別名1, 表格名 表格 別名2 WHERE 表格別名1.欄位名1 = 表格別名2.欄位名2; 其中:欄位名1 和 欄位名2 標記自關聯表中的兩個不同欄位,這兩個欄位要求有相同的資料型態和寬度。 查詢每個員工其上司的姓名 關聯 (Join) 的標準語法: SELECT … FROM 表格名1 Join 表格名2 ON 表格名1.欄位名1 = 表格名2.欄位名2; 不過,經過分析,Join指令所執行的操作,其效率不如採用具相同查詢效果之一般Select查詢指令。因此,若非必要,不要採用Join之查詢語法。 外部關聯 外部關聯它不僅傳回兩個或兩個以上的表格中能夠完全匹配的資料列外,還傳回關聯表格中無法完全匹配的資料列。 Outer Join (外部關聯) 的種類 左外部關聯(Left Outer Join) 右外部關聯(Right Outer Join) 全外部關聯(Full Outer Join) 表格外部關聯指令 指令格式 1: SELECT … FROM 表格名1, 表格名2 WHERE 表格名1.欄位名1 = 表格名2.欄位名2 (+) | 表格名1.欄位名1 (+) = 表格名2.欄位名2; 指令格式 2: SELECT … FROM 表格名1 Left/Right/Full Outer Join 表格名2 ON 表格名1.欄位名1 = 表格名2.欄位名2; 先對表格emp插入一組資料 “Jacy” 以與下列的 “dept” 表格做測試 左外部關聯(Left Outer Join) 這個關聯運算會把「左方關聯表」的所有資料值輸出,如果左關聯表 R1 中找不到可匹配的 R2 值組時,則會以虛值(Null) 代替 R2 的值組再與 R1 的值關聯運算。 右外部關聯(Right Outer Join) 這個關聯運算會把「右方關聯表」的所有資料值輸出,如果右關聯表 R2 中找不到可匹配的 R1 值組時,則會以虛值(Null) 代替 R1 的值組再與 R2

文档评论(0)

busuanzi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档