第九章 進階的查詢技巧.

Slides:



Advertisements
Similar presentations
Data type P64 ‘’ 转义字符 P67 P68 EXE,选出某个教师的学生中最新的一 个,要姓名, ID (,LIMIT ) EXISTS,NOT EXISTS P409 Q,EXISTS 和 in 的区别( 1000 ,查询结果)
Advertisements

Java 技术与应用 数据库应用 ( 第 14 章 ) 西安交大 卫颜俊 2008 年 12 月 电子信箱: QQ: 网站 : /java.
《公路纵断面设计》 —— 纵断面设计的要求 道桥系 二○○七年五月. 纵断面设计的一般要求 1 .纵坡设计必须满足《公路工程技术标准》中的各项规定。 2 .为保证汽车能以一定的车速安全舒顺地行驶,纵坡应具有 — 定 的平顺性,起伏不宜过大及过于频繁。尽量避免采用极限纵坡 值.缓和坡段应自然地配合地形设置,在连续采用极限长度的.
LOGO 第 6 章 数据库规范化设计 孙焘. 重点: 三个范式的基本概念 1 概念模型 2 物理模型 3 多 framePowerDesigner 工具的使用页面设计 4.
强力推进 积极探索 努力提升计算机审计实施水平 AO案例和审计方法撰写介绍 曹红珍.
第6章 数据库管理软件Access 年秋.
城市绿化美化 第一模块 城市的园林美 制作人:许启德 湖南湘潭生物机电学校 1.
顧客交易紀錄分析實務 概述 26.2 資料分析的過程 26.3 顧客交易紀錄分析說明 26.4 實作一、顧客活動剖析實務演練
淘宝海量数据产品技术架构 张轩丞(朋春) 淘宝网-数据平台与产品部.
目 录 第 1 章 数据库技术基础 第 2 章 SQL Server基础 第 3 章 数据库管理 第 4 章 查询和视图
關聯查詢.
SQL的简单查询.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
第2章 SQL语言初步 2.1 SQL的基本概念 2.2 基本表、索引的创建、删除和修改操作 2.3 SQL的查询语句——SELECT
第2讲 Transact-SQL语言.
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
数据库技术 实践.
高等院校计算机教材系列 数据库原理与应用(第2版) 任课教师:刘雅莉
Chap 11 SQL基本查詢指令.
复习重点; 1. 关系模型、ER模型 2. SQL 3. 事务管理 4. 函数依赖与规范化 5. 数据库设计  复习题 一、单项选择题
第8章 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
作文教學變奏曲 在一個空桶裡舀水,只是枉然;在一頭公牛身上擠奶,則是危險;讓一個沒有話的人說話,那就是——作文!(史英)
文科计算机小公共课规划教材 Access 程序设计.
第一讲 数据查询优化.
《计算机应用基础》 第六章 Access数据库管理系统
第6章 数据展示和输出功能 创建和使用报表 报表(Report)是以打印格式展示数据的一种有效方式。在报表中,可以展示图形、文字标题、字段数据或汇总数据等形式的信息,并可以控制各种数据的大小和外观。 利用报表,还可以按照数据之间的逻辑关系和所需的方式来组织数据之间的排版布局,对数据进行多级汇总和统计,或以图形方式展示数据。
软件设计师培训.
第3章 数据查询与SQL命令.
第5讲 分组查询 IBM Confidential.
查询数据.
關聯式資料庫.
Access 2007 進銷存管理系統實作 文魁資訊股份有限公司.
Chap 5 關聯式代數與計算.
9 SELECT敘述的進階查詢 9-1 SQL的多資料表查詢 9-2 合併查詢 9-3 集合運算查詢 9-4 子查詢
課程名稱:資料庫系統 授課老師:李春雄 博士
第八章 利用SELECT查詢資料.
彰化縣政府補助辦理網頁設計資料庫應用班 ASP與資料庫介紹 建國技術學院資管系 饒瑞佶.
第三章 数据库和表的操作.
SQL Server 2000 数据库入门.
第3章 MySQL教學範本 主從式資料庫系統 - CH3.
实验 2:MS Access QBE Query使用
Skew Join相关论文 报告人:蔡珉星 厦大数据库实验室
国家“十一五”规划教材 数据库原理与应用教程(第3版).
SQL SERVER 一些经典语句 1.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
MySQL 結構化查詢語言 MySQL.
第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.
第十二章 SQL語言簡介 講授大綱: 新增資料庫 新增資料表 新增資料 修改資料 刪除資料 查詢資料 透視ASP.NET-第12章
SQL Injection (資料隱碼) 學生:a 吳倩瑜 指導教授:梁明章.
網路遊戲版 幸福農場168號.
<title> XML與XQuery ,新一代資料儲存標準 </title>
数据库技术.
第18章 SQL結構化查詢語言 18-1 SQL語言的基礎 18-2 SQL的查詢指令 18-3 SQL子查詢與合併查詢.
資料庫系統 李翊豪 2017/12/21 Reference
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
学习目标 1、什么是表连接 2、表连接类型 3、表连接区别.
查询与视图 蔡海洋.
第14章 SQL数据查询与操纵 内容提要 本章知识点
SQL查询语句 蔡海洋.
附錄D Access應用說明 主從式資料庫系統 - 附錄D.
國二EXCEL專案 上機考試版本: 主講者:黃韋欽 老師 考試者:國二全體學生.
8 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
資料庫系統  Database System 施莉萍 2017/12/28.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
数据分析工具 第10节.
模块六 数据库管理软件——Access 2010.
資料庫應用與實作 一到六章重點、習題.
第4章 数据查询.
第 9 章 查詢資料- 善用 SELECT 敘述.
Presentation transcript:

