Select 指令 基本結構 WHERE Like語法 Order by與group by Having 與 AS Limit 與 Offset 參考課本九章 測試資料表請由 http://db.vexp.idv.tw 中下載
基本結構 select 欄位 from 表格 where 限制(邏輯運算) [排序等設定]; 欄位: select * from main; * 表示表格裡面所有的欄位 最好不要用「*」,以免資料表結構改變造成問題 select name,tel,mobile from main; 也可以是運算式 select 4+5 ; select sin(2); select 4+5, sin(2); select final,final+10 from exam;
常用運算式 數字 +-*/ % () 邏輯 > < <= >= <> = and or not 字串 || 連接字串 NULL IS NULL, IS NOT NULL
WHERE 用來限制列入查詢的列 SELECT * from main where sex='男性'; SELECT * from main where sex='女性' and birthday > '19830101'; SELECT * from main where name like '陳%'; SELECT * from main where name like '陳%' or name like '李%';
Like語法 string [NOT] LIKE pattern 「_」 比對一個字、「%」比對任一個字串 name like '張__' 函數 http://dev.mysql.com/doc/refman/5.0/en/func tions.html http://www.sqlite.org/lang_corefunc.html http://www.postgresql.org/docs/9.1/static/f unctions.html
Aggregate function 用以計算所有紀錄的加總等集合性質的答案 要跑完查回來的所有的紀錄才能獲得答案 用法:Select sum(num) from sale Sum 加總 Count 計算數量 Avg 平均 Max 最大 min 最小
Order by與group by 排序可用 Order by select * from main order by name select * from main order by sex,name DESC 遞減 ASC 遞增 select * from main order by birthday DESC select * from main order by birthday ASC DISTINCT 唯一 select DISTINCT sex FROM main GROUP BY 把相同的結果結合在一起 select cid, sum(num) from sale group by cid
Having 與 AS Having 配合group by 限定查出來的資料 select cid,sum(num) from sale group by cid having sum(num) > 3 AS 用來設定欄位標題 Select name as 姓名, address as 住址 from main;
Limit 與 Offset Limit:用來限制查詢回傳的資料筆數 select * from main order by birthday DESC limit 3找前3年輕 Offset:用來配合limit往後找找 limit 2 offset 3 找第4-5筆 select * from main order by birthday DESC limit 2 offset 3
作業 計算學生學期成績與平常成績,並找出學期總 成績低於60分的學生編號 學期成績=作業次數*2+作業加分+平時成績+期 中考*0.2+報告標題*2+報告成績+期末考 *0.3 平時成績=(作業次數*2+作業加分+平時成績+期 中考*0.2+報告標題*2+報告成績)/0.7 找出期中考與期末考成績平均、期末考最高分 找出報告分數分佈(幾分有幾個人),列出超 過十個以上的分數 找出5到8名的學生編號