首頁 > 軟體

親自教你使用 ChatGPT 編寫 SQL JOIN 查詢範例

2023-02-25 06:03:58

通過清晰的範例和解釋,本文展示了 ChatGPT 如何簡化和簡化建立複雜 MySQL 查詢的過程,使使用者更容易與資料庫互動並檢索他們需要的資料。無論您是初學者還是經驗豐富的開發人員,本文都提供了有關如何利用 ChatGPT 來增強您的 MySQL 查詢編寫技能的寶貴見解。

本文涉及到的相關軟體,dbForge Studio for SQL Server和ChatGPT,在您嘗操作前,請務必先確保兩個程式都正常運作哦,廢話不多說,開始上乾貨!

Devart 提供包括Oracle、SQL Server、MySQL、PostgreSQL、InterBase以及Firebird在內的專業資料庫遠端管理軟體,dbForge Studio for MySQL是一個在Windows平臺被廣泛使用的MySQL使用者端,它能夠使MySQL開發人員和管理人員在一個方便的環境中與他人一起完成建立和執行查詢,開發和偵錯MySQL程式,自動化管理MySQL資料庫物件等工作。

dbForge Studio for MySQL 最新下載

https://www.evget.com/product/1708

一、ChatGPT 如何幫助 SQL 開發人員

ChatGPT 可以通過多種方式協助 SQL 開發人員:

  • 編寫 SQL 查詢:ChatGPT 可以幫助編寫用於資料檢索、資料操作和資料庫管理等任務的 SQL 查詢。
  • 偵錯 SQL 程式碼:ChatGPT 可以通過提供優化查詢效能、修復語法錯誤和識別潛在問題的建議來幫助排除 SQL 程式碼故障。
  • 提供SQL語法資訊:ChatGPT可以提供SQL語法、關鍵字、函數等資訊,方便開發者編寫正確的SQL程式碼。
  • 提供查詢優化提示:ChatGPT 可以提供有關如何優化 SQL 查詢的提示,例如使用索引、降低複雜性以及避免子查詢。
  • 生成報告:ChatGPT可以根據SQL資料生成報告,如銷售報告、客戶報告、庫存報告等。

總體而言,ChatGPT 可以通過為各種與 SQL 相關的任務提供快速解答和支援,幫助 SQL 開發人員提高效率和生產力。讓我們看看它如何幫助處理非常複雜的查詢,例如 JOIN。

二、先決條件

要有效地使用 ChatGPT 編寫 SQL JOIN 查詢並使用 dbForge Studio for SQL Server 驗證它們,需要滿足以下先決條件:

  • 用於 SQL Server 的 dbForge Studio。這個高階資料庫管理工具將用於驗證和測試 ChatGPT 生成的 SQL JOIN 查詢。
  • ChatGPT 帳戶。您需要一個具有 OpenAI 的 ChatGPT 的活躍帳戶才能與語言模型互動並生成 SQL JOIN 查詢。
  • AdventureWorks2019 資料庫。此範例資料庫將用於演示使用 ChatGPT 編寫 SQL JOIN 查詢然後使用 dbForge Studio for SQL Server 驗證它們的過程。

具備這些先決條件後,您就可以按照本文中概述的步驟進行操作,並瞭解如何有效地使用 ChatGPT 編寫 SQL JOIN 查詢並使用 dbForge Studio for SQL Server 驗證它們。

三、下載並安裝 AdventureWorks2019 資料庫

  • 從 Microsoft 官方網站下載 AdventureWorks2019.bak檔案
  • 藉助 SQL Server Management Studio 或 dbForge Studio for SQL Server 等資料庫管理工具還原 AdventureWorks2019 資料庫。為此,請開啟該工具,連線到您的 SQL Server 範例,然後按照從備份檔案還原資料庫的步驟進行操作。
  • 驗證資料庫安裝。恢復資料庫後,您可以通過使用資料庫管理工具連線到資料庫並瀏覽資料庫物件來驗證安裝。您應該會看到與 AdventureWorks2019 資料庫關聯的表、檢視、儲存過程和其他資料庫物件。

四、SQL JOIN 查詢範例

