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

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

歡迎閱讀本篇博客文章,我們將為您詳細(xì)介紹 MySQL 中的數(shù)據(jù)操作技巧:SELECT INTO、INSERT INTO SELECT 和 CASE 語句。掌握這些技巧將有助于您在數(shù)據(jù)庫操作中更加靈活和高效地處理數(shù)據(jù)。

Sql數(shù)據(jù)庫操作詳解

SQL SELECT INTO 語句

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

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ù)制到另一個(gè)數(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 語句將來自多個(gè)表的數(shù)據(jù)復(fù)制到新表中:

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

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

SELECT * INTO newtable
FROM oldtable
WHERE 1 = 0;

SQL INSERT INTO SELECT 語句

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

INSERT INTO SELECT 語法

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

INSERT INTO table2
SELECT * FROM table1
WHERE condition;

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

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

SQL INSERT INTO SELECT 示例

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

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

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico

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

SupplierIDSupplierNameContactNameAddressCityPostalCodeCountry
1Exotic LiquidCharlotte Cooper49 Gilbert St.LondonEC1 4SDUK
2New Orleans Cajun DelightsShelley BurkeP.O. Box 78934New Orleans70117USA
3Grandma Kelly's HomesteadRegina Murphy707 Oxford Rd.Ann Arbor48104USA

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 表達(dá)式

SQL CASE 表達(dá)式遍歷條件并在滿足第一個(gè)條件時(shí)返回一個(gè)值(類似于 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" 表的一部分選擇:

OrderDetailIDOrderIDProductIDQuantity
1102481112
2102484210
310248725
410249149
5102495140

SQL CASE 示例

以下 SQL 遍歷條件并在滿足第一個(gè)條件時(shí)返回一個(gè)值:

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 對客戶進(jìn)行排序。但是,如果 City 為 NULL,則按 Country 進(jìn)行排序:

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ù)允許您在表達(dá)式為 NULL 時(shí)返回替代值:

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ù)允許您在表達(dá)式為 NULL 時(shí)返回替代值:

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ù)在表達(dá)式為 NULL 值時(shí)返回 TRUE(-1),否則返回 FALSE(0):

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

Oracle

