UltKit

CSV 轉 SQL 轉換器

把試算表匯出的檔案變成資料庫可直接執行的指令碼。標題列會成為欄位名稱,每一列資料都會變成一筆 INSERT,引號寫法則依你選擇的 SQL 方言處理。

資料轉換器

或將CSV, TSV, TXT … 檔案拖曳到這裡 ·

每個檔案最大 95 MB· 最多 20 個檔案· 30 分鐘後刪除

輸出

檔案會在我們的伺服器上處理,並於 30 分鐘後刪除。

使用方式

  1. 1

    上傳 CSV

    加入 1 個 CSV 檔案,或最多 20 個,每個不超過 95 MB。系統會自動偵測以分號或 Tab 分隔的檔案。

  2. 2

    設定資料表與方言

    在進階設定中輸入 SQL 資料表名稱,並選擇 SQL 方言:MySQL、PostgreSQL、SQLite 或 SQL Server。日期預設為 ISO,日期常值載入時不必猜測格式。

  3. 3

    轉換並執行

    按下轉換為 SQL,先看一下 CREATE TABLE 那一行,再到資料庫用戶端或匯入畫面執行腳本。

CSV 轉 SQL 會依標題列產生 CREATE TABLE 陳述式,並為每一列資料產生一個 INSERT,引號寫法符合 MySQL、PostgreSQL、SQLite 或 SQL Server,執行一個腳本就能把試算表載入資料庫。

為什麼要把 CSV 轉成 SQL INSERT 陳述式

每種資料庫都有快速的 CSV 載入工具,但每一種都有限制。MySQL 8.0 起伺服器預設停用 LOAD DATA LOCAL INFILE;PostgreSQL 的 COPY FROM 檔案需要超級使用者權限或特殊角色成員身分;SQL Server 的 BULK INSERT 讀取的是伺服器主機上的路徑,而不是你的筆電。託管資料庫往往只提供查詢編輯器。

INSERT 腳本可以避開這些問題。它是純文字,可以閱讀、當作初始資料提交到版本控制,也能在任何用戶端執行。代價是速度:幾萬列沒問題,數百萬列則應使用原生的大量載入工具。如果參考資料存放在活頁簿中,可以用 Excel 轉 SQL 省去 CSV 這一步。

CSV 轉 SQL 範例(MySQL)

由 id,name,joined 與兩列資料產生的腳本
CREATE TABLE `my_table` (
  `id` INT,
  `name` VARCHAR(255),
  `joined` DATE
);

INSERT INTO `my_table` (`id`, `name`, `joined`) VALUES
(1, '陳雅婷', '2026-03-02'),
(2, 'Liam O''Brien', '2026-04-15');

四種 SQL 方言在輸出上的差異

識別名稱以反引號包住,例如 order date,這也讓 order 這類保留字能當作欄位名稱。

  • 同樣適用於 MariaDB
  • phpMyAdmin 匯入的合適預設選項
影響產生指令碼的資料庫限制
機構規定來源
MySQL 8.0max_allowed_packet 預設為 64 MB;單一陳述式超過此大小就會被拒絕—
SQL Server單一 INSERT … VALUES 清單最多接受 1,000 個資料列值運算式—
PostgreSQL超過 63 位元組的識別名稱會被無聲截斷—
SQLite預設建置下,一個資料表最多 2,000 個欄位—

執行指令碼前請先確認這些事項

請先看 CREATE TABLE 那一行。欄位型別是依資料值推測的,推測可能出錯:郵遞區號和電話號碼看起來像數字,但必須保持為文字,否則 02134 會失去開頭的 0。執行前可以先在腳本中修改型別,或自行建立資料表,只執行 INSERT 的部分。

請在 SQL 資料表名稱中填入真正的名稱,不要沿用 my_table;若用戶端支援,也建議在交易中執行腳本,這樣有一列出錯時就能全部回復。同一個 CSV 的其他轉換目標,可在資料格式轉換頁面找到。

CSV 與 SQL 指令碼格式

CSV

逗號分隔值

CSV 是一種純文字的表格格式,每一行是一列資料,欄位之間以逗號分隔。它從電腦發展初期沿用至今,並記載於 RFC 4180,不過許多變體會改用分號或定位字元,文字編碼也各不相同。幾乎所有試算表、資料庫和分析工具都能匯入與匯出,因此成為系統之間傳輸資料的預設格式。CSV 只儲存數值,不包含公式、格式、多個工作表或資料類型。

壓縮方式
–
透明度
–
動畫
–
推出年份
–
CSV 轉檔工具

SQL

SQL 腳本

SQL 檔是由結構化查詢語言(SQL)敘述組成的純文字腳本,例如 CREATE TABLE 和 INSERT,供資料庫依序執行。常用於資料庫備份、遷移和分享範例資料。這個語言本身是 ISO 標準,但 MySQL、PostgreSQL、SQLite 和 SQL Server 各有自己的語法差異,因此腳本在不同系統之間常需要小幅修改。任何文字編輯器都能開啟 SQL 檔,但要執行則需要資料庫用戶端。

壓縮方式
–
透明度
–
動畫
–
推出年份
–
SQL 轉檔工具

當檔案最後必須變成資料庫中的資料表,而你只能透過查詢視窗操作時,就需要把 CSV 轉成 SQL:例如為新應用程式建立初始資料、載入參考清單,或在沒有伺服器存取權限的情況下把試算表搬進 MySQL 或 PostgreSQL。

CSV 轉 SQL 轉換器常見問題

為什麼要用 SQL 檔,而不用 LOAD DATA 或 COPY?

MySQL 的 LOAD DATA INFILE、PostgreSQL 的 COPY 等大量載入工具速度較快,但需要存取伺服器上的檔案,或加上額外的用戶端參數。一般的腳本只要能貼上 SQL 的地方都能執行,例如雲端資料庫主控台、phpMyAdmin,或經過審查的資料庫遷移。

像 O'Brien 這種含撇號的名字會怎麼寫?

在 SQL 字串中,單引號要重複兩次來跳脫,所以這個值會寫成 'O''Brien'。四種方言都接受這種寫法,因此含有單引號的名字不會讓 INSERT 出錯。

CSV 的標題列在資料表中會變成什麼?

欄位名稱,並依所選方言的規則加上引號。像 Unit Price 這樣的標題可以使用,但含空格的名稱在之後每個查詢中也都得加引號,所以建議轉換前先把標題改成 unit_price。

可以透過 phpMyAdmin 匯入這個 SQL 檔嗎?

可以,在「匯入」分頁操作。上限是 PHP 的 upload_max_filesize,預設 php.ini 為 2 MB;許多主機會調高,頁面也會顯示目前的限制。如果腳本比上限大,請把大型 CSV 拆成多個檔案。

能把資料表再轉回 CSV 嗎?

把資料表匯出成傾印檔,再用 SQL 轉 CSV 轉換,或使用資料庫用戶端內建的 CSV 匯出功能。兩種方式得到的資料列,試算表都能再次開啟。