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中講述,到時候回顧下現在的內容。