第九章 進階的查詢技巧

章節概覽 分組指令GROUP BY 關連兩個以上的資料表:JOIN指令 利用UNION合併多個查詢結果 次查詢

9.1 分組指令GROUP BY GROUP BY是選定某個欄位做分組的動作

GROUP BY語法 SELECT 欄位名稱1,集總函數名稱 FROM 資料表GROUP BY 欄位 名稱1 一般會配合彙總函數,彙總函數: 會執行一組值的計算並傳回單一值。除了 COUNT 以外,彙總 函數會忽略所有 Null 的值。 AVG COUNT MAX MIN STDEV SUM VAR

GROUP BY例子 SELECT orderid,SUM(quantity) AS 總數量 範例9-1 SELECT orderid,SUM(quantity) AS 總數量 FROM [Order Details] GROUP BY orderid

GROUP BY與WHERE、HAVING(1/2) 範例9-3 WHERE指令要寫在GROUP BY指令的前面 SELECT OrderID,SUM(Quantity) AS 總數量 FROM [Order Details] WHERE OrderID = 10248 GROUP BY OrderID

GROUP BY與WHERE、HAVING(2/2) 範例9-4 HAVING是尋找集總函式欄位的值 SELECT OrderID,SUM(Quantity) AS 總數量 FROM [Order Details] GROUP BY OrderID HAVING SUM(Quantity)> 30

GROUP BY與WITH ROLLUP (1/2) SELECT OrderID,ProductID,SUM(Quantity) AS 總數量 FROM [Order Details] GROUP BY OrderID,ProductID WITH ROLLUP 範例9-5

GROUP BY與WITH ROLLUP (2/2) SELECT OrderID,ProductID,SUM(Quantity) AS 總數量 FROM [Order Details] GROUP BY OrderID,ProductID + SELECT OrderID,SUM(Quantity) AS 總數量 FROM [Order Details] GROUP BY OrderID SELECT SUM(Quantity) AS 總數量 FROM [Order Details]

GROUP BY與WITH CUBE (1/2) SELECT OrderID,ProductID,SUM(Quantity) AS 總數量 FROM [Order Details] GROUP BY OrderID,ProductID WITH CUBE 範例9-6

