Microsoft PowerPoint - SQL 的查詢語言(ccchen).ppt

Similar documents
840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

Microsoft PowerPoint - 008_第八章 合併理論與實作(ccchen).ppt

Microsoft PowerPoint - 資料庫程式設計教材.pptx

ACI pdf

Microsoft PowerPoint - ASP_NET_09

(Microsoft PowerPoint - PHP_Ch12 [\254\333\256e\274\322\246\241])

! "#$%& $()*+#$, $(-.&,./.+#/(-.&01( &-#&(&$# (&2*(,#-3.,14& $ +()5(*-#5(-#/-/#(-1#&-+)(& :;<<= > A B?

HTML網頁基礎語言

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

幻灯片 1

四川省普通高等学校

DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( ) SQL ( ) DB2 SQL DB2 DB2 SQL DB2 DB2 SQL DB2 ( DB2 ) DB2 DB2 DB2 SQL DB2 (1) SQL (2) S

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

untitled

Microsoft PowerPoint - sql2005_ch08.ppt

使用手冊

Microsoft PowerPoint - SAGE 2010

Microsoft Word - ACI chapter00-1ed.docx

基本數學核心能力測驗_行為觀察記錄紙_G2版本

投影片 1

Microsoft Word 電腦軟體設計.doc

汇集全球21位医生的经验和智慧,总结出最实用的专业建议,这些都是最值得你牢记的健康提醒

1 行 业 发 展 不 平 衡 我 国 房 地 产 中 介 服 务 业 起 步 较 晚, 专 业 分 工 程 度 和 国 外 发 达 国 家 相 比 还 有 很 大 差 距 房 地 产 中 介 服 务 行 业 的 发 展 水 平 与 房 地 产 开 发 行 业 的 市 场 化 水 平 密 切 相 关

2016 年 地 质 工 程 系 教 学 工 作 安 排 2016 学 年 我 系 将 在 总 结 过 去 工 作 的 基 础 上, 结 合 今 年 学 院 以 抓 质 量 强 内 涵 促 改 革 调 结 构 建 品 牌 细 管 理 重 过 程 为 宗 旨, 以 规 范 管 理 深 化 内 涵 为

<4D F736F F D203136BCADBBD8D2E4D3EBD1D0BEBF2E646F63>


Microsoft Word - 9pinggb_A4.doc

Microsoft Word - 9pinggb_A4-f4.doc

理 论 探 索 事 业 单 位 改 革 的 五 点 思 考 余 路 [ 摘 要 ] 事 业 单 位 改 革 是 中 国 改 革 的 重 要 环 节, 其 影 响 力 和 难 度 不 亚 于 国 有 企 业 改 革 本 文 着 重 围 绕 推 进 事 业 单 位 改 革 应 考 虑 的 五 个 方 面

2深化教育教学改革、创新人才培养模式

Microsoft Word - 9pinggb_let.doc

实 习 上 下 点 表 格 解 释 和 相 关 纪 律 要 求 : 1 表 格 中 所 有 名 词 都 为 简 称, 包 括 医 院 名 称 四 年 级 五 年 级 各 专 业 名 称 等 所 有 时 间 都 为 学 生 装 好 行 李 出 发 时 间, 请 提 前 0 分 钟 将 行 李 运 到

简报158期.doc

Microsoft Word - 9pingb5_let.doc

退休權益.ppt [相容模式]

Microsoft Word - 1.《國文》試題評析.doc

