国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SQL 數(shù)據(jù)操作技巧:SELECT INTO、INSERT INTO SELECT 和 CASE 語句詳解

這篇具有很好參考價值的文章主要介紹了SQL 數(shù)據(jù)操作技巧:SELECT INTO、INSERT INTO SELECT 和 CASE 語句詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

SQL SELECT INTO 語句

SELECT INTO 語句將數(shù)據(jù)從一個表復(fù)制到一個新表中。

SELECT INTO 語法

將所有列復(fù)制到新表中:

SELECT *
INTO newtable [IN externaldb]
FROM oldtable
WHERE condition;

只復(fù)制一些列到新表中:

SELECT column1, column2, column3, ...
INTO newtable [IN externaldb]
FROM oldtable
WHERE condition;

新表將按照在舊表中定義的列名和類型創(chuàng)建。您可以使用 AS 子句創(chuàng)建新的列名。

SQL SELECT INTO 示例

以下 SQL 語句創(chuàng)建 Customers 的備份副本:

SELECT * INTO CustomersBackup2017
FROM Customers;

以下 SQL 語句使用 IN 子句將表復(fù)制到另一個數(shù)據(jù)庫中的新表中:

SELECT * INTO CustomersBackup2017 IN 'Backup.mdb'
FROM Customers;

以下 SQL 語句僅復(fù)制一些列到新表中:

SELECT CustomerName, ContactName INTO CustomersBackup2017
FROM Customers;

以下 SQL 語句僅將德國客戶復(fù)制到新表中:

SELECT * INTO CustomersGermany
FROM Customers
WHERE Country = 'Germany';

以下 SQL 語句將來自多個表的數(shù)據(jù)復(fù)制到新表中:

SELECT Customers.CustomerName, Orders.OrderID
INTO CustomersOrderBackup2017
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

提示: SELECT INTO 還可以用于使用另一個表的架構(gòu)創(chuàng)建新的空表。只需添加一個導(dǎo)致查詢不返回數(shù)據(jù)的 WHERE 子句:

SELECT * INTO newtable
FROM oldtable
WHERE 1 = 0;

SQL INSERT INTO SELECT 語句

INSERT INTO SELECT 語句將數(shù)據(jù)從一個表復(fù)制并插入到另一個表中。目標表中的現(xiàn)有記錄不受影響。

INSERT INTO SELECT 語法

將一個表中的所有列復(fù)制到另一個表中:

INSERT INTO table2
SELECT * FROM table1
WHERE condition;

僅將一個表中的某些列復(fù)制到另一個表中:

INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;

SQL INSERT INTO SELECT 示例

在本示例中,我們將使用著名的 Northwind 示例數(shù)據(jù)庫。

以下是 "Customers" 表的一部分選擇:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico

以及 "Suppliers" 表的一部分選擇:

SupplierID SupplierName ContactName Address City PostalCode Country
1 Exotic Liquid Charlotte Cooper 49 Gilbert St. London EC1 4SD UK
2 New Orleans Cajun Delights Shelley Burke P.O. Box 78934 New Orleans 70117 USA
3 Grandma Kelly's Homestead Regina Murphy 707 Oxford Rd. Ann Arbor 48104 USA

SQL INSERT INTO SELECT 示例

將 "Suppliers" 復(fù)制到 "Customers"(未填充數(shù)據(jù)的列將包含 NULL):

INSERT INTO Customers (CustomerName, City, Country)
SELECT SupplierName, City, Country FROM Suppliers;

將 "Suppliers" 復(fù)制到 "Customers"(填充所有列):

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
SELECT SupplierName, ContactName, Address, City, PostalCode, Country FROM Suppliers;

僅將德國供應(yīng)商復(fù)制到 "Customers":

INSERT INTO Customers (CustomerName, City, Country)
SELECT SupplierName, City, Country FROM Suppliers
WHERE Country='Germany';

SQL CASE 表達式

SQL CASE 表達式遍歷條件并在滿足第一個條件時返回一個值(類似于 if-then-else 語句)。因此,一旦條件為真,它將停止閱讀并返回結(jié)果。如果沒有條件為真,它將返回 ELSE 子句中的值。

如果沒有 ELSE 部分并且沒有條件為真,它將返回 NULL。

CASE 語法

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END;

SQL CASE 示例

在下面的示例中,我們使用了 Northwind 示例數(shù)據(jù)庫中的 "OrderDetails" 表的一部分選擇:

OrderDetailID OrderID ProductID Quantity
1 10248 11 12
2 10248 42 10
3 10248 72 5
4 10249 14 9
5 10249 51 40

SQL CASE 示例

以下 SQL 遍歷條件并在滿足第一個條件時返回一個值:

