之前所有的內容我們描述的都是select語句。但是,除了select語句外,還有其他的語句需要我們瞭解一下,這一篇會介紹如何使用insert語句。
大家可以先去以下鏈接複製創建表以及給表中插入數據的語句
insert語句是用來給數據庫中插入數據的,可以在以下幾種情況下使用insert語句:
(1)插入完整的行
(2)插入行的一部分
(3)插入多行
(4)插入某些查詢的結果
這一篇的內容將分別介紹這四種情況。
1.插入完整的行
插入完整的行是insert語句的基本用法,要求指定表名和被插入到新行中的值。
例如:給customers表中插入一行數據
insert into customers
values(NULL,
'Pep E. LaPew',
'100 Main Street',
'Los Angeles',
'CA',
'90046',
'USA',
NULL,
NULL);
在customers表中每一列在insert語句中都必須有一個對應的值,如果這一列沒有值,有NULL代替。各個列必須以它們在表中定義的次序出現。第一列cust_id也是NULL,這是因為每插入一個新行時,該列由MySQL自動填充。這種語法雖然簡單,但是不安全,應該儘量避免使用。
2.插入行的一部分
insert into customers(cust_name,
cust_address,
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);
上面這個語句也是在customers表中插入一行數據,但是,在表名後面的括號中明確給出了列名。
總是使用指定的列名有以下優點:
(1)在表結構發生變化後,依然可以發揮作用。
(2)可以提升整體性能,因為索引的時候可以精確到列,而不是查出所有列,再進行篩選。
3.插入多行
如果每條insert語句中的列名和次序相同,可以使用如下組合各語句
insert into customers(cust_name,
cust_address,
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,
'M. Martian',
'42 Galaxy Way',
'New York',
'NY',
'11213',
'USA'
NULL,
NULL
);
每組值用圓括號括起來,用逗號分隔。
4.插入某些查詢的結果
insert into customers(cust_name,
cust_address,
cust_state,
cust_zip,
cust_country,
cust_contact,
cust_email
)
select cust_name,
cust_address,
cust_state,
cust_zip,
cust_country,
cust_contact,
cust_email
from custnew;
上述語句把custnew中的數據全都插入到custmers表中,在例子中,兩張表中的列名完全相同,其實,沒有必要,因為MySQL並不關心列名,只關心值的類型。
閱讀更多 小詹小詹 的文章