INSERT時用來插入(或添加)行到表的,插入的方式有一下幾種:
- 插入完整的行
- 插入行的一部分
- 插入多行
- 插入某些查詢的結(jié)果
19.1 插入完整的行
一般而言INSERT語句需要搭配INTO和VALUES關(guān)鍵字來使用:
INSERT INTO customers
VALUES(NULL,
'Pep E. LaPew',
'100 Main Street',
'Los Angeles',
'CA',
'90046',
'USA',
NULL,
NULL);
- INTO用于指定表名
- VALUES用于插入新值厌丑,但是需要注意的是榨婆,新值的順序與每個字段的順序一一對應(yīng)馆揉;因此這種方式并不安全格带,應(yīng)盡量避免使用准脂,因為會不能確保插入字段順序而產(chǎn)生錯誤
在INTO后面指定列名可以避免出錯:
INSERT INTO customers(cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country,
cust_contact,
cust_email)
VALUES(NULL,
'Pep E. LaPew',
'100 Main Street',
'Los Angeles',
'CA',
'90046',
'USA',
NULL,
NULL);
如果想省略列邪媳,而需要滿足以下條件:
- 表定義允許
- 該列的定義允許為NULL值
- 定義列有給出默認(rèn)值
19.2 插入多個行
類似于UNION聯(lián)合查詢語句一樣捐顷,可以分別使用單個INSERT語句,并用逗號隔開雨效;當(dāng)然也可以省略掉重復(fù)指定列這一步迅涮,直接通過逗號來分隔插入的新值即可:
INSERT INTO customers(cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country)
VALUES(
'Pep E. LaPew',
'100 Main Street',
'Los Angeles',
'CA',
'90046',
'USA'),
(
'M. Martian',
'42 Galaxy Way',
'New York',
'NY',
'11213',
'USA');
19.3 插入檢索出的數(shù)據(jù)
除了直接INSERT來插入鍵入的值外,還可以使用SELECT檢索結(jié)果后插入表中:
INSERT INTO table1(col1,
col2,
col3,
col4,
....
)
SELECT co1,
col2,
col3,
col4,
...
FROM table2;