現在我們手頭已經具備了所有必需的先決條件,我們可以開始使用 ChatGPT 編寫 SQL JOIN 查詢並使用 dbForge Studio for SQL Server 檢查它們。以下是該過程的工作方式:

  • 與 ChatGPT 互動:我們將使用 ChatGPT通過向其提供有關所需結果的資訊來建立所有型別的 SQL JOINS 。這可以通過與語言模型的互動來完成,我們將在其中為其提供有關我們要連線的表和列以及我們想要實現的結果的必要詳細資訊。
  • 接收 SQL JOIN 查詢:ChatGPT 將生成滿足指定條件的 SQL JOIN 查詢。可以將此查詢複製並貼上到 dbForge Studio for SQL Server 中執行。
  • 在 dbForge Studio for SQL Server 中執行 SQL JOIN 查詢:建立查詢後,我們將使用 dbForge Studio for SQL Server 對 AdventureWorks2019 資料庫執行查詢。這將使我們能夠驗證 SQL JOIN 查詢的結果並確保它返回我們需要的結果。

內部聯接

讓我們從最廣泛和最簡單的 JOIN —  INNER JOIN開始。內部聯接僅返回兩個表中符合指定聯接條件的行。換句話說,它只返回兩個表的交叉資料,丟棄所有不匹配的行。

假設,我們想要獲得所有客戶的列表以及他們的地址和他們所下的訂單。讓我們請求 ChatGPT 協助我們。

現在讓我們使用 dbForge Studio for SQL Server 來執行 ChatGPT 建立的查詢並確認它返回了我們需要的結果。

SELECT
c.CustomerID
,p.FirstName + ' ' + p.LastName AS CustomerName
,a.AddressLine1
,a.city
,sp.Name AS StateProvince
,a.PostalCode
,o.SalesOrderID
,o.OrderDate
FROM Sales.Customer c
INNER JOIN Person.Person p
ON c.PersonId = p.BusinessEntityID
INNER JOIN Person.BusinessEntityAddress bea
ON p.BusinessEntityID = bea.BusinessEntityID
INNER JOIN Person.Address a
ON bea.AddressID = a.AddressID
INNER JOIN Person.StateProvince sp
ON a.StateProvinceID = sp.StateProvinceID
INNER JOIN Sales.SalesOrderHeader o
ON c.CustomerID = o.CustomerID

查詢已成功執行並輸出所需的結果集。

左連線

讓我們繼續進行 LEFT JOINS。快速提醒一下——SQL 中的 LEFT JOIN 是一種連線,它返回左表 (table1) 中的所有行,以及右表 (table2) 中的匹配行。如果沒有匹配,則右表的列將輸出 NULL 值。

現在我們將想要的結果集描述給ChatGPT,讓它寫一個查詢來得到這個結果集。假設,我們想要檢索所有客戶的列表以及他們曾經下過的訂單數量。

正如預期的那樣,ChatGPT 使用 LEFT JOIN 生成了一個查詢。讓我們使用 dbForge Studio for SQL Server 來執行它以驗證它是否提供了預期的結果。

SELECT
c.CustomerID
,p.FirstName + ' ' + p.LastName AS CustomerName
,COUNT(o.SalesOrderID) AS NumberOfOrders
FROM Sales.Customer c
LEFT JOIN Person.Person p
ON c.PersonID = p.BusinessEntityID
LEFT JOIN Sales.SalesOrderHeader o
ON c.CustomerID = o.CustomerID
GROUP BY c.CustomerID
,p.FirstName
,p.LastName

正確加入

現在讓我們讓 ChatGPT 編寫一個帶有 RIGHT JOIN 的 SELECT 查詢。SQL 中的 RIGHT JOIN 與 LEFT JOIN 的工作方式類似,返回右表 (table2) 中的所有行和左表 (table1) 中的匹配行。如果沒有匹配項,將為左表的列返回 NULL 值。

假設我們要檢索一個結果集,該結果集顯示 AdventureWorks2019 資料庫中的所有供應商以及從這些供應商進行的所有購買。

再一次,讓我們執行 ChatGPT 在 dbForge Studio for SQL Server 中建立的查詢——只是為了確保它正常工作並返回我們期望的結果集。

SELECT
v.Name AS VendorName
,p.OrderDate
,p.TotalDue
FROM [Purchasing].[PurchaseOrderHeader] p
RIGHT JOIN [Purchasing].[Vendor] v
ON v.BusinessEntityID = p.VendorID

全外連線

FULL OUTER JOIN 是關聯式資料庫中的一種連線操作,其中兩個表中被連線的所有行都包含在結果集中,而不管另一個表中是否存在匹配項。如果匹配,則將兩個表中的行連線在一起。如果沒有匹配項,則使用 NULL 值填充缺失表中的列。

讓我們請求 ChatGPT 協助我們進行 FULL OUTER JOIN 查詢。

現在我們在 dbForge Studio 中檢查 SQL Server 的查詢,就像我們在前面的範例中所做的那樣。

