結論から
- SQLスクリプトは、データベースで実行するSQL文を保存したテキストファイルであり、互換性と実行結果は対象のデータベースと記述された文に依存します。
- WindowsやMacではテキストエディターで開いて内容を確認します。スマートフォンではローカルのテキストファイルを開けるエディターを使います。読むだけではSQL文は実行されません。MySQLでは `mysql db_name < text_file`、またはクライアント内の `source text_file` で実行できます。pg_dumpのプレーンテキスト出力はpsqlで復元します。
- 不明なSQLは実行前に確認してください。pg_dump --cleanはオブジェクトを再作成する前にDROPコマンドを出力します。PostgreSQLは、復元時に元のデータベースのスーパーユーザーが選んだ任意のコードが実行され得ると警告しています。部分的なダンプや復元でもこのリスクは制限できません。
SQLファイルの開き方・実行・インポート
SQLはISO/IEC 9075で定義され、データ構造の定義とデータの操作を扱います。スクリプトはSQL文をテキストとして保存します。PostgreSQLのpg_dumpは、データベースを再構築するSQLコマンドを出力できます。
別のデータベース製品に移す場合はSQL文の修正が必要になることがあります。対象製品の方言と内容を確認してください。pg_dump --data-onlyはスキーマ定義を含まずデータのみを出力するため、単独では完全なデータベース構造を保存できません。
開き方
WindowsやMacではテキストエディターで開いて内容を確認します。スマートフォンではローカルのテキストファイルを開けるエディターを使います。読むだけではSQL文は実行されません。MySQLでは `mysql db_name < text_file`、またはクライアント内の `source text_file` で実行できます。pg_dumpのプレーンテキスト出力はpsqlで復元します。
WindowsやMacではテキストエディターで開いて内容を確認します。スマートフォンではローカルのテキストファイルを開けるエディターを使います。読むだけではSQL文は実行されません。MySQLでは `mysql db_name < text_file`、またはクライアント内の `source text_file` で実行できます。pg_dumpのプレーンテキスト出力はpsqlで復元します。
別のデータベース製品に移す場合はSQL文の修正が必要になることがあります。対象製品の方言と内容を確認してください。pg_dump --data-onlyはスキーマ定義を含まずデータのみを出力するため、単独では完全なデータベース構造を保存できません。
安全チェック
不明なSQLは実行前に確認してください。pg_dump --cleanはオブジェクトを再作成する前にDROPコマンドを出力します。PostgreSQLは、復元時に元のデータベースのスーパーユーザーが選んだ任意のコードが実行され得ると警告しています。部分的なダンプや復元でもこのリスクは制限できません。
送り主が分からない、拡張子が二重になっている、中身が拡張子と合わない——一つでも当てはまるなら、開く前に確かめてください。
変換するときは
別のデータベース製品に移す場合はSQL文の修正が必要になることがあります。対象製品の方言と内容を確認してください。pg_dump --data-onlyはスキーマ定義を含まずデータのみを出力するため、単独では完全なデータベース構造を保存できません。
元ファイルではなくコピーを変換し、変換後に画質・メタデータ・レイアウトを元と見比べてください。
よくある質問
SQLファイルとは何ですか?
データベース向けのSQL文を保存したテキストファイルです。内容によって、構造の定義、データの操作、データベースの再構築などを行います。
SQLファイルの内容を確認し、MySQLで実行する方法は?
まずテキストエディターで内容を確認します。MySQLでは `mysql db_name < text_file`、またはmysqlクライアント内の `source text_file` で実行できます。実行前にSQL文を確認してください。
WindowsでSQLファイルを開く方法は?
テキストエディターで開くとSQL文を読めます。実行する場合は対応するデータベースのクライアントを使います。MySQLではクライアント内で `source text_file` を利用できます。
MacでSQLファイルを開く方法は?
テキストエディターで開いて内容を確認します。PostgreSQLのpg_dumpが出力したプレーンテキストのスクリプトを復元する場合はpsqlを使います。
スマートフォンでSQLファイルを開く方法は?
ローカルのテキストファイルを開けるエディターで内容を確認します。読むだけでは実行されず、スクリプトを実行するには対象のデータベースに接続したクライアント(mysql、pg_dumpのスクリプトならpsql)が必要です。
MySQLでSQLファイルが文字化けする場合はどうすればよいですか?
入力の文字コードを確認してください。MySQLは先頭のUnicode BOMを無視しますが、既定の文字セットは変更しません。必要に応じて `--default-character-set=utf8mb4` などで指定します。
MySQL用とPostgreSQL用のSQLスクリプトはどちらを選べばよいですか?
対象のデータベース向けのものを選びます。MySQLはmysqlで実行し、PostgreSQLのpg_dumpによるテキストスクリプトはpsqlで復元します。製品をまたぐ場合は修正が必要になることがあります。
SQLファイルを別のデータベース用に変換する方法は?
対象製品に合わせてSQL文を確認し、修正します。PostgreSQLは、他のSQL製品への移行ではダンプの修正が必要になる場合があると説明しています。ファイル名の変更だけでは変換できません。
不明なSQLファイルを実行するリスクは何ですか?
オブジェクトの変更や削除が起こり得ます。PostgreSQLの復元では、元のスーパーユーザーが選んだ任意のコードが実行される可能性もあり、部分復元でも防げません。信頼できない入手元のSQLは復元前に確認してください。
PostgreSQLのSQLエクスポートにテーブル定義がない理由は?
`pg_dump --data-only` を使用したか確認してください。このオプションはスキーマ定義を含めずデータのみを出力するため、そのスクリプトだけでは完全な構造を保存できません。
関連する形式
参考資料
ISO/IEC JTC 1/SC 32 — Standards catalogue · ISO 官方标准目录
ISO/IEC 9075-1:2011 — SQL/Framework · IEC 官方标准说明
MySQL 8.4 Reference Manual — Executing SQL Statements from a Text File · Oracle MySQL 官方文档
PostgreSQL 17 Documentation — pg_dump · PostgreSQL 官方文档