1. 程式人生 > SQL入門教學 >07 SQL Insert

07 SQL Insert

1. 定義

維基百科:SQL Insert指令用於向資料表中新增記錄。

解釋:SQL Insert,傳聞中增刪查改中的,是向資料表中寫資料的主要途徑。

2. 前言

本小節,我們將一起學習 SQL Insert

使用 Insert 插入資料可分為普通插入和批量插入兩類,本小節將分別介紹這兩類插入操作。

本小節測試資料如下,請先在資料庫中執行:

DROP TABLE IF EXISTS imooc_user;
CREATE TABLE imooc_user
(
  username varchar(20),
  age int
);

3. 普通插入

普通情況下,Insert 插入的資料一般為一條。

其語法如下:

INSERT INTO [table_name] ([col1], [col2]) VALUES([val1], [val2]);

其中table_name是待插入資料表名稱,col是欄位名稱,val是待插入欄位值,數字 1、2 表示多個欄位。

3.1 例1、全欄位插入 imooc_user

請書寫 SQL 語句,向imooc_user資料表中插入一條記錄,usernamepedroage23

分析

根據插入語法寫出語句即可。

語句

INSERT INTO imooc_user(username,age) VALUES('pedro',23);

插入成功後,資料表資訊如下:

+----------+-----+
| username | age |
+----------+-----+
| pedro    | 23  |
+----------+-----+

imooc_user 共有 username 和 age 兩個欄位,在插入時,如果插入的資料是全欄位,那麼可以省略前面的 col 。

省略後的語法如下:

INSERT INTO [table_name] VALUES([val1], [val2]);

因此上述例子的答案還可以這樣寫:

INSERT INTO imooc_user VALUES('pedro',23);

3.2 例2、單欄位插入 imooc_user

請書寫 SQL 語句,向imooc_user資料表中插入一條記錄,usernamepedro

分析

根據插入語法寫出語句即可。

語句

INSERT INTO imooc_user(username) VALUES('pedro');

插入成功後,資料表資訊如下:

+----------+--------+
| username | age    |
+----------+--------+
| pedro    | <null> |
+----------+--------+

注意: 如果 age 欄位有 NOT NULL 約束,在只插入 username 的情況下,該次插入會報錯。

4. 批量插入

SQL除了普通插入外,也提供了批量插入來一次性插入多條記錄。

批量插入資料的語法如下:

INSERT INTO [table_name] ([col1], [col2]) VALUES ([val1], [val2]),([val1], [val2]);

批量插入與普通插入的區別在於,VALUES關鍵字後面接受多個欄位元組,每個()代表一個欄位元組,一個欄位元組會生成一條記錄

4.1 例3、批量插入 imooc_user

請書寫 SQL 語句,向imooc_user表中插入兩條記錄,第一條記錄usernamepedroage23;第二條記錄usernamemikeage18

分析

根據批量插入語法寫出語句即可。

語句

INSERT INTO imooc_user(username,age) VALUES('pedro',23),('mike',18);

插入成功後,資料表資訊如下:

+----------+-----+
| username | age |
+----------+-----+
| pedro    | 23  |
| mike     | 18  |
+----------+-----+

5. 總結

  • Insert 是資料表增加資料的主要方式,語法簡單,作用卻大,請多加練習。
  • 並不是每個 RDBMS 都支援批量插入 ,批量插入的移植性並不好,如果你使用的資料庫不支援,請將它改為多個普通插入。