SELECT
*
FROM Sales.Customer
FULL OUTER JOIN Sales.SalesOrderHeader
ON Sales.Customer.CustomerID = Sales.SalesOrderHeader.CustomerID;

交叉連線

CROSS JOIN也稱為笛卡爾積,是關聯式資料庫中的一種連線操作,它將一個表中的每一行與另一個表中的每一行組合在一起。結果表包含兩個表中所有可能的行組合。讓我們讓 ChatGPT 建立一個查詢,以獲取 AdventureWorks2019 資料庫中產品類別和子類別的所有可能組合。

現在讓我們在 dbForge Studio for SQL Server 中執行查詢來驗證它。

SELECT
pc.Name AS CategoryName
,psс.Name AS SubcategoryName
FROM Production.ProductCategory pc
CROSS JOIN Production.ProductSubcategory psс

自我加入

在 SQL 中,SELF JOIN是一種常規的連線操作,其中表與自身連線。當我們想要比較單個表中的資料時,它很有用。

因此,要接收 SELF JOIN,我們需要要求 ChatGPT 將一個表連線到自身,就好像該表是兩個表一樣。假設我們要從AdventureWorks2019資料庫的HumanResources.Employee表中獲取所有主管及其下屬的列表,其中主管和下屬的性別相同。

查詢已準備就緒。現在讓我們在 dbForge Studio 中驗證它並檢視輸出。

SELECT
e1.Gender AS Gender,
e1.JobTitle AS Supervisor,
e2.JobTitle AS Subordinate
FROM
HumanResources.Employee e1
FULL JOIN HumanResources.Employee e2
ON e1.Gender = e2.Gender
WHERE
e1.OrganizationLevel = 1
AND e2.OrganizationLevel <> 1

上面的範例表明,即使您不是經驗豐富的 SQL 開發人員,您仍然可以建立涉及 JOIN 的複雜查詢。你需要做的就是向AI詳細說明你想要獲得的結果型別或加入哪些表,它會為你處理任務。這很了不起,不是嗎?因此,複雜的資料庫分析和開發現在變得更容易為公眾所接受。

ChatGPT 可以學習嗎?

ChatGPT 是一種基於機器學習的語言模型,旨在隨著時間的推移進行學習和改進。它接受了大量文字資料的訓練,並使用該資料生成對使用者輸入的響應。隨著 ChatGPT 與使用者互動並接收反饋,它可以繼續學習和適應使用者需求,改進其響應並隨著時間的推移變得更加準確和有效。

當用戶提供有關他們的問題或主題的更多上下文或詳細資訊時,ChatGPT 可以使用該資訊生成更相關和準確的響應。通過將使用者反饋和附加資訊納入其輸入資料,ChatGPT 可以學習和適應使用者的需求,並生成更有效的答案。

六、ChatGPT 會取代資料庫專家嗎?

在可預見的未來,ChatGPT 是否會取代資料庫程式設計師、分析師或管理員是非常值得懷疑的,主要是因為它缺乏對有效程式設計和管理資料庫所需的資料庫、SQL 語法和資料結構的深刻理解。

資料庫程式設計需要高水平的專業知識,包括設計和實施高效且安全的資料庫系統的能力,以及編寫和優化 SQL 查詢的能力。ChatGPT 可以協助生成 SQL 查詢,但它不能取代人類資料庫程式設計師帶來的批判性思維、上下文意識、問題解決和專業知識。此外,ChatGPT 是一種可用於增強人類資料庫程式設計師工作的工具,但它無法獨立管理資料庫或做出有關如何優化和保護資料庫系統的複雜決策。

因此,ChatGPT 不太可能取代資料庫程式設計師,但它可能能夠在某些情況下協助和增強他們的工作。

結論

作為一種語言模型,ChatGPT 可以就如何構建複雜的 SQL 查詢和 JOIN 提供指導和建議,但它不能直接存取 SQL 資料庫。它可以幫助您瞭解語法、最佳實踐和有關如何構建查詢以高效執行的一般指導。但是,要建立和執行任何複雜的 SQL 查詢,您需要使用資料庫管理系統(例如 SQL Server)和 GUI 使用者端來與此 DBMS 互動(例如用於 SQL Server 的 dbForge Studio)。

如果您正在尋求增強您的 MySQL 資料庫管理體驗,我們建議您下載 dbForge Studio for MySQL免費試用。發現使用此高階 IDE 處理資料庫的強大功能和易用性,並親自檢視結果。

到此這篇關於如何使用 ChatGPT 編寫 SQL JOIN 查詢的文章就介紹到這了,更多相關ChatGPT 編寫 SQL JOIN 查詢內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com