SQL必知必會 筆記 第十五章 插入資料,sql必知

來源:互聯網
上載者:User

SQL必知必會 筆記 第十五章 插入資料,sql必知
15.1資料插入

插入可以用幾種方式使用:
(1)插入完整的行
(2)插入行的一部分
(3)插入某些查詢的結果

15.1.1插入完整的行
INSERT INTO CustomersVALUES('1000000006',     'Toy Land',     '123 Any Street',     'New York',     'NY',     '11111',     'USA',     NULL,     NULL);

對每個列必須提供一個值,如果某個列沒有值,應該用NULL值。
保證INSERT語句的更安全

INSERT INTO Customers(cust_id,     cust_name,     cust_address,     cust_city,     cust_state,     cust_zip,     cust_country,     cust_contact,     cust_email)VALUES('1000000006',     'Toy Land',     '123 Any Street',     'New York',     'NY',     '11111',     'USA',     NULL,     NULL);

因為提供了列名,VALUES必須以其指定的次序匹配指定的列名,不一定按各個列出現在實際表中的次序。其優點是,即使表的結構改變,此INSERT語句仍然能正確工作。
總是使用列的列表:一般不要使用沒有明確給出列的列表的INSERT語句。使用列的列表能使SQL代碼繼續發揮作用,即使表結構發生了變化。

15.1.2插入部分行

使用INSERT的推薦方法是明確給出表的列名。使用這種文法,還可以省略列。

INSERT INTO Customers(cust_id,     cust_name,     cust_address,     cust_city,     cust_state,     cust_zip,     cust_country)VALUES('1000000006',     'Toy Land',     '123 Any Street',     'New York',     'NY',     '11111',     'USA');

省略列:如果表的定義允許,則可以在INSERT操作中省略某些列。省略的列必須滿足以下某個條件:
(1)該列定義為允許NULL值。
(2)在表定義中給出預設值。這表示如果不給出值,將使用預設值。

15.1.3插入檢索出的資料

INSERT可以利用它將一條SELECT語句的結果插入表中。這就是所謂的INSERT SELECT。

INSERT INTO Customers(cust_id,     cust_name,     cust_address,     cust_city,     cust_state,     cust_zip,     cust_country)SELECT cust_id,     cust_name,     cust_address,     cust_city,     cust_state,     cust_zip,     cust_countryFROM CustNew;

不一定要求列名相同。
INSERT SELECT 中SELECT語句可包含WHERE子句過濾插入的資料。
插入多行:INSERT通常只插入一行。為了插入多行,必須執行多個INSERT語句。INSERT SELECT是個例外,它可以用單條INSERT插入多行,不管SELECT語句返回多少行,都將被INSERT插入。

15.2從一個表複製到另一個表

為了將一個表複製到另一個表(在運行中建立的表)。可使用SELECT INTO語句。
INSERT SELECT和SELECTINTO:他們之間的一個重要差別是前者匯出資料,而後者匯入表。

SELECT *INTO CustCopyFROM Customers;

MySQL和Oracle使用的文法稍有不同

CREATE TABLE CustCopy ASSELECT *FROM Customers;

在使用SELECT INTO時,需要注意:
(1)任何SELECT選項和子句都可以使用,包括WHERE和GROUP BY。
(2)可利用連接從多個表插入資料。
(3)不管從多少個表中檢索資料,資料都只能插入到單個表中。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.