Download presentation
Presentation is loading. Please wait.
Published byVegar Mikalsen Modified 5年之前
1
資料庫系統 李翊豪 2017/12/21 Reference
2
第一節 第二節 第三節 Select from ( as , distinct, Arithmetic Operators )
Where + or + and + order by + in + between…AND… + like 第三節 運算 (SUM , avg , count , MAX , MIN) + Group by + having
3
第一節 Select from ( as , distinct , Arithmetic Operators)
4
Select from 電影訂票系統 電影資訊 MOVIE 戲院 演員 場次 會員 訂票紀錄 電影編號 電影名稱 英文名稱 發行公司 導演
片長 上映日期
5
SELECT * FROM movie SELECT 指定需要的欄位 FROM 資料表名稱
* = 選擇全部欄位
6
SELECT Name , shown_date FROM movie
SELECT 指定需要的欄位 FROM 資料表 SELECT Name , shown_date FROM movie
7
AS (Alias) => 替資料表或欄位名稱取一個別名。 DISTINCT => 過濾重複出現的資料。
Arithmetic Operators => 數學運算 AS (Alias、別名) (SQL Alias) 在 SQL 中我們可以替資料表或欄位名稱取一個別名 (Alias),這可以使名稱複雜的 SQL 查詢語句更易讀且可以有更直觀的查詢結果。 DISTINCT 一個資料表的某欄位中可能會有多個紀錄都是相同值的情況,在 SELECT 查詢語句中我們可使用 DISTINCT 關鍵字過濾重複出現的紀錄值。
8
SELECT Name as 電影名稱 , shown_date as 上映時間 FROM movie
SELECT 資料欄位 AS 資料欄位新名稱 FROM movie SELECT Name AS 電影名稱 , shown_date AS 上映時間 FROM movie
9
DISTINCT 過濾重複 SELECT company FROM movie
SELECT DISTINCT company as 發行公司 FROM movie SELECT DISTINCT 資料欄位 FROM movie SELECT company FROM movie SELECT DISTINCT company as 發行公司 FROM movie
10
Arithmetic Operators
11
ROUND() 四捨五入 FLOOR() 無條件捨去到整數
12
第二節 or and order by in & NOT IN BETWEEN … AND … Like & NOT LIKE
13
WHERE 想知道 ‘甲上’ 這間公司 發行過哪些電影 SELECT * FROM moive WHERE + 查詢條件的設定
SELECT * FROM 資料表 WHERE + 查詢條件的設定 SELECT * FROM movie WHERE company = ‘甲上’; 翻譯 在movie 這張資料表中 尋找(WHERE) company = ‘甲上’ 的資料 SELECT * FROM movie WHERE time_len = 120; 翻譯 在movie 這張資料表中 尋找(WHERE) time_len = 120 的資料
14
or 找電影的片長是120 或 86分鐘的 找華納兄弟這間發行公司 或 李安導演 拍過的電影
找華納兄弟這間發行公司 或 李安導演 拍過的電影 SELECT * FROM movie WHERE time_len = 120 OR time_len = 86; SELECT * FROM movie WHERE company = '華納兄弟' OR director = '李安';
15
and 想知道 2017年12月08號 華映發行了哪些電影 都要符合
SELECT * FROM movie WHERE shown_date = ' ' AND company = '華映'; 都要符合
16
order by SELECT * FROM 資料表 ORDER BY 資料欄位 [ASC|DESC] ORDER BY
Ascending => ASC (小到大) //預設 Descending => DESC (大到小) 可排序 時間、數字、英文……等等 SELECT * FROM 資料表 ORDER BY 要排序的資料欄位 ASC|DESC order by 依照某個欄位來作排序 我們可以將 SELECT 取得的資料集依某欄位來作排序,而排序分別可以由小至大 (ascending; 預設),或由大至小 (descending)
17
假如想對所有電影 排序他的上映時間
18
排序
19
英文 小到大 例如 ASCII的 A => 65 . Z => 90
20
In && NOT IN 使用在一組成員資料的比對條件設定 找電影長度120或86分鐘的電影 使用在一組成員資料的比對條件設定
IN 搭配 WHERE 子句可以用來限定必需符合某些欄位值為條件來搜尋資料表中的特定資料。
22
BETWEEN … AND … BETWEEN 是用來找某範圍內連續的值作為條件來搜尋資料表中的特定資料。
作為查詢範圍條件的欄位型態可為數值、日期或字串,其中字串是依照字母排列順序來界定範圍。
24
Like && NOT LIKE 找2016的電影 找9月出的電影
25
找13號出的電影 找不是2017出的電影
26
練習
27
1.查看所有學生的學號和姓名 2.顯示所有學生的 “學號” “性別” “身高” “體重” (請用中文別名)
28
3.查看105入學的學生”姓名” ”身分證號碼” “學年” 4.查看105 或 104 入學的學生”姓名” ”身分證號碼” “學年”
29
5. 查看104學年度入學的女同學 ”姓名” ”手機” “性別” “學年” 6
5.查看104學年度入學的女同學 ”姓名” ”手機” “性別” “學年” 6.顯示 身高大於175的男性 和 身高大於170的女性 “學號” “身高” “性別” (請依據身高由高到低排序)
30
7. 顯示 105 學年 A班 小於60公斤的男生 “學號” “生日” “體重” “性別” “學年” “班別” 8
7.顯示 105 學年 A班 小於60公斤的男生 “學號” “生日” “體重” “性別” “學年” “班別” 8.顯示 106 學年 B 班 身高是177 或 169 或 162 的同學 “姓名” “身高” (按照身高 高到低排序)
31
9. 顯示 104 學年 B 班 體重在50 – 60 之間的同學 “學號” “體重” (小到大 排序) 10
32
11.顯示 所有李同學和林同學的 “姓名” “電話” “學年” “班別” (以學年優先排序 次為班別 )
12.計算學號 M 的 BMI ( 體重(公斤) / 身高2(公尺2) ) “學號” “姓名” “BMI”
33
第三節 運算 (SUM , avg , count , MAX , MIN) Group by having
34
運算 (SUM , avg , count, MAX , MIN)
SUM() 函數用來計算一數值欄位的總合。 COUNT() 函數用來計算符合查詢條件的欄位紀錄總共有幾筆。 MAX() 函數用來取得特定欄位中的最大紀錄值。 MIN() 函數用來取得特定欄位中的最小紀錄值。
35
COUNT 搭配 DISTINCT 想知道 全部的發行公司有幾間 SELECT COUNT(Name) from movie;
36
159 子查詢 在所有電影中 找出撥放時間最長的電影
select Name , time_len from movie where time_len = (select MIN(time_len) from movie); 在所有電影中 找出撥放時間最短的電影
37
GROUP BY GROUP BY 敘述句搭配聚合函數 (aggregation function) 使用,是用來將查詢結果中特定欄位值相同的資料分為若干個群組,而每一個群組都會傳回一個資料列。 若沒有使用 GROUP BY,聚合函數針對一個 SELECT 查詢,只會返回一個彙總值。
38
舉華映為例子 將重複的資料組成一個群組 (華映) 對那個群組做SUM(time_len)
39
having HAVING 子句是用來取代 WHERE 搭配聚合函數 (aggregate function) 進行條件查詢,因為 WHERE 不能與聚合函數一起使用。 聚合函數指的也就是 AVG()、COUNT()、MAX()、MIN()、SUM() 等這些內建函數。 Select company , COUNT(company) AS 'count' from movie GROUP BY company HAVING COUNT(company) > 1 ;
40
練習
41
13.查看 105 學年 A班同學 總身高 14.查看 105 學年 A班所有男同學的平均身高
15.查看全校最高的在哪一個 “學年” “班別” 後面在顯示 “學號” “姓名” “身高”
42
16.查看 106 學年 A班有幾位同學 17.顯示各班人數 18.顯示平均身高 高於 160 的 班級 大到小排序
Similar presentations