MySQL入門

出自六年制學程
跳至導覽 跳至搜尋

工具

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
  • 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
  • 一對多關係與多對多關係。