Oracle 的 NVL() 函數(shù)實(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 值,確保在進(jìn)行計(jì)算時(shí)不會出現(xiàn)意外的結(jié)果。文章來源地址http://www.zghlxwxcb.cn/article/573.html

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

原文地址:http://www.zghlxwxcb.cn/article/573.html

如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請聯(lián)系站長進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

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

相關(guān)文章

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

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

    SELECT INTO 語句將數(shù)據(jù)從一個(gè)表復(fù)制到一個(gè)新表中。 新表將按照在舊表中定義的列名和類型創(chuàng)建。您可以使用 AS 子句創(chuàng)建新的列名。 以下 SQL 語句創(chuàng)建 Customers 的備份副本: 以下 SQL 語句使用 IN 子句將表復(fù)制到另一個(gè)數(shù)據(jù)庫中的新表中: 以下 SQL 語句僅復(fù)制一些列到新表中:

    2024年02月05日
    瀏覽(30)
  • pycharm連接MySql數(shù)據(jù)庫,新建表creat table、刪除表drop table、查詢表select、插入數(shù)據(jù)insert

    親愛的小伙伴,歡迎你來為學(xué)習(xí)新的知識啦~~~ 一、安裝pymysql 首先我們肯定要先在python中把能操作mySql的第三方數(shù)據(jù)庫安裝一下呀~ 安裝方式:pip安裝(你有沒有安裝好pip呀,可以看安裝pip的相關(guān)文章進(jìn)行安裝好哦~) 打開我們電腦的終端,然后輸入以下的命令,將我們

    2024年02月09日
    瀏覽(26)
  • insert into select 語法使用

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

    2024年02月16日
    瀏覽(31)
  • 數(shù)據(jù)庫高效批量更新操作 MERGE INTO

    使用 UPDATE 批量更新大量的數(shù)據(jù),會出現(xiàn)效率低下,有時(shí)候甚至卡死的情況,后面通過使用 MERGE INTO 代替 UPDATE 執(zhí)行批量更新,會提升執(zhí)行效率。 原理:因?yàn)?UPDATE 關(guān)聯(lián)子查詢寫法,是選到一條做一次子查詢,這種寫法得更新少,走好的索引才行,MERGE 寫法是執(zhí)行完 ON 后一次

    2024年02月17日
    瀏覽(13)
  • 大數(shù)據(jù):hive數(shù)據(jù)庫的操作語法,數(shù)據(jù)表,內(nèi)部表,external外部表,數(shù)據(jù)導(dǎo)入導(dǎo)出load,insert

    大數(shù)據(jù):hive數(shù)據(jù)庫的操作語法,數(shù)據(jù)表,內(nèi)部表,external外部表,數(shù)據(jù)導(dǎo)入導(dǎo)出load,insert

    2022找工作是學(xué)歷、能力和運(yùn)氣的超強(qiáng)結(jié)合體,遇到寒冬,大廠不招人,可能很多算法學(xué)生都得去找開發(fā),測開 測開的話,你就得學(xué)數(shù)據(jù)庫,sql,oracle,尤其sql要學(xué),當(dāng)然,像很多金融企業(yè)、安全機(jī)構(gòu)啥的,他們必須要用oracle數(shù)據(jù)庫 這oracle比sql安全,強(qiáng)大多了,所以你需要學(xué)

    2024年02月08日
    瀏覽(33)
  • 數(shù)據(jù)庫作業(yè)——select查詢操作

    數(shù)據(jù)庫作業(yè)——select查詢操作

    創(chuàng)建數(shù)據(jù)庫 插入數(shù)據(jù) 1、顯示所有職工的基本信息。 2、查詢所有職工所屬部門的部門號,不顯示重復(fù)的部門號。 3、求出所有職工的人數(shù)。 4、列出最高工和最低工資。 5、列出職工的平均工資和總工資。 6、創(chuàng)建一個(gè)只有職工號、姓名和參加工作的新表,名為工作日期表。

    2024年02月13日
    瀏覽(28)
  • SQL數(shù)據(jù)庫的查詢操作大全(select)

    SQL數(shù)據(jù)庫的查詢操作大全(select)

    1、數(shù)據(jù)庫的連接、創(chuàng)建 2、對字段的操作:(alter table) 3、對數(shù)據(jù)的操作(插入、修改、刪除) 4、數(shù)據(jù)查詢(select) 5、多表查詢(join on) 6、約束操作 四、數(shù)據(jù)庫查詢大全(select) 1、select 字段名 from 表; 2、In查詢:用于 過濾 你所需要查詢的內(nèi)容 ???????????????

    2023年04月08日
    瀏覽(19)
  • Hive Sql優(yōu)化之一次from查詢多次insert into操作

    例:統(tǒng)計(jì)字段空值率 優(yōu)化點(diǎn):一次map多個(gè)reduce,有效節(jié)省了map操作 流程如下: 1.創(chuàng)建表; 2.插入數(shù)據(jù); 3.參照下面語句;

    2024年02月17日
    瀏覽(18)
  • MySQL數(shù)據(jù)庫——MySQL INSERT:插入數(shù)據(jù)(添加數(shù)據(jù))

    數(shù)據(jù)庫與表創(chuàng)建成功以后,需要向數(shù)據(jù)庫的表中插入數(shù)據(jù)。在 MySQL 中可以使用 INSERT 語句向數(shù)據(jù)庫已有的表中插入一行或者多行元組數(shù)據(jù)。 INSERT 語句有兩種語法形式,分別是 INSERT…VALUES 語句和 INSERT…SET 語句。 1) INSERT…VALUES語句 INSERT VALUES 的語法格式為: 語法說明如下:

    2024年02月08日
    瀏覽(20)
  • 探索SQL深入理解數(shù)據(jù)庫操作的關(guān)鍵概念與技巧【文末送書】

    探索SQL深入理解數(shù)據(jù)庫操作的關(guān)鍵概念與技巧【文末送書】

    SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)是一種用于管理關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)化語言。無論是在開發(fā)應(yīng)用程序、進(jìn)行數(shù)據(jù)分析還是進(jìn)行數(shù)據(jù)庫管理,掌握SQL都是至關(guān)重要的。本文將從入門級別開始,逐步引導(dǎo)您了解SQL語言的基礎(chǔ)知識,直到掌握高級技巧。 創(chuàng)建數(shù)據(jù)庫 首先

    2024年04月22日
    瀏覽(44)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包