切換
舊版
前往
大廳
主題

資策會Unity課程「網路程式與資料庫設計」Day2 part2

冰劍士-冰雪飛 | 2014-12-01 21:04:05 | 巴幣 6 | 人氣 890

延續上篇的內容,這篇將把這堂課使用MySQL學到的語法全部講完

當然不是整個MySQL的語法完整講完,就把基本常用的語法講完就是了
=====================================================================
群組指令(GROUP BY)


SELECT …… FROM …… WHERE condition
GROUP BY groupexpr [HAVING requirement]
GROUP BY可以將某欄的資料分群,可以找出該資料群的個數、平均等




當然也可以在分群前先設置條件



某些情況下我們設條件需要使用到HAVING,通常在SQL語法的最後
=====================================================================
排序指令(ORDER BY)



SELECT …… FROM …… WHERE ……
GROUP BY ……
ORDER BY colname ASC / DESC
我們將資料表抓出來後要做排序的動作,這時會用到ORDER BY語法
ASC是由小到大排序DESC為由大到小排序,如果沒有寫的話預設是ASC



這個範例是要解釋ORDER BY的排序的先後順序,寫在前面的優先排序
之後依照前面排好的分群再作後寫的排序,一種分群排序的方法
=====================================================================
集合指令(UNION)

說明這指令之前,先來了解一點數學上的東西
假設我們有兩個集合A={1,2,3,4,5,},B={4,5,6,7,8,}


A∪B={1,2,3,4,5,6,7,8}這表示A和B的聯集,代表A和B內所有不重複的資料
如圖所示藍圈和紅圈內的全部資料


A∩B={4,5}這表示A和B的交集,代表A和B共同擁有的資料
如圖所示藍圈和紅圈內的交錯再一起資料


A-B={1,2,3}這表示A和B的差集,代表A不包含與B共同擁有的資料
如圖所示藍圈不包含紅圈內的資料



SELECT …… FROM …… WHERE ……
UNION
SELECT …… FROM …… WHERE ……;
只要在選擇的兩個資料表之間加上UNION語法較可做到聯集的動作



SELECT …… FROM table1
WHERE col IN (SELECT col FROM table2);
MySQL似乎沒有交集的語法,但我們可以自己利用 WHERE 和 IN 指令來找出交集



SELECT …… FROM table1
WHERE col NOT IN (SELECT col FROM table2);
MySQL似乎也沒有差集語法,只要把設個自己寫交集語法內的 IN 改成 NOT IN 既可
=====================================================================
資料庫應用


我們可以將讀入兩個資料表重新簡化命名,並使用簡化的名稱選取個別資料的內容



將兩個資料表做差集,之後再由小到大排序好


最後來個語法大雜燴

ORDER BY 1,2這是指排序取出後第1和2欄的資料
=====================================================================
MySQL語法就交到這,下篇關於此堂課的文章將要做Unity和MySQL的連結使用

日後再搭配網路概念,就能做出個簡單的帳號管理系統

創作回應

龍恩
話說資策會上好難呀!
竟然有MySQL...
2014-12-01 21:19:52
冰劍士-冰雪飛
個人覺得這個還好,對我而言真正頭痛的是Game AI
2014-12-01 21:27:30

更多創作