iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 8
0
AI & Data

作者超囉嗦,但一天只要十分鐘的MYSQL真.新手教學系列 第 8

第八日- 插入資料(INSERT INTO)的各種寫法,今天也有練習題!

今天則是要介紹如何插入資料,一樣是拿第二日的語法當作示範,
在進入正題之前,先看一下昨天說的創一張class資料表,
語法寫法如下:

CREATE TABLE class(
id      	int             AUTO_INCREMENT,	
subject  	VARCHAR(50)     NOT NULL unique,
fee         int             NOT NULL,
PRIMARY KEY (id)
) ;

如果你寫不出來,一定是我寫得不夠仔細,記得可以留言詢問,
或是請我多敘述一點喔!


  • 加入學生資料

INSERT INTO

  1. 動作:插入
  2. 想插入的資料表:education資料庫的student資料表
  3. 在括號中填寫該資料表的欄位
  4. 填寫對應欄位要插入的值
INSERT INTO `資料庫`.`資料表` (`欄位1`, `欄位2`, `欄位3`, `欄位4`) VALUES ('值1', '值2', '值3', '值4');

第一種寫法

我們前兩天插入兩筆資料時,是分成兩個語法,
用一行INSERT INTO插入一筆資料,兩行就插入兩比,如下:

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 ('1998/08/01', 'Jay', 'M', '2019/02/24'),('1992/04/23', 'Kelly', 'F', '2019/04/05';

第三種寫法

更偷懶一點,可以連資料表的欄位名稱都不寫,
系統會自動[按照順序]插入資料表的第一欄、第二欄、第三欄,如下:

INSERT INTO `education`.`student`  VALUES ('1998/08/01', 'Jay', 'M', '2019/02/24'),('1992/04/23', 'Kelly', 'F', '2019/04/05';

一般來說,是使用第二種寫法,
第一種寫法太累了,一大堆重複的字;
第三種寫法雖然快,但如果語法之後會被重複使用,例如儲存成預存程序,(預存程序就像手機的快速撥號鍵,先設定好以後,只要呼叫他就可以使用了,之後會再談),
如果到時候資料表的欄位順序有被變動過,例如欄位順序從生日、姓名、性別改成性別、生日、姓名,那使用第三種語法就會看到性別欄位存了1999/08/01,
生日欄位存了Sam,姓名存了男性,到時候真的會非常非常崩潰,
總之唯一推薦「第二種寫法」。

還有其他種更省力的寫法,像是直接插入從別張表格選出來的資料等等,也都是很常見的INSERT寫法,但我們先學會基本的就好了!


今天就來試著自己寫插入語法吧!
請在class資料表插入五筆資料,分別是
1.id:1 class:piano fee:800
1.id:2 class:drum fee:500
1.id:3 class:guitar fee:300
1.id:4 class:vocal fee:800
1.id:5 class:Songwriting fee:1200


上一篇
第七日- 資料限制:AUTO_INCREMENT,現在換你創一張資料表!
下一篇
第九日- 踏上撈資料之旅,SELECT 與 DISTINCT
系列文
作者超囉嗦,但一天只要十分鐘的MYSQL真.新手教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言