MySQL入門

出自六年制學程
在2014年7月24日 (四) 15:19由丁志仁對話 | 貢獻所做的修訂版本

跳轉到: 導覽搜尋

工具

adminer介面介紹

  1. localhost是這一台機器的意思
  2. DB是 database (資料庫)的意思,想像是放一張張資料表的資料夾。
  3. 左側選單,上面選 DB 下面出現其中的資料表,每個資料表都有兩個連結。
  4. 右側選單最上方是「網站地圖」,提示使用者目前是在 adminer 中的那裡。
  5. 資料表是由欄和筆構成,請看範例。
  6. 「選擇資料」項下除了可以編、修現有各筆外,還有選擇、搜尋、排序三個子選項。
  7. 「顯示結構」與「修改資料表」兩項可以看和改資料表的欄位結構。
  8. 「新增項目」項可以插入一或數筆資料。

建資料表及欄位說明

  1. id欄,類型是tinyint,指tiny(小小)的int(整數)。只使用1個byte,而1byte有256個可能,如果是非負整數,可代表0~255。屬性unsigned是非負的意思,不存負值。
  2. 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本身的大小排序),這裡不用非負屬性,因為文字不需要正負。
  3. gender欄,類型是tiny(小小)的int(整數)。gender欄有註釋,解釋0和1各代表什麼意思。
  4. birthday欄,類型是用date,因為不一定所有的日期是合理的,尤其是閏年,用這個類型會幫你檢查,所以要定義好相關的適合型態。

操作整張資料表

  • 轉移:「將資料表移動到(資料庫名.資料資料表名稱):」
  • 複製:「將資料表複製到(資料庫名.資料資料表名稱):」(練習這個)
  • 丟棄
  • 清空
  • 匯出sql:欄位結構和各筆資料
  • 匯入sql:欄位結構和各筆資料
  • 匯出csv:給 MySQL 取用;給 google 及 Excel 取用。
  • 匯入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
  • select name,phone,email from name a,phone b,email c where a.id=b.id && b.id=c.id && name='丁志仁' order by name
  • select name,phone,email from name a,phone b,email c where a.id=b.id && b.id=c.id && name like '陳%' order by name
  • 一對多關係與多對多關係。