MySQL 插入資料( INSERT INTO)
INSERT INTO
在建立資料庫完成之後,我們需往資料庫中出入資料,在MySQL中可以使用INSERT語句向資料庫已有資料庫表插入一行或者多行資料
基本語法:
INSERT語句有兩種語法形式,分別是INSERT..VALUES....語句和INSERT...SET...語句
兩種語法的使用方式如下:
INSERT LALUES::
INSERT INTO 表名 (列明,列明1,列明2...)VALUES(數值,數值1,數值2,數值3)
語法註釋:
- 表名:資料庫中被操縱的表名(需要出入資料的資料庫表名)
- 列名:資料表中指定出入資料的列名(如需要向表中所有的列去插入資料,可直接忽略列名,直接採用INSERT 表名 VALUES(值...)
- VALUES 或 VALUE子句:包含資料庫的資料清單(值),清單中的資料順序要和列的順序相對應
INSERT SET:
INSERT INTO 表名 SET 列名=值,列名1 = 值1,列名2=值2...
語法註釋:
- 表名:資料庫中被操縱的表名(需要出入資料的資料庫表名)
- 列名:資料表中指定出入資料的列名
- 上述語句是給表中需要操作的某些被指定的列插入值,插入資料的列名在SET字句中被指定,= (等號)後面為指定列的值,未指定的列,預設插入預設值
由 INSERT 語句的兩種形式可以看出:
- 使用 INSERT…VALUES 語句可以向表中插入一行資料,也可以插入多行資料;
- 使用 INSERT…SET 語句可以指定插入行中每列的值,也可以指定部分列的值;
- INSERT…SELECT 語句向表中插入其他表的資料。
- 採用 INSERT…SET 語句可以向表中插入部分列的值,這種方式更為靈活;
- INSERT…VALUES 語句可以一次插入多條資料。
- 用單條INSERT語句處理多個插入藥別使用多條INSET語句更快
- 當使用單條INSERT語句插入插入多行時,只需要將每行資料用園括號括起來即可
下面為例項示範:
資料表結構:
使用INSERT VALUES向資料庫插入語句:
INSERT INTO BEIMU(BEI_ID, `BEI_NAME`, `BEI_AGE`, `BEI_BIRTHDAY`) VALUES (3,'誇誇', 23,'2021-01-08');
--列名帶不是`都可以執行
INSERT INTO BEIMU(BEI_ID, BEI_NAME, BEI_AGE, BEI_BIRTHDAY) VALUES ('2','北木 ', '24','2021-01-08');
INSERT INTO BEIMU(`BEI_ID`, `BEI_NAME`, `BEI_AGE`, `BEI_BIRTHDAY`) VALUES (1,'南海', 18,'2021-01-08');
使用INSERT SET 向資料庫插入語句:
INSERT INTO BEIMU(BEI_ID, `BEI_NAME`, `BEI_AGE`, `BEI_BIRTHDAY`) VALUES (3,'誇誇', 23,'2021-01-08'); INSERT INTO BEIMU(BEI_ID, BEI_NAME, BEI_AGE, BEI_BIRTHDAY) VALUES ('2','北木 ', '24','2021-01-08'); INSERT INTO BEIMU(`BEI_ID`, `BEI_NAME`, `BEI_AGE`, `BEI_BIRTHDAY`) VALUES (1,'南海', NULL,'2021-01-08');
上面我插入資料時,插入某個欄位為null值,我們使用INSERT SET插入
INSERT INTO BEIMU SET `BEI_AGE` ='24'
資料表結果:
上表5為我插入的資料,資料庫中的BEI_ID設定為自動增長,表中我只插入了一列資料,其他列預設為空值(如果某I列設定為必輸列,此列必須賦值,不然那會報錯:Field 'BEI_NAME' doesn't have a default value 意思是該列名優定義預設值)
對所有列插入資料:
INSERT INTO BEIMU VALUES(4,"貝珠",'18','2021-01-11')
結果如下:
對於出入資料庫的運算還有INSERT INTO SELECT從一個表複製資訊到另一個表,INSERT INTO SELECT 語句從一個表複製資料,然後把資料插入到一個已存在的表中,這點我們在高高階SQL中講述,到時候回顧下現在的內容。