SELECT OrderID, Quantity,
CASE
    WHEN Quantity > 30 THEN 'The quantity is greater than 30'
    WHEN Quantity = 30 THEN 'The quantity is 30'
    ELSE 'The quantity is under 30'
END AS QuantityText
FROM OrderDetails;

以下 SQL 將按 City 對客戶進行排序。但是,如果 City 為 NULL,則按 Country 進行排序:

SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
    WHEN City IS NULL THEN Country
    ELSE City
END);

SQL NULL 函數(shù)

在 SQL 中,處理可能包含 NULL 值的情況是很常見的。在這里,我們將探討一些處理 NULL 值的 SQL 函數(shù),包括 IFNULL()ISNULL()、COALESCE()NVL()。

MySQL

MySQL 的 IFNULL() 函數(shù)允許您在表達式為 NULL 時返回替代值:

SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0))
FROM Products;

或者我們可以使用 COALESCE() 函數(shù),如下所示:

SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products;

SQL Server

SQL Server 的 ISNULL() 函數(shù)允許您在表達式為 NULL 時返回替代值:

SELECT ProductName, UnitPrice * (UnitsInStock + ISNULL(UnitsOnOrder, 0))
FROM Products;

或者我們可以使用 COALESCE() 函數(shù),如下所示:

SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products;

MS Access

MS Access 的 IsNull() 函數(shù)在表達式為 NULL 值時返回 TRUE(-1),否則返回 FALSE(0):

SELECT ProductName, UnitPrice * (UnitsInStock + IIF(IsNull(UnitsOnOrder), 0, UnitsOnOrder))
FROM Products;

Oracle

Oracle 的 NVL() 函數(shù)實現(xiàn)相同的結(jié)果:

SELECT ProductName, UnitPrice * (UnitsInStock + NVL(UnitsOnOrder, 0))
FROM Products;

或者我們可以使用 COALESCE() 函數(shù),如下所示:

SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products;

這些函數(shù)允許您以一種靈活的方式處理 NULL 值,確保在進行計算時不會出現(xiàn)意外的結(jié)果。

最后

為了方便其他設(shè)備和平臺的小伙伴觀看往期文章:公眾號搜索Let us Coding,或者掃描下方二維碼,關(guān)注公眾號,即可獲取最新文章。

看完如果覺得有幫助,歡迎點贊、收藏關(guān)注

SQL 數(shù)據(jù)操作技巧:SELECT INTO、INSERT INTO SELECT 和 CASE 語句詳解文章來源地址http://www.zghlxwxcb.cn/news/detail-747591.html

