如何使用 ChatGPT 編寫 SQL 查詢

編寫 SQL 查詢可能既耗時又具有挑戰性。如果您的任務是為特定業務場景創建解決方案,則需要確保您的查詢既高效又準確。

ChatGPT 是一種 AI 工具,已經過大量技術文本(包括 SQL)的訓練。它可以回答有關 SQL 語法的問題、生成 SQL 查詢或解釋給定 SQL 查詢的輸出。

通過使用 ChatGPT 生成 SQL 查詢,您可以專注於更高級別的任務,例如設計報告和數據流。這不僅可以節省您的時間,還可以確保數據分析的質量和有效性。

到本文結束時,您將對如何使用 ChatGPT 來幫助您編寫 SQL 查詢有一個深刻的理解。

目錄

使用 ChatGPT 進行 SQL 查詢的優勢

如何使用 ChatGPT 編寫 SQL 查詢

ChatGPT 是一種強大的人工智能工具,可以理解自然語言。它可以作為初學者和經驗豐富的開發人員的寶貴工具。

初學者會發現 SQL 的語法很複雜並且難以記住。ChatGPT 可以通過將自然語言請求轉換為 SQL 查詢來提供幫助。這使得學習 SQL 更具交互性,並且不那麼令人生畏,因為您可以實時看到簡單英語到 SQL 的翻譯。

有經驗的開發人員會發現制定涉及多個表和條件的複雜 SQL 查詢可能非常耗時。ChatGPT 可以根據自然語言描述的任務生成查詢骨架甚至完成查詢,從而加快這一過程。

這也減少了語法錯誤的機會。說到錯誤,ChatGPT 還可以通過提供可能的解決方案或解釋來幫助調試 SQL 查詢。它還可以建議不同的方法來優化查詢以獲得更好的性能。

如果您想更全面地了解該工具,請查看以下文章:

如果您想開始使用它進行 SQL 查詢,請繼續閱讀。

如何開始使用 ChatGPT 進行 SQL 查詢

如果您還沒有 Open AI 帳戶(它是免費的!),請按照以下步驟操作。

  1. 啟動瀏覽器並轉到https://chat.openai.com/

  2. 單擊註冊按鈕。

  3. 使用電子郵件地址、Microsoft 帳戶或 Google 帳戶註冊。

  4. 提供電話號碼以供驗證。

登錄後,您可以立即開始發送待回复的消息。您的消息稱為ChatGPT 提示

本文向您展示了大量示例,讓您在使用 SQL 時熟悉如何使用該工具。

如何為 SQL 查詢啟動 ChatGPT 會話

不同的數據庫供應商已經使用專有語法擴展了標準 SQL 代碼。

例如,Microsoft有用於與 Microsoft SQL Server 實例交互的 Transact-SQL(縮寫為 T-SQL)。T-SQL 的語法無法在其他類型的 SQL 數據庫(例如 MySQL 或 PostgreSQL)上運行。

PostgreSQL 是一種開源擴展,具有無法在 SQL Server 或 Oracle 上運行的額外命令和語法。

這意味著當您要求 ChatGTP 使用數據庫系統的擴展功能提供 SQL 查詢時,您應該通過明確您正在使用的 SQL 實現來開始您的聊天會話。

您可以用“我正在使用 Microsoft SQL Server”這樣的陳述來開始您的會話。並在下一句問你的問題。

為簡化起見,您可以使用“ With SQL Server , how do I …?” 當詢問一個概念或術語時。

對於本文的其餘部分,我將重點介紹適用於所有主要數據庫管理系統的標準 SQL 查詢。

如何表達您對 ChatGPT 的意圖

向 ChatGPT 清楚地表達您的意圖很重要。

首先描述表的結構,以便 ChatGPT 了解您正在使用的數據模型。提及表的名稱和關係,以及列及其數據類型。例如:

我有兩個表:訂單和客戶。訂單表包含列 id、customer_id、產品和價格。customers 表包含列 id、name 和 email。orders 表中的 customer_id 是引用 customers 表中 id 列的外鍵。

接下來,使用自然語言(類人文本而不是代碼)簡單地解釋您要生成的特定查詢。

盡可能準確,以幫助 ChatGPT 了解您要查找的內容。例如:

編寫一個 SQL 查詢,通過計算每個客戶的訂單價格總和來查找每個客戶的總收入。

ChatGPT 返回一個 SQL 查詢,其中包含不同部分的細分。看一下下面的 select 語句示例:

如何使用 ChatGPT 編寫 SQL 查詢

AI 技術根據您提供的表名和請求生成了 SQL 查詢。