GROUP BY與WITH CUBE (2/2) WITH CUBE等於下列指令相加 SELECT OrderID,ProductID,SUM(Quantity) AS 總數量 FROM [Order Details] GROUP BY OrderID,ProductID + SELECT OrderID,SUM(Quantity) AS 總數量 FROM [Order Details] GROUP BY OrderID SELECT ProductID,SUM(Quantity) AS 總數量 FROM [Order Details] GROUP BY ProductID SELECT SUM(Quantity) AS 總數量 FROM [Order Details]

9.2 關連兩個以上的資料表:JOIN指令 INNER JOIN OUTER JOIN RIGHT OUTER JOIN LEFT OUTER JOIN FULL OUTER JOIN SELF JOIN

9.2.1 INNER JOIN 的使用(1/2) 將兩個資料表間相同key值的資料取出 SELECT 欄位 FROM 資料表A INNER JOIN 資料表B ON 資料表A.欄位值一=資料表B.欄位值二

INNER JOIN 的使用(2/2) 將相同導師編號的學生資料取出 SELECT 學號,學生姓名,導師姓名 FROM 學生 ON 學生.導師編號 = 導師.導師編號 課本P.9.10

9.2.2 OUTER JOIN 的使用(1/2) 不管兩個資料表間有無相同key值資料,選擇將其 中一邊資料表的資料取出 分為LEFT與OUTER和FULL OUTER JOIN SELECT 欄位 FROM 資料表A LEFT OUTER JOIN 資料表B ON 資料表A.欄位值一=資料表B.欄位值二 SELECT 欄位 FROM 資料表A RIGHT OUTER JOIN 資料表B ON 資料表A.欄位值一=資料表B.欄位值二 SELECT 欄位 FROM 資料表A FULL OUTER JOIN 資料表B ON 資料表A.欄位值一=資料表B.欄位值二

OUTER JOIN 的使用(2/2) 不管兩個資料表間有無相同key值資料,選擇將其 中一邊資料表的資料取出 課本 P.9-14 SELECT 導師.導師編號,導師姓名,學生姓名 FROM 學生 RIGHT OUTER JOIN 導師 ON 學生.導師編號 = 導師.導師編號

9.2.3 SELF JOIN 的使用 資料表對自己做JOIN的工作 擅用資料表別名(Alias)的觀念 SELECT a.學號,a.學生姓名,b.學號,b.學生姓名,a.興趣 FROM 學生 a INNER JOIN 學生 b ON a.興趣 = b.興趣 AND a.學號 <> b.學號 範例9-13

9.3 利用UNION合併多個查詢結果 UNION: 主要是將兩個相同欄位的不同名稱資料表聯結在 一起 兩個資料表的欄位定義與資料型別要相同 SELECT * FROM CustomerMexico UNION SELECT * FROM CustomerGermany 思考:重覆資料會顯示幾次?

9.4 次查詢 一行查詢指令有可能會有一個以上的SELECT指令 找出和 King先生所住的城市是同樣的員工有哪些? SELECT * FROM Employees WHERE City= (King先生所居住的城市) 變成次查詢的寫法: SELECT * FROM Employees WHERE City= (SELECT City FROM Employees WHERE LastName ='King')

最常用的次查詢指令 需要兩個SELECT指令,甚至三個 SELECT指令, 才能完成全部的查詢 USE pubs SELECT title, price, (SELECT AVG(price) FROM titles) AS 平均,price-(SELECT AVG(price) FROM titles) AS 差異 FROM titles WHERE type='popular_comp'

學習成果回顧 可以利用GROUP BY將指定欄位做分組,並計算出 集總函式所得到的值 GROUP BY後面可以利用WITH CUBE或WITH ROLLUP ,將可能的情況都抓取出來 可以利用JOIN將兩個以上的資料表關連在一起 SubQuery次查詢方便你將多個查詢指令,合成一個 查詢指令來寫