SQLダンプ (.sql)
ISO/IEC 標準Structured Query Language Script (SQL) は、データベーステーブルを構築するための宣言的なDDL文と、データを投入するためのDML INSERT文を含む、汎用的なリレーショナルデータベースフォーマットです。
SQLITE を SQL に変換
無料のブラウザ内 SQLITE から SQL へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで SQL ファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで SQL ファイルを識別します:
16進数シグネチャ (オフセット 0):
2D 2D 20 / 43 52 45 41 54 45ASCII表現: -- / CREATE
標準化: ISO/IEC 9075:2023 / ANSI SQL Standard
技術仕様
| コンテナアーキテクチャ | Unicode plain text script containing Data Definition Language (DDL) and Data Manipulation Language (DML) statements |
| 圧縮 | Uncompressed plaintext (frequently compressed as .sql.gz or .sql.zst) |
| バイトエンディアン | UTF-8 / Unicode text stream |
| 色空間 | N/A (Database Script) |
| チャンネルと構造 | Relational schema definitions (tables, views, indexes, foreign keys) and data INSERT rows |
| 最大寸法 | Unbounded text length (supports multi-terabyte database dumps) |
| 透過性 | None |
| ストリーミングとプログレッシブ | Statement-by-statement transactional streaming execution |
技術比較マトリックス: SQL 対 競合製品
| 技術属性 | SQL (現在) | CSV | JSON | SQLITE |
|---|---|---|---|---|
| スキーマの保持 | 完全なスキーマ(テーブル、型、外部キー) | ヘッダーの列名のみ | 自己記述型ドキュメント構造 | 完全なバイナリデータベースファイル |
| 実行モデル | 実行可能なDDL/DMLスクリプト | パッシブな行列データ | パッシブなドキュメントツリー | 直接的なバイナリBツリークエリ |
| 標準化 | ISO/IEC 9075標準 | RFC 4180 | RFC 8259 | SQLiteオープンファイルフォーマット |
| データ関係 | 完全な外部キー制約 | フラットな表形式(関係なし) | ネストされた親子オブジェクト | 完全なリレーショナル制約 |
一般的な破損モードと16進数リカバリガイド
データベースのインポートが「ERROR: syntax error at or near...」で失敗する。
根本原因: SQL方言の不一致(例:MySQLのバックティックのダンプをPostgreSQLにインポートするなど)や、エスケープされていないシングルクォート。
復旧: File2File Database Transpilerを使用して方言の構文を変換およびサニタイズする。
セキュリティ分析とパーサー攻撃ベクトル
信頼されていないSQLスクリプトを実行すると、壊滅的なSQLインジェクション、任意のファイル書き込み、または管理特権の昇格を引き起こす可能性があります。
既知の攻撃ベクター
- 意図しない管理コマンド(例:DROP TABLE、GRANT ALL)を実行するSQLインジェクション(SQLi)。
- 「COPY ... FROM PROGRAM」や「LOAD DATA INFILE」を介した任意のサーバーファイルの読み取り/書き込み。
- インデックス化されていない再帰的な共通テーブル式(CTE)によるサービス拒否(DoS)。
防御的ベストプラクティス:
歴史的背景とマイルストーン
主な利点とメリット
- エンタープライズデータストレージの揺るぎないグローバル標準:PostgreSQL、MySQL、SQLite、Oracle、SQL Serverと互換性があります。
- 完全なリレーショナル忠実度:データとともに、テーブル、主キー、外部キー、制約、インデックスを再作成します。
- トランザクション実行:文をトランザクション内(BEGIN...COMMIT)で実行し、アトミックなデータベースの復元を保証できます。
技術的な制限とデメリット
- 方言の非互換性:微妙な構文の違い(例:AUTO_INCREMENT対SERIAL対AUTOINCREMENT)により、データベースエンジン間での変換が必要です。
- 膨大なテキストのオーバーヘッド:プレーンなSQLのINSERT文は、バイナリデータベースのストレージよりも大幅に多くのスペースを消費します。
- インデックスの再構築が無効化されていない場合、巨大な複数ギガバイトのデータベースダンプのインポートに時間がかかります。
興味深い技術トリビア
- SQLは元々「SEQUEL」(Structured English Query Language)という名前でしたが、航空機メーカーのHawker Siddeleyとの商標紛争によりSQLに短縮されました。
- 公式のISO標準では「S-Q-L」とアルファベットごとに発音されますが、何百万人もの開発者は慣習的に「シークエル」と発音しています。
- SQL構文で動作するSQLiteは、世界中で1兆台を超えるデバイスにインストールされていると推定されています。
よくある技術的な質問
.sqlファイルとは何ですか?
.sqlファイルは、テーブルを作成し、リレーションを確立し、リレーショナルデータベースにデータの行を挿入するSQLコマンドを含むプレーンテキストスクリプトです。
SQLダンプファイルをCSVまたはJSONに変換できますか?
はい。File2File.appは、.sqlデータベースダンプファイルを解析し、テーブルをクリーンなCSVスプレッドシートまたは構造化されたJSONドキュメントに直接エクスポートできます。
MySQLの.sqlファイルがPostgreSQLで動作しないのはなぜですか?
異なるデータベースシステムには、独自の固有の方言の違い(データ型やクォートのエスケープなど)があります。データベースエンジン間で移行する際は、方言固有の構文をトランスコードする必要があります。
関連するSQL変換ペア
SQLiteデータベースファイルをSQLダンプテキストスクリプトに変換すると、バイナリデータベースが読みやすいテキストコマンドに変換され、データベースの移行やサーバーへのインポートが簡単になります。
SQLダンプテキストスクリプトをJSONデータエクスポートに変換することで、厳格なリレーショナルデータベースのテーブルを、モダンなWebアプリ向けの柔軟なネストされたオブジェクトに変換します。
リレーショナルデータベースのバックアップスクリプトをフラットな表形式のスプレッドシートに変換し、簡単なデータ分析やレポート作成を可能にします。
バイナリのデータベースバックアップをプレーンテキストのSQLスクリプトに変換することで、データベースのテーブルやデータを完全に異なるデータベースエンジン間で移行できます。
非圧縮のプレーンテキストのSQLスクリプトを最適化されたネイティブなデータベースバックアップファイルに変換することで、ストレージサイズを削減し、サーバーの復元時間を短縮します。