SQLダンプ (.sql)
ISO/IEC 標準SQLスクリプトは、CREATE TABLE、INSERT、SELECTなどのデータベース文を記述したテキストファイルです。SQLの方言は異なるため、実行前に対象データベースがスクリプトの構文に対応しているか確認してください。
SQLITE を SQL に変換
無料のブラウザ内 SQLITE から SQL へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してSQLファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してSQLファイルを識別します:
16進数シグネチャ(オフセット0):
固定シグネチャなしASCII表現: 固定シグネチャなし
標準化: ISO/IEC 9075:2023 / ANSI SQL標準
技術仕様
| コンテナアーキテクチャ | Data Definition Language(DDL)およびData Manipulation Language(DML)文を含むUnicodeプレーンテキストスクリプト |
| 圧縮 | 非圧縮のプレーンテキスト(.sql.gzまたは.sql.zstとして圧縮されることが多い) |
| バイトエンディアン | UTF-8 / Unicodeテキストストリーム |
| 色空間 | 該当なし(データベーススクリプト) |
| チャンネルと構造 | リレーショナルスキーマ定義(テーブル、ビュー、インデックス、外部キー)とデータのINSERT行 |
| 最大寸法 | テキスト長に上限なし(数テラバイトのデータベースダンプに対応) |
| 透過性 | なし |
| ストリーミングとプログレッシブ | 文ごとのトランザクション型ストリーミング実行 |
技術比較表: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.app Database Transpilerを使用して方言の構文を変換およびサニタイズする。
セキュリティ分析とパーサー攻撃ベクトル
信頼されていないSQLスクリプトを実行すると、壊滅的なSQLインジェクション、任意のファイル書き込み、または管理特権の昇格を引き起こす可能性があります。
既知の攻撃ベクター
- 意図しない管理コマンド(例:DROP TABLE、GRANT ALL)を実行するSQLインジェクション(SQLi)。
- 「COPY ... FROM PROGRAM」や「LOAD DATA INFILE」を介した任意のサーバーファイルの読み取り/書き込み。
- インデックス化されていない再帰的な共通テーブル式(CTE)によるサービス拒否(DoS)。
防御的ベストプラクティス: 信頼されていないSQLスクリプトを本番データベースサーバー上で直接絶対に実行せず、隔離されたサンドボックスでクエリを検査およびサニタイズします。
歴史的背景とマイルストーン
主なメリット
- SQLスクリプトでは、テーブルの定義、行の追加、リレーショナルデータベースへの問い合わせができます。データ型、ID列、日付関数などの構文はSQLite、MySQL、PostgreSQL、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 Serverの.bakバックアップを、確認や移行の作業に使えるテキストSQLスクリプトに変換します。
非圧縮のプレーンテキストのSQLスクリプトを最適化されたネイティブなデータベースバックアップファイルに変換することで、ストレージサイズを削減し、サーバーの復元時間を短縮します。