到了這里,關(guān)于SQL 數(shù)據(jù)操作技巧:SELECT INTO、INSERT INTO SELECT 和 CASE 語句詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • insert into select 語法使用

    INSERT INTO SELECT語句:從一個表復(fù)制數(shù)據(jù),然后把數(shù)據(jù)插入到一個已存在的表中。 將一個table1的數(shù)據(jù)的部分字段復(fù)制到table2中,或者將整個table1復(fù)制到table2中, 這時候我們就要使用SELECT INTO 和 INSERT INTO SELECT 表復(fù)制語句了。 1.INSERT INTO SELECT語句 語句形式為:Insert into Table2(fie

    2024年02月16日
    瀏覽(31)
  • 【SQL開發(fā)實戰(zhàn)技巧】系列(八):聊聊如何插入數(shù)據(jù)時比約束更靈活的限制數(shù)據(jù)插入以及怎么一個insert語句同時插入多張表

    【SQL開發(fā)實戰(zhàn)技巧】系列(一):關(guān)于SQL不得不說的那些事 【SQL開發(fā)實戰(zhàn)技巧】系列(二):簡單單表查詢 【SQL開發(fā)實戰(zhàn)技巧】系列(三):SQL排序的那些事 【SQL開發(fā)實戰(zhàn)技巧】系列(四):從執(zhí)行計劃討論UNION ALL與空字符串UNION與OR的使用注意事項 【SQL開發(fā)實戰(zhàn)技巧】系列

    2024年01月15日
    瀏覽(37)
  • Apache Doris 數(shù)據(jù)導(dǎo)入:Insert Into語句;Binlog Load;Broker Load;HDFS Load;Spark Load;例行導(dǎo)入(Routine Load)

    Apache Doris 數(shù)據(jù)導(dǎo)入:Insert Into語句;Binlog Load;Broker Load;HDFS Load;Spark Load;例行導(dǎo)入(Routine Load)

    Doris 提供多種數(shù)據(jù)導(dǎo)入方案,可以針對不同的數(shù)據(jù)源進行選擇不同的數(shù)據(jù)導(dǎo)入方式。Doris支持各種各樣的數(shù)據(jù)導(dǎo)入方式:Insert Into、json格式數(shù)據(jù)導(dǎo)入、Binlog Load、Broker Load、Routine Load、Spark Load、Stream Load、S3 Load,下面分別進行介紹。 注意: Doris 中的所有導(dǎo)入操作都有原子性保

    2024年02月21日
    瀏覽(19)
  • SQL之CASE WHEN函數(shù)語句多條件下使用詳解

    針對CASE WHEN函數(shù)語句,實現(xiàn)簡單CASE函數(shù)和CASE搜索函數(shù)兩種格式。 同時配合 SUM以及COUNT方法的使用 1、CASE 的兩種格式: ?簡單CASE函數(shù)和CASE搜索函數(shù) 兩種格式示例: 狀態(tài): state 訂單號: orderId 這兩種格式式,可以實現(xiàn)相同的功能。但是簡單CASE函數(shù)和CASE搜索函數(shù)相比,功能

    2024年02月11日
    瀏覽(37)
  • INSERT...SELECT語句對查詢的表加鎖嗎

    INSERT...SELECT語句對查詢的表加鎖嗎

    insert into t2 select * from t1; 這條語句會對查詢表 t1 加鎖嗎?不要輕易下結(jié)論。對GreatSQL的鎖進行研究之前,首先要確認一下事務(wù)的隔離級別,不同的事務(wù)隔離級別,鎖的表現(xiàn)是不一樣的。 創(chuàng)建測試表t1,t2 創(chuàng)建存儲過程,向t1表插入測試數(shù)據(jù) 查詢當前事務(wù)隔離級別: connection

    2024年03月09日
    瀏覽(26)
  • MySQL 中 INSERT INTO 的使用詳解

    MySQL 是一個非常流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有高效和可擴展性等特點。在 MySQL 數(shù)據(jù)庫中,INSERT INTO 是一種用于將新行插入表中的 SQL 命令。它是 MySQL 最基本、最常用的語句之一,也是許多應(yīng)用程序的核心功能之一。本文將介紹如何正確地使用 INSERT INTO,以及如何處理異

    2024年02月15日
    瀏覽(31)
  • SQL語句詳解三-DML(數(shù)據(jù)操作語言)

    DML(數(shù)據(jù)操作語言):增刪改表中數(shù)據(jù),針對的對象是數(shù)據(jù)庫中表格的數(shù)據(jù)。 添加數(shù)據(jù) 語法 注意事項 列名 要和 值 一一對應(yīng) 如果表名后,不定義列名,則默認給所有列添加值(方式二) 除了數(shù)字類型,其他類型需要使用 引號( 單雙都可以 ) 引起來 示例代碼 刪除數(shù)據(jù) 語法 注意

    2024年01月21日
    瀏覽(14)
  • MySQL修煉手冊7:數(shù)據(jù)修改基礎(chǔ):INSERT、UPDATE、DELETE語句詳解

    在掌握了MySQL數(shù)據(jù)庫的基礎(chǔ)之后,學(xué)習(xí)如何對數(shù)據(jù)進行有效的修改是至關(guān)重要的。本篇博客旨在提供一個深入的指南,涵蓋了數(shù)據(jù)修改的三大基礎(chǔ)操作:插入(INSERT)、更新(UPDATE)、刪除(DELETE)。為了更好地理解這些概念,我們首先創(chuàng)建一個示例表“水果表”,然后逐一

    2024年01月17日
    瀏覽(27)
  • 第3.1章:StarRocks數(shù)據(jù)導(dǎo)入--Insert into

    第3.1章:StarRocks數(shù)據(jù)導(dǎo)入--Insert into

    Insert Into是我們在MySQL中常用的導(dǎo)入方式,StarRocks同樣也支持使用Insert into的方式進行數(shù)據(jù)導(dǎo)入,并且每次insert into操作都是一次完整的導(dǎo)入事務(wù)。 在StarRocks中,Insert的語法和MySQL等數(shù)據(jù)庫的語法類似,具體可以參考官網(wǎng)文檔: Insert Into 導(dǎo)入 @ InsertInto @ StarRocks Docs https://docs.s

    2024年02月08日
    瀏覽(24)
  • hive表數(shù)據(jù)更新insert overwrite/merge into

    根據(jù)甲方要求,需要對大數(shù)據(jù)平臺指定表(hive、impala表)的歷史數(shù)據(jù)[2021-01-01至2023-03-29]指定字段進行批量更新,然后把表同步到Oracle。先更新大數(shù)據(jù)平臺上的表,再把更新完成的表同步到Oracle。hive有8張表更新,其中4張大表【分區(qū)表】(數(shù)據(jù)量分別為:1038738976、260958144、2586

    2024年02月08日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包