但該工具並不止於此。它指出了一些額外的事情:

  • 當您想改用 LEFT JOIN 時。

  • 如果客戶名稱不唯一,您可能希望使用 ID 而不是 NAME。

根據查詢結果制定請求

要使用 ChatGPT 獲得更好的查詢結果,您可以將復雜的請求分成更小的塊以保持對話流。

例如,假設您想要一個更複雜的查詢來根據城市過濾客戶。

您可以通過提供此新信息來繼續聊天會話。

我有另一個名為 customer_address 的表,其中包含列 id、customer_id、街道、城市、州。customer_id 是客戶表的外鍵。

修改先前的 SQL 查詢以篩選來自芝加哥的客戶。

ChatGPT 返回帶有新 WHERE 子句的修改後的查詢。

如果您沒有使用 SQL 的經驗,這是積累知識的好方法。

請記住讓您的請求簡潔明了並在相關上下文中,以確保使用 ChatGPT 的順暢體驗。

查詢生成的 4 個最佳實踐

以下是一些確保 ChatGPT 生成的 SQL 代碼是正確解決方案的提示:

  • 表名和列名要具體,以避免歧義。

  • 清楚地說明任何條件、過濾器或分類要求。

  • 指定所需的輸出格式,例如列或聚合。

  • 如有必要,請提供類似複雜查詢的示例。

您的描述越精確,生成的查詢就越好。

優化性能的 2 種方法

使用 ChatGPT 生成 SQL 查詢時,考慮查詢的性能方面至關重要。以下是優化 SQL 查詢性能的兩種方法:

  • 使用適當的索引

  • 避免過於復雜的 SQL 查詢

使用適當的索引

在某些 SQL 擴展中可以指定查詢應使用特定索引,但這不是好的做法。如果數據庫架構或數據配置文件隨時間發生變化,您最終可能會遇到被迫使用低效索引的查詢。

但是,您可以向 ChatGPT 諮詢有關查詢最佳索引的建議。這是一個例子。

我想創建一個或多個索引來使此查詢最有效。請協助。

ChatGPT 將推薦索引並給出選擇背後的原因。

SQL 開發人員不要盲目地創建所有建議的索引,這一點很重要。它們可能不適用於實際數據。我建議您嘗試並測試每一個。

避免過於復雜的查詢

按照我們在上一節中建議的那樣構建查詢的一個優點是,您不太可能獲得難以閱讀和維護的冗長複雜查詢。

如果 ChatGPT 為您提供了一個包含多個難以遵循的子查詢的查詢,您可以告訴它提供一個使用多個查詢和一個或多個臨時表的替代腳本。

假設我認為對“Chicago”的查詢過濾過於復雜(事實並非如此!)。我會這樣指導 ChatGPT:

我想將前面的查詢分成兩個使用臨時表的單獨查詢。該腳本必須達到相同的結果。

永遠有用的 ChatGPT 幾乎不顧一切地執行您的命令。它說:

當然,我們可以通過首先創建一個臨時表來存儲每個客戶的總收入,然後查詢此臨時表以篩選來自芝加哥的客戶來獲得相同的結果。

該工具繼續提供兩個單獨的代碼部分,它們產生與前面示例相同的結果。

如何向 ChatGPT 呈現數據

如何使用 ChatGPT 編寫 SQL 查詢

當您想要對查詢進行故障排除時,您可以向 ChatGPT 提供示例數據並要求它運行 SQL。

前面的部分向您展示瞭如何描述表和關係。您還可以向 ChatGPT 提供 CREATE TABLE 語句。

下一步是以匯總或表格格式提供數據,以幫助ChatGPT 了解您的數據庫並解釋結果。

例如,您可以提供這樣的數據:

這是這些表中的數據。

顧客

1, “John Smith”, “ [email protected]

2,“Mary Doe”,“ [email protected]

命令

1, 1, “連帽衫”, 14.99

2、1,“T 卹”,5.99

3、2,“牛仔褲”,24.99

客戶_地址

1、1、“希望街”、“芝加哥”、“伊利諾伊州”

2, 2, “Cherry Lane”, “Philadelphia”, “Pennsylvania”

請注意,只有 John Smith 住在芝加哥。提供數據後,您可以要求 ChatGPT 提供特定查詢的結果。

如果您要求該工具在會話中嘗試多種變體,我建議您複製並粘貼您希望它“運行”的確切查詢,以免出現歧義。

輸入這個作為提示:“提供這個查詢的結果:

ChatGPT 將使用查詢來計算 John Smith 訂單的總收入。這是一個例子,它是正確的答案!

如何使用 ChatGPT 編寫 SQL 查詢

