測試必備的Mysql常用sql語句系列
https://www.cnblogs.com/poloyy/category/1683347.html
前言
- 終於講完基礎的查詢語句了...這篇講的就是插入數據
- insert 屬於DML語句(數據操縱語句)
insert ... values 的語法格式
INSERT INTO <表名> [ <列名1> [ , … <列名n>] ] VALUES (值1) [… , (值n) ];
語法格式說明
- <列名>:可以不指定,默認指定表的所有列名
- values:字段有多少個,值就要有多少個,且順序要對應,否則會報錯
insert .. set 的語法格式
這個用的不多哈,了解為主;
INSERT INTO <表名> SET <列名1> = <值1>, <列名2> = <值2>, …
兩種語法格式的區別
insert .. values 可以插入任意行數據,而 insert ... set 每次只能插入一行數據
看看 emp 表的結構,方便后面栗子演示
栗子一:不指定字段,添加記錄
INSERT INTO emp VALUES ( "20", "員工1", 3, 1, 1 );
栗子二:指定所有字段,添加記錄
INSERT INTO emp ( id, NAME, dept_id, leader, is_enable ) VALUES ( "20", "員工1", 3, 1, 1 );
上面兩個栗子添加的記錄數據是一樣的哦,只是一個指定了所有字段,另一個是不指定任何字段
知識點
- 指定多個字段時,字段的順序可以隨意,不需要按照表定義的順序來寫,但要保證 values 的順序和字段的順序相同!
- 指定的字段不用加單引號或者雙引號,否則會報錯
常見錯誤寫法
特別在寫代碼的時候,經常需要字符串連接,一不留意就會用引號把字段名括起來,這樣是不對的哦!
INSERT INTO emp ( 'id', 'name' ) VALUES ( "20", "員工1");
報錯截圖
栗子三:復制表數據來插入
INSERT INTO emp ( id, NAME, dept_id, leader, is_enable ) SELECT 15, NAME, dept_id, leader, is_enable FROM emp WHERE id = 1;
主要的語法格式
insert into <表名> [<字段名>,<字段名>..] select ....
注意:如果是復制表數據的話,不用加 values() !