SQL必知必会——插入数据(十五)
1、數(shù)據(jù)插入
INSERT用來將行插入(或添加)到數(shù)據(jù)庫表。插入有幾種方式:
插入完整的行
插入行的一些部分
插入某些查詢的結(jié)果
注意:
1、使用INSERT語句可能需要客戶端/服務(wù)端DBMS中的特定安全權(quán)限。在你試圖使用INSERT前,應(yīng)該保證自己有足夠的安全權(quán)限
2.1、插入完整的行
INSERT INTO customers
VALUES(
'Toy Land'
,'123 Any Street'
,'New York'
,'NY'
,'11111'
,'USA'
,'NULL'
,'NULL'
);
1
2
3
4
5
6
7
8
9
10
11
注意:
1、在某些SQL實(shí)現(xiàn)中,跟在INSERT之后的INTO關(guān)鍵字是可選的。但是,及時(shí)不一定需要,最好還是提供這個(gè)關(guān)鍵字,這樣需做將保證SQL代碼在DBMS之間可移植
2、上面的SQL語句高度依賴于表中列的定義,還依賴于其容易獲得次序的信息。即使可以得到這種次序信息,也不能保證各列在下一次表結(jié)構(gòu)變動(dòng)后保持完全相同的次序。因此,編寫依賴于特定次序的SQL語句是很不安全的,這樣遲早會(huì)出問題
INSERT INTO customers
(
cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country,
cust_contact,
cust_email
)
VALUES(
'Toy Land',
'123 Any Street',
'New York',
'NY',
'11111',
'USA',
'NULL',
'NULL',
)
--在插入行時(shí),DBMS將用VALUES列表中的相應(yīng)值貼入列表中的對應(yīng)項(xiàng)。VALUES中的第一個(gè)值對應(yīng)第一個(gè)指定列名,
第二個(gè)值對應(yīng)于第二個(gè)列名,如此等等。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
注意:
1、因?yàn)樘峁┝肆忻?#xff0c;VALUES必須以其指定的次序匹配指定的列名,不一定按各列出現(xiàn)在表中的實(shí)際次序。其優(yōu)點(diǎn)是,即使表的結(jié)構(gòu)改變,這條INSERT語句任然能正確工作。
2.2、插入部分行
INSERT INTO customers
(
cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country,
)
VALUES(
'Toy Land',
'123 Any Street',
'New York',
'NY',
'11111',
'USA',
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
注意:
省略的列必須滿足一下某些條件
1、該列定義為允許NULL值(無值或空值)
2、在表定義中給出默認(rèn)值。這表示如果不給出值,將使用默認(rèn)值
2.3、插入檢索出的數(shù)據(jù)
INSERT INTO customers
(
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
)
SELECT
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
FROM custnew;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
注意:
1、為了簡單起見,這個(gè)例子在INSERT和SELECT語句中使用了相同的列名。但是,不一定要求列名匹配。事實(shí)上,DBMS一點(diǎn)也不關(guān)心SELECT返回的列名。他使用的列的位置。
2.4、從一個(gè)表復(fù)制到另一個(gè)表
SELECT *
INTO custcopy
FROM customers;
--這條SELECT語句創(chuàng)建一個(gè)名為custcopy的新表,并把customers表的整個(gè)內(nèi)容復(fù)制到新表中。
因?yàn)檫@里使用的時(shí)select *,所以將在custcopy表中創(chuàng)建(并填充)于customers表的每一列相同的列。
1
2
3
4
5
注意:
任何SELECT選和子句都可以使用,包括WHERE和GROUP BY
可利用聯(lián)結(jié)從多個(gè)表插入數(shù)據(jù)
不管從多少個(gè)表中檢索數(shù)據(jù),數(shù)據(jù)都只能插入到一個(gè)表中
---------------------
轉(zhuǎn)載于:https://www.cnblogs.com/ly570/p/11173778.html
總結(jié)
以上是生活随笔為你收集整理的SQL必知必会——插入数据(十五)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL Percona Toolki
- 下一篇: 洛谷P4015 运输问题 网络流24题