SQL 傾印 (.sql)

ISO/IEC 標準

SQL 指令碼是包含資料庫陳述式的文字檔案,例如 CREATE TABLE、INSERT 與 SELECT。由於 SQL 方言各有不同,請在執行前確認目標資料庫支援該指令碼的語法。

將 SQLITE 轉換為 SQL

免費的瀏覽器端 SQLITE 轉 SQL 轉換器。在您的裝置上即時轉換檔案。

檢查與中繼資料

作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 SQL 檔案:

在這裡選擇或拖放檔案

私密 - 檔案絕不會離開您的裝置

或貼上 Ctrl+V
零網路傳輸隱私保證: 0 位元組上傳至外部伺服器。所有處理皆在本機瀏覽器沙箱中進行。

位元組層級標頭簽章(檔案簽章)

作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 SQL 檔案:

十六進位簽章(偏移量 0):

無固定簽章(SQL 為純文字)

ASCII 表示法: 無固定 ASCII 簽章

標準化: ISO/IEC 9075:2023 / ANSI SQL 標準

技術規格

容器架構包含資料定義語言(DDL)與資料操作語言(DML)陳述式的 Unicode 純文字指令碼
壓縮未壓縮純文字(通常壓縮為 .sql.gz 或 .sql.zst)
位元組序UTF-8 / Unicode 文字串流
色彩空間不適用(資料庫指令碼)
色版與結構關聯式綱要定義(資料表、檢視、索引、外部索引鍵)與資料 INSERT 列
最大尺寸無限制文字長度(支援多 TB 資料庫傾印)
透明度無
串流與漸進式逐個陳述式的交易串流執行

技術比較矩陣:SQL 對比競爭格式

技術屬性SQL (目前)CSVJSONSQLITE
綱要保留完整綱要(表格、型別、外來鍵)僅標頭欄位名稱自我描述的檔案結構完整的二進位資料庫檔案
執行模型可執行的 DDL / DML 指令碼被動的列欄資料被動的文件樹狀結構直接二進位 B-tree 查詢
標準化ISO/IEC 9075 標準RFC 4180RFC 8259SQLite 開放檔案格式
資料關聯完整的外來鍵條件約束平面表格(無關聯)巢狀的父子物件完整的關聯式條件約束

常見損壞模式與十六進位修復指南

資料庫匯入失敗並顯示「ERROR: syntax error at or near...」。

根本原因: SQL 方言不符(例如將 MySQL 反引號傾印匯入 PostgreSQL)或未跳脫的單引號。

修復: 使用 File2File.app 資料庫轉譯器來轉換與清理方言語法。

安全性分析與解析器攻擊向量

執行不受信任的 SQL 指令碼可能會導致災難性的 SQL 資料隱碼攻擊、任意檔案寫入或管理權限提升。

已知攻擊向量

  • SQL 資料隱碼攻擊(SQLi)執行非預期的管理命令(例如 DROP TABLE、GRANT ALL)。
  • 透過「COPY ... FROM PROGRAM」或「LOAD DATA INFILE」進行任意伺服器檔案讀取/寫入。
  • 透過未建立索引的遞迴通用資料表運算式(CTE)發動阻斷服務攻擊。

防禦最佳實務: 切勿直接在正式資料庫伺服器上執行不受信任的 SQL 指令碼;請在隔離的沙箱中檢查並清理查詢。

歷史起源與里程碑

2023ISO/IEC 9075:2023 發布,將屬性圖查詢(SQL/PGQ)整合至標準 SQL 中。
1986ANSI 與 ISO 採用 SQL 作為關聯式資料庫管理系統的官方標準。
1974Donald Chamberlin 與 Raymond Boyce 根據 Edgar F. Codd 的關聯式模型,在 IBM Research 開發出 SEQUEL。

主要優勢與優點

  • SQL 指令碼可以定義表格、新增資料列並查詢關聯式資料庫。語法(例如資料型別、識別欄位與日期函數)在 SQLite、MySQL、PostgreSQL 與 SQL Server 之間各有不同。
  • 完整保留關聯式結構:除了資料外,還能重新建立表格、主鍵、外來鍵、條件約束與索引。
  • 交易執行:陳述式可以在交易內執行(BEGIN...COMMIT),以確保原子性資料庫還原。

技術限制與缺點

  • 方言不相容:微小的語法差異(例如 AUTO_INCREMENT、SERIAL 與 AUTOINCREMENT)需要在資料庫引擎之間進行轉換。
  • 文字開銷龐大:純文字 SQL INSERT 陳述式比二進位資料庫儲存佔用更多空間。
  • 在未停用索引重建的情況下,匯入數 GB 的龐大資料庫傾印時速度緩慢。

有趣的技術冷知識

  • SQL 原本命名為「SEQUEL」(Structured English Query Language),但由於與 Hawker Siddeley 飛機公司的商標爭議而縮寫為 SQL。
  • 正式的 ISO 標準將其讀作個別字母「S-Q-L」,但數百萬名開發者在口語上將其讀作「sequel」。
  • 據估計,SQLite 在全球的手機、電腦和其他產品中有超過一兆個活躍使用的資料庫。

常見技術問題

什麼是 .sql 檔案?

.sql 檔案是包含 SQL 指令的純文字指令碼,這些指令可用於在關聯式資料庫中建立表格、建立關聯以及插入資料列。

我可以將 SQL 傾印檔案轉換為 CSV 或 JSON 嗎?

可以。File2File.app 可以解析 .sql 資料庫傾印檔案,並將表格直接匯出為乾淨的 CSV 試算表或結構化的 JSON 文件。

為什麼我的 MySQL .sql 檔案無法在 PostgreSQL 中運作?

不同的資料庫系統具有專屬的方言差異(例如資料型別和引號跳脫)。在資料庫引擎之間移轉時,您必須轉碼特定方言的語法。