$%%& ()*+, %&, %-&&%%,. $ %,, $,, & /$- 0(1 $%%& %& 234 %-%, 5&%6&633 & 3%%, 3-%, %643 -%%% :::; 7<9; %-%, 3$%$ :::;

# $# #!# # # # # # # %# # # &# # # # #! "

上海浦~1

从 宾 馆 到 又 一 城 是 十 五 分 钟, 从 又 一 城 到 邵 逸 夫 是 十 分 钟, 去 时 一 路 上 坡 很 辛 苦, 回 时 一 路 下 坡 很 轻 松, 很 像 上 小 学 时 的 心 情, 这 是 最 初 几 天 最 深 的 感 受 有 段 时 间 很 少 走 校 内 的 路

合金投资年报正文.PDF

Microsoft Word - _m30.doc


PowerPoint Presentation

封面-12

习题1

投影片 1

礼仪玉和葬玉

Excel VBA Excel Visual Basic for Application

Microsoft Word 養生與保健_中山大學_講義


萬里社區老人健康照護手冊

Microsoft Word - 強制汽車責任保險承保及理賠作業處理辦法 doc

Microsoft Word - 06.Understanding of Pregnancy and Birth.doc

(➂)11. 炎 炎 夏 日, 即 使 下 起 滂 沱 大 雨, 都 消 除 不 了 令 人 心 煩 的 暑 氣 這 句 話 主 要 想 表 達 什 麼? ➀ 夏 日 裡 經 常 下 著 滂 沱 大 雨, 令 人 心 煩 ➁ 下 著 滂 沱 大 雨 的 日 子, 可 以 消 除 暑 氣 ➂ 夏 日

範本檔

附 件 一 : 办 理 集 中 式 银 期 转 账 业 务 网 点 名 单 序 号 地 区 网 点 名 称 地 址 联 系 人 电 话 23 工 商 银 行 安 徽 省 铜 陵 百 大 支 行 铜 陵 市 长 江 东 路 50 号 鲁 桂 珍 工 商 银 行 安 徽

2. 二 年 級 吳 毓 秀 老 師 : 感 謝 午 餐 公 司 平 時 均 能 準 時 送 餐, 但 希 望 能 不 要 使 用 加 工 品, 且 學 生 反 映 希 望 能 多 加 蛋 品 的 食 物 3. 三 年 級 柯 阿 青 老 師 : 雞 肉 有 血 水 味, 請 午 餐 公 司 能 調

高雄市立五福國民中學九十四學年度第一學期第三次段考二年級本國語文學習領域試題卷

台北老爺校外實地參訪結案報告

糖尿病食譜

,,,,,,, (,, ),,,,,,,,,,,,,,, ,,, 4 11,, ( ),,,, ( ), :, ( ),,, 1995, 66 ; ( ),, 1996, , 3-4,,


人 物 春 秋 杨 永 泰 将 其 削 藩 策 略 概 括 为 : 以 经 济 方 法 瓦 解 冯 玉 祥 的 第 二 集 团 军, 以 政 治 方 法 解 决 阎 锡 山 的 第 3 集 团 军, 以 军 事 方 法 解 决 李 宗 仁 的 第 四 集 团 军, 以 外 交 方 法 对 付 张 学


Microsoft Word - 手冊.docx

Chapter 8

資料結構之C語言重點複習

# # # # # # = #, / / / / # 4 # # # /# 02-1 / 0 /? / 0 / 0? # # / >

epub 61-6


3 Driver do Microsoft Access (*.mdb) hisdata IFIX 1.4

Transcription:

SQL 的查詢語言

查詢的基本語法 SELECT SELECT [* [* DISTINCT DISTINCT Top Top n] n] < 欄位串列欄位串列 > FROM FROM ( 資料表名稱 ( 資料表名稱 {< {< 別名別名 >} >} JOIN JOIN 資料表名稱資料表名稱 )) [WHERE [WHERE < 條件式條件式 >] >] [GROUP [GROUP BY BY < 群組欄位群組欄位 > ] ] [HAVING [HAVING < 群組條件群組條件 >] >] [ORDER [ORDER BY BY < 欄位欄位 > [ASC [ASC DESC]] DESC]] 說明說明 1. Select 後面要接所要列出的欄位名稱 2. [* Distinct Topn] 中括號的部份可以省略 (1) * 表示列印出所有的欄位 ( 欄位 1, 欄位 2,, 欄位 n) (2) Distinct 代表從資料表中選擇不重複的資料 它是利用先排序來檢查是否有重複 (3) Top n 指在資料表中取出名次排序在前的 n 筆記錄

查詢的基本語法 < 續 > 說明說明 3. From 後面接資料表名稱, 它可以接一個以上的資料表 4. Where 後面要接條件式 ( 它包括了各種運算子 ) 5. Group By 欄位 1, 欄位 2,, 欄位 n [Having 條件式 ] (1) Group By 可單獨存在, 它是將數個欄位組合起來, 以做為每次動作的依據 (2) [Having 條件式 ] 是將數個欄位中加以有條件的組合 它不可以單獨存在 6. Order By 欄位 1, 欄位 2,, 欄位 n [Asc Desc] 它是依照某一個欄位來進行排序 例如 :(1): ORDER BY 成績 Asc 可以省略 ( 由小至大 ) (2) ORDER BY 成績 Desc 不可以省略 ( 由大至小 )

使用 Select 子句 定義定義 Select 是指在資料表中, 選擇全部全部或部份欄位部份欄位顯示出來, 這就是所謂的 投影運算 格式格式 Select 欄位串列 From 資料表名稱 查詢全部欄位 如果沒有指定欄位沒有指定欄位的話, 我們可以直接利用星號 * 代表所有的欄位名稱所有的欄位名稱 優點優點 不需輸入全部不需輸入全部的欄位名稱

[ 實例 ] 在 學生資料表 中顯示 所有學生基本資料所有學生基本資料 解答解答 SELECT * FROM 學生資料表 1 2 與 1 有相同的結果 SELECT 學號, 姓名, 系碼 FROM 學生資料表

查詢指定欄位 ( 垂直篩選 ) 定義定義 由於上一種方法, 只能直接選擇全部的欄位直接選擇全部的欄位資料, 無法顧及隱藏私人 資料及自行調整欄位順序自行調整欄位順序的問題, 因此, 我們利用指定欄位來查詢指定欄位來查詢資 料

[ 實例 ] 在 學生資料表 中查詢所有學生的 姓名及系碼姓名及系碼 解答解答 SELECT 姓名, 系碼 FROM 學生資料表 欄位與欄位名稱之間, 必 須要以逗號, 隔開 說明 : 在 學生資料表 中將 姓名 及 系碼 姓名 及 系碼 投射出來

使用 比較運算子 如果我們所想要的資料所想要的資料是要是要符合某些條件, 而不是全部的資料而不是全部的資料時時, 那就必須要在 Select 子句中再使用 Where 條件式即可 並且也可以配合 使用 比較運算子比較運算子 來搜尋資料 若 來搜尋資料 若條件式成立條件式成立的話則會傳回 True( 真 ), 若不成立若不成立的話則會傳回 False( 假 ) Select 欄位集合 From 資料表名稱 Where 條件式 運算子 功能 例子 條件式說明 = ( 等於 ) 判斷 A 與 B 是否相等 A=B 成績 =60 <> ( 不等於 ) 判斷 A 是否不等於 B A<>B 成績 <>60 < ( 小於 ) 判斷 A 是否小於 B A<B 成績 <60 <= ( 小於等於 ) 判斷 A 是否小於等於 B A<=B 成績 <=60 > ( 大於 ) 判斷 A 是否大於 B A>B 成績 >60 >= ( 大於等於 ) 判斷 A 是否大於等於 B A>=B 成績 >=60

查詢滿足條件的值組 ( 水平篩選 ) 定義定義 當我們所想要的資料所想要的資料是要是要符合某些條件, 而不是全部的資料而不是全部的資料時時, 那就 必須要在 Select 子句中再使用 Where 條件式即可 優點優點 1. 可以依照使用者的需求來查詢 2. 資訊較為集中

[ 實例 ] 在 選課資料表 中查詢修課號為 C005 的學生的 學號及成績 解答解答 SELECT 學號, 成績 FROM 選課資料表 WHERE 課號 ='C005'

[ 實例 ] 在 選課資料表 中查詢任何課程成績 不及格 60 的學生的 學號 課程代號及成績 解答解答 SELECT 學號, 課號, 成績 FROM 選課資料表 WHERE 成績 <60 60 分 是數值資料 不須要加 左右單引 號

使用 邏輯運算子 在 Where 條件式中除了可以設定 比較運算子 之外, 還可以設定 邏輯運算子 來將數個來將數個 比較運算子 條件組合起來, 成為較複雜的條件式 運算子 And( 且 ) Or( 或 ) Not( 反 ) 功能 判斷 A 且 B 兩個條件式是否皆成立 判斷 A 或 B 兩個條件式是否有一個成立 非 A 的條件式 條件式說明 成績 >=60 And 課程代號 ='C005' 課程代號 ='C004' Or 課程代號 ='C005' Not 成績 >=60

IS NULL( 空值 ) 定義定義 NULL 值是表示沒有任何的值 ( 空值 ),, 在一般的資料表中有些欄位中並 實例 1 沒有輸入任何的值 例如 : 學生月考缺考, 使得該科目成績是空值 在 選課資料表 中查詢那些學生 缺考 的 學號 課號及成績 解答解答 SELECT 學號, 課號, 成績 FROM 選課資料表 WHERE 成績 IS NULL 設定 IS NULL 條件, 其回傳的值 True 或 False 注意 : 這裡的 IS 不能用等號 (=) 代替它

[ 實例 2] 在 選課資料表 中查詢那些學生 沒有缺考 的 學號 課號及成 績 解答解答 SELECT 學號, 課號, 成績 FROM 選課資料表 WHERE 成績 IS NOT NULL 設定 IS NOT NULL 條件

使用 模糊條件與範圍 定義定義 在 Where 條件式中除了可以設定 比較運算子 比較運算子 與 邏輯運算 邏輯運算 子 之外, 還可以設定 模糊或範圍條件 來查詢模糊或範圍條件 來查詢 例如例如 奇摩的搜尋網站, 使用者只要輸入某些關鍵字, 就可以即時查 詢出相關的資料 其常用的模糊或範圍運算子模糊或範圍運算子如表所示 : 運算子 功能 1. Like 模糊相似條件 2. IN 集合條件 3. Between And 範圍條件 條件式 Where 系所 LIKE ' 資管 %' Where 課程代號 IN('C001','C002') Where 成績 Between 60 And 80

Like 模糊相似條件 定義定義 LIKE 運算子利用萬用字元 (% 及 _ ) 來比較相同的內容值 (1) 萬用字元 (%) 百分比符號代表零個或一個以上的任意字元 ; (2) 萬用字元 ( _ ) 底線符號代表單一個數的任意字元 注意事項注意事項 Like 模糊相似條件的萬用字元之比較 撰寫 SQL 語法環境 Access 比對一個字元? _ SQL Server 比對多個字元 * % 比對一個數字 # # 包含指定範圍 [A-C] 代表包含 A 到 C 的任何單一字元 排除包含指定範圍 [^A-C] 代表排除 A 到 C 的任何單一字元

實例 1 在 學生資料表 中查詢姓名開頭姓 李 的學生基本資料 解答解答 SELECT * FROM 學生資料表 WHERE 姓名 Like ' 李 *'

實例 2 在 學生資料表 中查詢姓名開頭姓 李 或 王 的學生基本資料 解答解答 SELECT * FROM 學生資料表 WHERE 姓名 姓名 Like '[ 李王 ]*';

IN 集合條件 定義定義 IN 為集合運算子, 只要符合集合之其中一個元素, 將會被選 取 使用時機使用時機 篩選的對象是兩個或兩個以上 實例 1 在 選課資料表 中查詢學生任選一個 課程代號為 C004 或課程代號 為 C005 的學生的 學號 課號及成績 解答 SELECT 學號, 課號, 成績 FROM 選課資料表 WHERE 課號 In ('C004','C005')

實例 2 請在 學生資料表 中, 列出學號為 S0001~S0003 的同學之 學號, 姓名及系碼 解答 SELECT 學號, 姓名, 系碼 FROM 學生資料表 WHERE 學號 In ('S0001', 'S0002', 'S0003')

Between/And 範圍條件 定義定義 Between/And 是用來指定一個範圍, 表示資料值必須在最小值 ( 含 ) 與最 大值 ( 含 ) 之間的範圍資料 註註 : 等同於 大於最小值 And 小於最大 值 實例實例 在 選課資料表 中查詢成績 60 到 90 之間的學生的 學號 課號及成績 解答 SELECT 學號, 課號, 成績 FROM 選課資料表 WHERE 成績 Between 60 And 90 參見 7-1.2 等同於 成績 >=60 And 成績 <=90

使用 聚合函數 定義定義 在 SQL 中提供聚合函數聚合函數來讓使用者來讓使用者統計統計資料表中數值資料的資料表中數值資料的最大值 最 小值 平均值及合計值等等 其常用的聚合函數的種類如表所示 : Count(*) 聚合函數 Count( 欄位名稱 ) Avg Sum Max Min 計算個數函數 說明 計算該欄位名稱之不具 NULL 值列的總數 計算平均函數 計算總合函數 計算最大值函數 計算最小值函數

記錄筆數 (Count) 定義定義 COUNT 函數是用來計算橫列記錄的筆數 實例 1 在 學生資料表 中查詢目前選修課程的全班人數 解答 SELECT Count(*) AS 全班人數 FROM 學生資料表

平均數 (AVG) 定義定義 AVG 函數用來傳回一組記錄在用來傳回一組記錄在某欄位內容值某欄位內容值中的中的平均值平均值 實例實例 在 選課資料表 中查詢有選修 課程代號為 C005 的全班 平均成績 解答 SELECT AVG( 成績 ) AS 資料庫平均成績 FROM 選課資料表 WHERE 課號 ='C005'

總和 (Sum) 定義定義 SUM 函數是用來傳回一組記錄在某欄位內容值的總和 實例實例 在 選課資料表 中查詢有選修 課程代號為 C005 的全班 總成績 解答 SELECT SUM( 成績 ) AS 資料庫總成績 FROM 選課資料表 WHERE 課號 ='C005'

最大值 (Max) 定義定義 MAX 函數用來傳回一組記錄在某欄位內容值中的最大值 實例實例 在 選課資料表 中查詢有選修 課程代號為 C005 的全班 成績最高分 解答 SELECT MAX( 成績 ) AS 資料庫最高分 FROM 選課資料表 WHERE 課號 ='C005'

最小值 (Min) 定義定義 MIN 函數用來傳回一組記錄在某欄位內容值中的最小值 實例實例 在 選課資料表 中查詢有選修 課程代號為 C005 的全班 成績最低分 解答 SELECT MIN( 成績 ) AS 資料庫最低分 FROM 選課資料表 WHERE 課程代號 ='C005'

使用 排序及排名次 定義定義 雖然撰寫 來查詢所須的資料非常容易, 但如果顯示的結果筆數 非常龐大而沒有按照某一順序及規則來顯示, 可能會顯得非常混亂非常混亂 還 好 還有提供排序的功能 其常用的排序及排名次的子句種類如表所示 : 排序及排名次指令 ORDER BY 成績 Asc ORDER BY 成績 Desc Top N Top N Percent 說明 Asc 可以省略 ( 由小至大 ) < 預設模式 > Desc 不可以省略 ( 由大至小 ) 取排名前 N 名 取排名前 N% 名

Asc 遞增排序 定義定義 資料記錄的排序方式是資料記錄的排序方式是由小至大排列由小至大排列 實例實例 在 選課資料表 中查詢在 選課資料表 中查詢全班成績由低到高分排序 解答 SELECT 學號, 課號, 成績 FROM 選課資料表 ORDER BY 成績 Asc

Desc 遞減排序 定義定義 資料記錄的排序方式是資料記錄的排序方式是由大至小排列由大至小排列 實例實例 在 選課資料表 中查詢的全班成績在 選課資料表 中查詢的全班成績由高到低分排序 解答 SELECT 學號, 課號, 成績 FROM 選課資料表 ORDER BY 成績 DESC

比較複雜的排序 定義定義 指定指定一個欄位以上一個欄位以上來做排序做排序時時, 則先以第一個欄位優先排序則, 當資料相同時, 則再進行則進行第二個欄位進行排序, 依此類堆 實例實例 在 選課資料表 中查詢結果按照在 選課資料表 中查詢結果按照學號學號昇冪排列昇冪排列之後, 再依 成績昇冪排列昇冪排列 解答 SELECT 學號, 課號, 成績 FROM 選課資料表 ORDER BY 學號, 成績 欄位名稱之間必須要以,( 逗點 ) 來做區隔 依學號低 高 依成績低 高 依學號 未依成績

使用 群組化 定義定義 利用 SQL 語言, 我們可以將某些特定欄位的值特定欄位的值相同的記錄相同的記錄全部組合 起來, 以進行群組化, 接著就可以在這個群組內求出各種統計分析各種統計分析 語法語法 Group By 欄位 1, 欄位 2,, 欄位 n [Having 條件式 ] (1)Group By 可單獨存在, 它是將數個欄位組合數個欄位組合起來, 以做 為每次動作的依據每次動作的依據 (2) [Having 條件式 ] 是將數個欄位中以有條件的組合有條件的組合 它不可以單獨存在不可以單獨存在 (3) WHERE 子句與 HAVING 子句之差別 執行順序 聚合函數 WHERE 子句 GROUP BY 之前 不能使用聚合函數 HAVING 子句 GROUP BY 之後 可以使用

Group By 欄位 定義定義 Group By 可單獨存在, 它是將數個欄位組合起來, 以做為 語法語法 每次動作的依據 Select 欄位 1,, 欄位 2,, 聚合函數運算 From 資料表 Where 過濾條件 Group By 欄位 1,, 欄位 2

[ 實例 1] 在 選課資料表 中, 查詢每一位同學各選幾門科目 解答解答 註 在 Select 所篩選的非聚合函數非聚合函數 例如 : 學號, 一定會在 Group By 後出現 SELECT 學號, Count(*) AS 選科目數 FROM 選課資料表 GROUP BY 學號

[ 實例 2] 在 選課資料表 中計算每一位同學所修之科目的平均成績 解答解答 SELECT 學號, AVG( 成績 ) AS 平均成績 FROM 選課資料表 GROUP BY 學號

Having 條件式 定義定義 Having 條件式是將數個欄位中以有條件的組合 它不可以單獨存在 實例 1 在 選課資料表 中, 計算所修之科目的平均成績, 大於等 解答解答 於 70 者顯示出來 SELECT 學號, AVG( 成績 ) AS 平均成績 FROM 選課資料表 GROUP BY 學號 HAVING AVG( 成績 )>=70

[ 實例 2] 在 選課資料表 中, 將選修課程在二科及二科以上的學生學號資料列 出來 解答解答 SELECT 學號, Count(*) AS 選修數目 FROM 選課資料表 GROUP BY 學號 HAVING COUNT(*)>=2