MySQL入門
出自六年制學程
工具
- 下載使用 EmEdit ,在 jendo.org/files/doc/et 中
- 完整講義
建資料表及欄位說明
- id欄,類型是tinyint,指tiny(小小)的int(整數)。只使用1個byte,而1byte有256個可能,如果是非負整數,可代表0~255。屬性unsigned是非負的意思,不存負值。
- name欄,類型是var(可變長度)的char(字元),也有人稱為vchar。記錄形式會用第一個byte記多長,然後再放實際的資料。MySQL4.1以前是用1個byte記錄長度,所以資料最長可到255個長度;MySQL4.2以後用2個byte來記錄資料長度,可記錄到65535個長度。在utf8中,每個中文字用掉3個byte(這樣才能簡中繁中日韓文都放在同一頁),不同於big5每個中文字只用2個byte。<br/>另外有一種char的類型,每個欄位長度是定長。排序規則/校對方式使用 utf8_general_ci,的意思是utf8是編碼。general_ci是校對排序方式,不同國家希望有不同的排序方式,而華文最喜歡的排序方式是general_ci(大體上照utf8本身的大小排序),這裡不用非負屬性,因為文字不需要正負。
- gender欄,類型是tiny(小小)的int(整數)。gender欄有註釋,解釋0和1各代表什麼意思。
- birthday欄,類型是用date,因為不一定所有的日期是合理的,尤其是閏年,用這個類型會幫你檢查,所以要定義好相關的適合型態。
操作整張資料表
- 轉移:「將資料表移動到(資料庫名.資料資料表名稱):」
- 複製:「將資料表複製到(資料庫名.資料資料表名稱):」(練習這個)
- 丟棄
- 清空
- 匯出sql
- 匯入sql
- 匯出csv
- 匯入csv
使用資料表
- select,delete,update是三個mySQL中最重要的指令
- 詳見「完整講義」的「第二部分/零/七、基本SQL命令/10~14」
- select 下條件及排序
- 正規化與非正規化的資料表
- select name,phone from name a,phone b where a.id=b.id order by name
- select name,phone,email from name a,phone b,email c where a.id=b.id && b.id=c.id order by name
- 一對多關係與多對多關係。