跳至主要內容
SPCX Tools

CSV 轉 SQL

將 CSV 資料即時轉換為 SQL 的 CREATE TABLE 與 INSERT 語法。

本機執行 — 檔案絕不會離開您的裝置

正在載入工具…

如何使用 CSV 轉 SQL

  1. 1將 CSV 資料貼上至輸入框,或點擊「範例」查看格式說明。
  2. 2輸入目標資料表名稱,並選擇您使用的資料庫類型(MySQL、PostgreSQL、SQLite 或 SQL Server)。
  3. 3切換選項以包含 CREATE TABLE 語法、批次處理 INSERT,或將空白儲存格視為 NULL。
  4. 4複製產生的 SQL,或直接下載為 .sql 檔案。

快速且注重隱私的 CSV 轉 SQL 轉換器

將試算表資料轉換為關聯式資料庫格式,是開發人員、資料庫管理員和資料分析師常見的工作。這款工具讓你可以直接在網頁瀏覽器中將 CSV 轉換為 SQL。無論你需要為新資料庫建立初始資料、轉移舊資料,還是快速匯入資料集,都能在幾秒鐘內從 CSV 資料產生 INSERT 語法。

由於整個轉換過程都在你的裝置上本機執行,你的資料絕不會被上傳到外部伺服器。這確保了絕對的隱私與安全,讓你可以安全地處理機密的使用者資料、財務紀錄或專有資訊,不必擔心資料外洩的風險。

自動型別推斷如何運作

手動為包含數十個欄位的資料集撰寫 schema 非常繁瑣。為了節省時間,本工具會自動讀取您的 CSV 資料,並為每個欄位推斷最適合的 SQL 資料型別。它會檢查各列的實際數值(略過空白儲存格),並套用以下規則:

  • INTEGER:若該欄位的所有值皆為整數(例如 42、-15),則設為此型別。
  • DECIMAL:若數值為浮點數或使用科學記號(例如 3.14、-0.5),則設為此型別。
  • BOOLEAN:若該欄位僅包含 true 或 false(不分大小寫),則設為此型別。
  • DATE:若數值符合標準 ISO 日期格式(YYYY-MM-DD),則設為此型別。
  • TEXT / VARCHAR:若欄位包含混合資料、純文字,或不符合上述嚴格規則的格式,則會使用此備用型別。

若您選擇產生 CREATE TABLE 語法,這些推斷出的型別將會自動對應至您所選資料庫方言的正確語法。

支援的 SQL 方言

不同的資料庫引擎對於識別字(如資料表與欄位名稱)的引號標記、資料型別定義以及字面值(literal values)的格式化,都有各自的規則。本工具支援四種主要的 SQL 方言,確保產生的 SQL 能夠順利執行,不會出現語法錯誤:

MySQL: 當您將 CSV 轉換為 MySQL 格式時,本工具會以反引號 (`) 包覆資料表與欄位名稱。文字欄位預設為 VARCHAR(255),布林值則會寫入為 TRUE 或 FALSE。

PostgreSQL: 識別字會以雙引號 (") 包覆。文字欄位使用 TEXT 型別,這是 Postgres 中標準且高效能的作法。原生支援布林值,會以 TRUE 或 FALSE 表示。

SQLite: 識別字使用雙引號。由於 SQLite 採用動態型別,且儲存類別較為受限,因此小數會對應為 REAL,布林值對應為 INTEGER(輸出 1 或 0),文字則使用 TEXT 型別屬性(affinity)。

SQL Server (T-SQL): 識別字會以中括號 ([]) 包覆。文字欄位預設為 VARCHAR(255),布林值對應為 BIT 資料型別(輸出 1 或 0)。此外,若字串包含非 ASCII 字元,工具會自動在前方加上 N 前綴(例如 N'Value'),以確保正確寫入 Unicode (NVARCHAR)。

自訂 SQL 輸出

您可以使用設定選項來調整產生的 SQL 指令碼,以完全符合您的部署需求:

  • 資料表名稱: 定義目標資料表的確切名稱。工具會根據您的 SQL 語系自動套用正確的引號。
  • 包含 CREATE TABLE: 如果您要從頭建立資料庫,請啟用此選項,以便在 INSERT 語法前產生資料表結構定義。工具會使用 CSV 的標題列作為欄位名稱。
  • 批次新增: 執行數千個獨立的 INSERT INTO 語法可能會很慢。啟用批次選項可將最多 500 列資料合併成單一 CSV 轉 SQL 新增語法。這能大幅縮減檔案大小並提升匯入效能。
  • 空白儲存格轉為 NULL: 試算表通常包含空白儲存格。勾選此選項可確保 CSV 中的空字串在 SQL 中明確寫入為 NULL 關鍵字,而不是在資料庫中寫入空字串 ('')。

準備 CSV 資料的小技巧

為了獲得最佳轉換效果,請確保您的 CSV 檔案包含標題列。本工具會使用資料的第一列,作為 CREATE TABLE 與 INSERT 指令中的欄位名稱。若欄位標題空白,系統會自動將其命名為 column_1、column_2 等。

若您的資料包含逗號、換行或引號等複雜文字,請確保 CSV 格式正確(通常是將該欄位以雙引號括起來)。本工具內建強大的 CSV 解析器,能正確處理跳脫引號與多行欄位。

若您需要將資料轉換為其他格式,我們的 CSV 轉 JSON 或 CSV 轉 Excel 轉換工具也會對您很有幫助。SQL 語法產生後,若需要調整縮排或關鍵字的大小寫,您可以使用 SQL 格式化工具 進行排版。

常見問題

這款工具如何推斷 SQL 資料型別?
轉換器會掃描每個欄位中的資料(忽略空白儲存格)。如果所有值都符合特定格式,就會指派對應的型別:整數為 INTEGER,浮點數為 DECIMAL,真/假值為 BOOLEAN,而 YYYY-MM-DD 格式則為 DATE。如果資料混合或不符合這些格式,則預設為 TEXT 或 VARCHAR。
我的 CSV 資料會被上傳到伺服器嗎?
不會。所有的解析與 SQL 產生都是透過 JavaScript 在您的瀏覽器中本機執行。您的資料完全不會離開您的裝置,因此這款工具對於處理敏感、機密或專屬的資料庫紀錄來說絕對安全。
「Batch」選項有什麼作用?
啟用後,工具會將最多 500 列資料合併為單一的多列 INSERT 語法。這能大幅縮減產生的 SQL 檔案大小,並加快在資料庫中執行指令碼的速度。
如何處理空白儲存格?
如果您勾選「Empty as NULL」,CSV 中的任何空白儲存格在 SQL 輸出中都會被寫為 NULL 關鍵字。若未勾選,文字欄位的空白儲存格會被視為空字串 ('');而數值欄位若填入空字串會導致語法錯誤,因此會保留為 NULL。
為什麼切換 SQL 方言時,產生的資料型態會改變?
不同的資料庫系統使用不同的欄位型態關鍵字。例如,布林值欄位在 PostgreSQL 中為 BOOLEAN,但在 SQL Server 中為 BIT,而在 SQLite 中則是 INTEGER。本工具會自動調整 CREATE TABLE 語法與資料格式,以符合您所選的方言。