昨天安裝完資料庫管理軟體MySQL後,可以開始學語法了!
等等!!!有些概念要先了解,才會知道自己在寫什麼,
和寫作文前要先會寫國字、了解詞彙、了解題目的意思才能開始寫一樣,
接下來會以概念解說--操作--講解語法的方式來介紹基礎的SQL指令。
資料-data
資料庫-schema
資料表-table
資料欄位-column
如果資料庫像是一個文件櫃,資料表就是文件櫃的資料夾,
資料是放在資料夾裡面一張張的紙,資料欄位是紙裡面的固定格式。
這樣解釋是不是比較有感覺?
資料欄位的概念比較抽象一點,再舉一些例子:
醫院病歷要求病人填基本資料表,上面有[姓名]、[性別]、[電話]等資料欄位,
餐廳滿意度調查資料表,會要求客人填寫[最好吃的菜色]、[推薦的服務人員],
上面的每一個[],都是一個資料欄位。
補習班的資料庫有學生資料表、老師資料表、課程資料表,
學生資料表有[姓名]、[性別]、[電話]、[分數]等等資料欄位,
課程資料表有[課名]、[費用]、[堂數]等等資料欄位。
接下來就會用大家比較熟的補習班來建資料當作練習範例。
現在資料庫schema、資料表table、資料欄位column很清楚了,
可以先來試試看創建第一筆資料!
之後會再解釋這些語法
之後會再解釋這些語法
之後會再解釋這些語法
工欲善其事,必先利其器,先大概認識一下WorkBench的圖示
A 按A會跳出一個QUERY1視窗,之後語法都是寫在QUERY裡面(C的位置)
B 按Schemas, Navigator會顯示有幾個資料庫,再點進去Tables可以看到資料庫裏面的資料表
C 填寫語法的位置
D 執行,會執行整個視窗裡面的語法,如果用滑鼠反白,就只會執行反白的部分
E 重新整理,按了才會看到最新的東西
F 粗體字代表education是你正在使用的資料庫
看不懂沒關係,直接實作看看,以下圖A代表圖中A的位置,以此類推。
我們先培養一點感覺(什麼東西)。
打開WorkBench,按圖A新增查詢,把以下語法貼到圖C,
按圖D的閃電執行,在圖最下方Output的地方會有執行結果,
綠色勾勾是成功,紅色叉叉是失敗,失敗會大概描述一下原因,
但真的只是大概,不要期望太多。
CREATE SCHEMA Education ;
出現成功以後,
左邊應該還是沒有東西,
因為要先按圖B把視窗切到SCHEMAS,
按E重新整理,
剛剛創的資料庫就會出現了!
接下來依序貼上,然後按執行:
記得先點圖F,代表你要在education資料庫執行這段語法,
沒有點的話就會看到紅色叉叉了!
CREATE Table student(
id int AUTO_INCREMENT,
birth_date DATE NOT NULL,
full_name NVARCHAR(50) NOT NULL,
gender NVARCHAR(50) NOT NULL,
class NVARCHAR(100),
start_date DATE NOT NULL,
PRIMARY KEY (id)
) ;
INSERT INTO `education`.`student` (`birth_date`, `full_name`, `gender`, `start_date`) VALUES ('1998/08/01', 'Jay', 'M', '2019/02/24');
INSERT INTO `education`.`student` (`birth_date`, `full_name`, `gender`, `start_date`) VALUES ('1992/04/23', 'Kelly', 'F', '2019/04/05');
INSERT INTO `education`.`student` (`birth_date`, `full_name`, `gender`, `start_date`) VALUES ('1996/05/24', 'May', 'F', '2019/06/18');
INSERT INTO `education`.`student` (`birth_date`, `full_name`, `gender`, `start_date`) VALUES ('2001/07/03', 'Steven', 'M', '2019/07/18');
INSERT INTO `education`.`student` (`birth_date`, `full_name`, `gender`, `start_date`) VALUES ('1996/12/01', 'Elsa', 'F', '2019/07/24');
INSERT INTO `education`.`student` (`birth_date`, `full_name`, `gender`, `start_date`) VALUES ('1994/05/16', 'Betty', 'F', '2019/08/02');
INSERT INTO `education`.`student` (`birth_date`, `full_name`, `gender`, `start_date`) VALUES ('1997/08/04', 'Anna', 'F', '2019/08/15');
INSERT INTO `education`.`student` (`birth_date`, `full_name`, `gender`, `start_date`) VALUES ('2005/06/16', 'Leo', 'M', '2019/08/20');
INSERT INTO `education`.`student` (`birth_date`, `full_name`, `gender`, `start_date`) VALUES ('2003/11/22', 'Eric', 'M', '2019/08/30');
INSERT INTO `education`.`student` (`birth_date`, `full_name`, `gender`, `start_date`) VALUES ('2004/11/04', 'Marcus', 'M', '2020/01/24');
INSERT INTO `education`.`student` (`birth_date`, `full_name`, `gender`, `start_date`) VALUES ('1999/03/20', 'Alice', 'F', '2020/03/20');
INSERT INTO `education`.`student` (`birth_date`, `full_name`, `gender`, `start_date`) VALUES ('1994/09/13', 'Sam', 'M', '2020/04/12');
INSERT INTO `education`.`student` (`birth_date`, `full_name`, `gender`, `start_date`) VALUES ('1984/05/20', 'David', 'M', '2020/05/13');
INSERT INTO `education`.`student` (`birth_date`, `full_name`, `gender`, `start_date`) VALUES ('2010/04/20', 'Jason', 'M', '2020/07/02');
INSERT INTO `education`.`student` (`birth_date`, `full_name`, `gender`, `start_date`) VALUES ('2008/10/12', 'Nina', 'F', '2020/08/22');
SELECT * FROM student;
現在我們有一個教育資料庫,裡面有一張學生資料表,裡面有六欄資料欄位,十五筆資料。
如果你的畫面也長這樣,那可以把資料庫關掉去睡覺了XD