2 使用 ChatGPT 的缺點

需要注意的兩個主要缺點是:

  • 語法錯誤

  • 低效查詢

語法錯誤

有時 ChatGPT 會生成無法編譯或產生錯誤結果的 SQL。當您要求它使用標準 SQL 的專有擴展時,這種情況更有可能發生。

如果您將生成的查詢包裝在存儲過程中,請務必在將結果交付給數據分析師或業務用戶之前對其進行測試。

如果您對使用自然語言查詢數據的更精心策劃的方式感興趣,請查看 Microsoft 在 Power BI 中的實施:

低效查詢

當您想要確保您的 SQL 查詢高效時,您可以檢查查詢執行計劃。

這是數據庫管理系統執行的操作序列。這有點像打開機器,看看正在運行的是什麼。

ChatGPT 的問題在於它看不到您的數據庫管理系統如何處理您的 SQL 查詢。

例如,它是先按州篩選客戶還是最後執行該部分?該決定可能會對性能產生重大影響。

如果您發現查詢的產品輸出速度很慢,則需要捲起袖子親自檢查執行計劃。

最後的想法

您已經看到了使用 ChatGPT 編寫和修改業務中使用的典型 SQL 查詢的真實示例。

需要注意的是,雖然 AI 工具可以提供強大的基礎並協助生成 SQL 查詢,但它並不能取代對 SQL 的深入理解。

但是,如果使用得當,ChatGPT 可以成為 SQL 開發人員的寶貴助手。



如何在 Google 幻燈片中使用 Duet AI 建立圖像

如何在 Google 幻燈片中使用 Duet AI 建立圖像

Google Slides 引入了 Duet AI 功能,只需提供文字提示即可將圖像新增至簡報中。以下是如何使用它。

如何在 Windows 11 上的任務欄搜索中禁用 Bing Chat AI

如何在 Windows 11 上的任務欄搜索中禁用 Bing Chat AI

要從任務欄搜索禁用 Bing Chat AI,請打開“設置”>“隱私和安全”>“搜索權限”,然後關閉“顯示搜索突出顯示”。

如何在 Windows 11 上將帶有 ChatGPT 的 Bing 安裝為應用程序

如何在 Windows 11 上將帶有 ChatGPT 的 Bing 安裝為應用程序

要在 Windows 11 上將 Bing 與 ChatGPT 作為應用程序安裝,請打開 Edges 主設置菜單,選擇“應用程序”並將此站點安裝為應用程序選項。

如果您仍然無法訪問 Bing AI,You.com 會提供 AI 聊天機器人搜索

如果您仍然無法訪問 Bing AI,You.com 會提供 AI 聊天機器人搜索

You.com 推出了 YouChat 2.0,這是一個類似於 Bing 上的 ChatGPT 的人工智能聊天機器人,您不需要邀請即可使用它。

如何清除 Google Bard AI 活動歷史記錄

如何清除 Google Bard AI 活動歷史記錄

要清除 Google Bard AI 活動歷史記錄,請打開 Bard Activity,單擊活動的“刪除”按鈕或選擇刪除所有條目。

什麼是Grok AI?如何有效地使用Grok AI

什麼是Grok AI?如何有效地使用Grok AI

Grok 的優勢在於它可以根據實時數據做出回應。Twitter (X) 是一個非常強大的加密、金融平臺,因此值得投資者等待。

如何在 Windows 11 上將 Google Bard 安裝為應用程序

如何在 Windows 11 上將 Google Bard 安裝為應用程序

要安裝 Google Bard,請打開 Chrome > 自定義和控制 > 更多工具菜單 > 創建快捷方式。您還可以從 Windows 11 上的 Edge 添加它。

如何在 Android 或 iPhone 上的 SwiftKey 上使用 Bing Chat AI

如何在 Android 或 iPhone 上的 SwiftKey 上使用 Bing Chat AI

要在 SwiftKey 上使用 Bing Chat AI,請在 Android 和 iPhone 上打開應用程序,調出鍵盤,單擊 Bing,選擇搜索、提示音或聊天。

如何通過 ChatGPT 提前訪問 Bing

如何通過 ChatGPT 提前訪問 Bing

要儘早使用 ChatGPT AI 訪問 Bing,請使用您的 Microsoft 帳戶註冊,然後更改這些設置以跳過排隊以加快訪問速度

如何清除 Bing Chat AI 搜索歷史記錄

如何清除 Bing Chat AI 搜索歷史記錄

要清除 Bing Chat AI 搜索歷史記錄,請打開 Microsoft 帳戶上的搜索歷史記錄並刪除查詢。您的完整問題不會被存儲