Professional Documents
Culture Documents
D-1 認識 SQL 查詢
1. 以瀏覽器開啟 http://localhost/phpMyAdmin,並登入系統,在左窗格點按要
查詢的資料庫,在此我們選擇 [students (1)],接著會顯示如下畫面,請點取
[查詢視窗] 鈕。
D-2
D SQL 查詢
1. 輸入 SQL 指令
2. 點按此鈕
3. 執行結果如下圖所示:
執行 SQL 指令花費的時間
這是執行的
SQL
指令
視篩選出來的記錄
您可以在此設定如何檢
SQL
指令篩選出來的結果
D-3
D-2 篩選記錄
SELECT 欄位名稱
FROM 資料表名稱
[WHERE 搜尋子句]
[ORDER BY 排序子句 {ASC|DESC}]
從 grade 資料表篩選出所有記錄的所有欄位:
D-4
D SQL 查詢
【提示】
這個 SQL 指令的語法如下:
D-5
D-2-1 SELECT ... FROM ... WHERE ... 語法 (篩選)
比較運算子 說明 邏輯運算子 說明
= 等於 如果運算元均為 TRUE,傳回 TRUE,
AND
< 小於 否則傳回 FALSE。
> 大於 如 果 任 一 運 算 元 為 TRUE , 傳 回
OR
<= 小於等於 TRUE,否則傳回 FALSE。
>= 大於等於
如果運算元為 TRUE,傳回 FALSE,
!= NOT
不等於 否則傳回 TRUE。
<>
SELECT name, chinese, math FROM grade WHERE chinese > 90 OR math > 90
SELECT * FROM grade WHERE chinese < 90 AND (math > 90 OR nature > 90)
D-6
D SQL 查詢
WHERE 條件子句亦接受如下句型:
如果資料的範圍為文字字串,那麼千萬別忘了在字串的前後加上單引號 ('),
例如:
D-7
D-2-2 SELECT ... FROM ... ORDER BY ... 語法 (排序)
有時我們會需要將篩選出來的記錄依照遞增或遞減順序來進行排序,舉例來說,
假設要依照國語成績由低到高的遞增順序來進行排序,那麼得加上 ORDER BY 排
序子句:
事實上,我們也可以根據不只一個欄位來進行排序,舉例來說,假設要先依照
chinese 成績的高低進行遞減排序,再依照 math 成績的高低進行遞減排序,那麼
可以寫成如下:
從 grade 資料表篩選
出所有欄位,然後
將 chinese、math、
nature 三個欄位相
加後的分數產生為
新的 total 欄位,再
依照 total 欄位由高
到低進行排序。
D-8
D SQL 查詢
【提示】
這個 SQL 指令的寫法如下:
從 grade 資 料 表 篩 選 出
name、math、nature 三個
欄位,然後將 math、nature
兩個欄位相加後的分數
產生為新的 logic 欄位,再
將 logic 欄位在 165 分以上
者依照 math 分數由高到
低進行排序。
【提示】
這個 SQL 指令的寫法如下:
D-9
D-2-3 SELECT ... LIMIT 語法 (設定最多傳回筆數)
有時符合查詢條件的記錄可能有很多筆,但我們並不需要看到所有記錄,只是想
看看前幾筆記錄。舉例來說,假設我們希望 grade 資料表的記錄依照國語分數由
高到低進行排序,但只要看看前 5 筆記錄,那麼可以加上 LIMIT 語法來設定最多
傳回筆數:
LIMIT 語法還支援另一種寫法,例如:
D-10
D SQL 查詢
D-3 新增、更新與刪除記錄
INSERT INTO grade (no, name, chinese, math, nature) VALUES ('A8608011', '陳小貞', 88, 95, 92)
D-11
D-4 建立與刪除資料庫 / 資料表
D-4-1 建立資料庫
D-4-2 刪除資料庫
D-4-3 建立資料表
D-12
D SQL 查詢
可以寫成如下:
D-4-4 刪除資料表
D-13
D-14