快速且注重隱私的 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 格式化工具 進行排版。