【正文】
分排出 ) A B difference 43 MySQL 3 考慮學校的 橋牌會 和 棋藝會 的會員 , 他們的資料分別貯存於 同一結構 的 數據庫檔內: 欄名 類型 欄寬 內容 id 數字 4 學生編號 name 字符 10 學生名字 sex 字符 1 性別: M/F class 字符 2 班別 Tables: BRIDGE / CHESS 實例:橋牌會和棋藝會 44 MySQL 3 B r i d g e [ A ] C h e s s [ B ]id n a m e s e x c l a s s id n a m e s e x c l a s s1 9812 A a r o n M 1A 1 9802 M a r y F 1A2 9801 Pe t e r M 1A 2 9801 Pe t e r M 1A3 9814 K e n n y M 1B 3 9815 E d d y M 1B4 9806 K i t t y F 1B 4 9814 K e n n y M 1B5 9818 E d m o n d M 1C 5 9817 G e o r g e M 1C: : : : : : : :數據庫聯合、相交及差分 45 MySQL 3 CREATE TABLE party AS SELECT * FROM bridge UNION SELECT * FROM chess ORDER BY class, name 例 22 本校計劃舉行一次 棋橋活動 。 A B union 41 MySQL 3 A 和 B 的相交 (A?B) 數據庫聯合、相交及差分 檢取 A 和 B 所共通的橫列。 CREATE TABLE name AS SELECT * FROM student ORDER BY name DESC id n am e d ob s e x c l as s m t e s t h c od e d c od e r e m i s s i on9707 Z i on 07/ 29/ 85 M 2B 51 B M K K .F .9709 Y v on n e 08/ 24/ 85 F 2C 10 R T S T .F .9804 W e n dy 07/ 09/ 86 F 1B 84 B Y M T .F .9819 V i n c e n t 03/ 15/ 85 M 1C 29 Y M K K .F .9805 T obe 10/ 17/ 86 M 1B 88 R Y M T .F .9713 T i m 06/ 19/ 85 M 2A 91 R HHM .T .9816 T e ddy 01/ 30/ 86 M 1B 64 B SSP .F .: : : : : : : : :結果 39 MySQL 輸出 V 例 21 按社員的班別、性別及名字的次序, 把 紅社 社員的資料 列印 出來。 c n t d oc od e11 Y M T10 HHM10 SSP9 M K K5 T S T2 T S W1 K W C1 MMK1 S H T結果 36 MySQL 顯示次序 IV SELECT name, class, hcode FROM student WHERE sex=M ORDER BY hcode, class 例 19 列出 每社 的男社員名字並按 班別序 顯示。 34 MySQL 顯示次序 IV SELECT name, id, class, dcode FROM student WHERE class=2A ORDER BY dcode 例 17 列出 2A班的學生資料,並按 居住地區(qū)序 顯示。 個別條件 男生: sex=M 群組條件 最少三人: COUNT(*) = 3 31 MySQL 群組 III 例 15 列出 每班 男生數學測驗的平均分, 但男生 人數不及三人的班則不計算在內 。 29 MySQL 群組 III 例 14 求出 每一區(qū) 中一學生數學測驗的 最高分 及 最低分 。 群組 III 27 MySQL 群組 III 例 12 求出 每班 的數學測驗 平均 分。 25 MySQL 群組 III SELECT class, COUNT(*) FROM student GROUP BY class c l as s c n t1A 101B 91C 92A 82B 82C 6例 11 求出 每班 的人數。 – WHERE condition 列出個別橫列所須符合的條件 , 而 HAVING requirement 則列出個別群組須符合的條件 。 SELECT name, class, hcode FROM student WHERE name LIKE _a% AND hcode= R n am e c l as s h c od eA a r on 1A RJ a n e t 1B RP a u la 2A R結果 23 MySQL 群組 III SELECT ...... FROM ...... WHERE condition GROUP BY groupexpr [HAVING requirement] 群組函數: COUNT( ), SUM( ), AVG( ), MAX( ), MIN( ) – GROUP BY groupexpr 列出群組組成所依照的表達式 。 SELECT name, mtest FROM student WHERE class=1A AND mtest BETWEEN 80 AND 90 n am e m t e s tL u ke 86A a r on 83G ig i 84結果 21 MySQL 比較 II 例 9 求出所有學生其名字是 以 T為起首 。 SELECT name, class, dayofweek(dob) AS bdate FROM student WHERE bdate IN (4,7) n am e c l as s b d at eP e