バナー画像

データベースを操作する際、SQLをコマンドプロンプトやターミナル、またはデータベース管理ツールを通じて直接SQL文を記述する以外にも、SQLファイルを用意しておきSQL文を実行する方法が一般的です。

本記事では、MySQLでのSQLファイルの実行方法を3種類ご紹介していきたいと思います。

ポテパンダの一言メモ

ご紹介するサンプルはMac環境でMySQLがインストールされた状態で実行しています。
ご自身の環境により適宜読み替えをお願いします。

SQLファイルとは


まずSQLファイルに関してですが、拡張子が「.sql」と設定されたファイルのことを指します。

内部にSQL文が記述されているファイルで、実体はテキストファイルであるため、テキストエディタを利用して開くことが可能です。

ファイル名.sql

SQLファイルを使用する利点

SQLファイルを用意しておくことで、SQL文を毎回手打ちする必要がなくなるため、ミスを減らすことに繋がります。

また、複雑な処理や長いSQL文を書く手間が省けることから、開発効率を上げることにも繋がります。

拡張子が.sql以外でも実行可能

SQLファイルは拡張子が「.sql」と紹介しましたが、中身にSQL文が記述されていれば実際には「.txt」だろうが構いません。

ただし、他のユーザーが一目でSQLファイルだと判別しやすいように「.sql」を使用する方法が推奨されます。

SQLファイルを実行する方法


SQLファイルを実行する方法として3種類をご紹介していきます。

事前準備

今回サンプルで実行するSQLファイルには、「test.sql」というファイル名で、下記のSQL文を記述しています。

SELECT *
FROM user;

「test.sql」は「/Users/ユーザー名/Documents/sql」フォルダ内に格納しています。

userテーブルには下記のデータを用意しておきました。

+----+-----------------+------+
| id | name            | age  |
+----+-----------------+------+
|  1 | 山田太郎         |   30 |
|  2 | 山田花子         |   25 |
|  3 | 鈴木じろう       |   20 |
+----+-----------------+------+

さいごにMySQLを下記のコマンドで立ち上げておきましょう。

sudo mysql.server start;

SQLファイル実行1: sourceコマンド

実行方法の1つ目は、MySQLにログインした状態で利用します。

MySQLのログインには下記のコマンドが利用可能です。

mysql -u root -p

設定したパスワードを入力してログインしてください。

ログインが完了して下記の画面になっていれば、準備完了です。

ここから実際にSQLファイル実行に移る訳ですが、基本的な構文は下記となります。

source ファイル名(ファイルパス);

ファイル名の部分には具体的なファイルパスを指定して実行します。

source /Users/ユーザー名/Documents/sql/test.sql;

下記の画像のようにSQL文の結果が取得出来ていることをご確認頂けます。

SQLファイル実行2: \.コマンド

2つ目の実行方法に関しても、MySQLにログインした状態で実施します。

ポテパンダの一言メモ

MySQLへのログイン方法は、1つ目の実行方法で紹介した手順を参照してください。

まずは基本的な構文からご紹介します。

\. ファイル名(ファイルパス)

1つ目の実行方法の「source」コマンドが「\.」コマンドに変更されただけですね。

実行コマンドの末尾に「;」を入力するとエラーとなるため、注意が必要です。

では実際に実行してみましょう。

 \. /Users/ユーザー名/Documents/sql/test.sql

実行した結果は下記の画像のように全く同じ結果が表示されていることをご確認頂けます。

SQLファイル実行3: mysqlコマンド

3つ目の方法では、MySQLにログインする前のターミナルコマンドの状態で、SQLのファイル実行までを一括で実施してしまう方法です。

ただし、今回ご紹介する方法を実行する場合、SQLファイルに利用するデータベースを指定する「USE」コマンドを記述しておく必要があることには注意してください。

サンプルのSQLファイルの場合、下記のように修正します。

USE データベース名;

SELECT *
FROM user;
ポテパンダの一言メモ

上記の方法を試していた方は、一度「exit」コマンドでMySQLをログアウトしておいてください。

基本的な構文は下記となります。

mysql -u root -p < ファイル名(ファイルパス)

サンプルの場合、下記のようになりますね。

mysql -u root -p < /Users/ユーザー名/Documents/sql/test.sql

パスワードの入力を求められますので、MySQLに設定したログイン用のパスワードを入力しましょう。

SQLファイルを実行した結果が表示されていることをご確認頂けます。

SQLファイルの実行:応用編

ここまでで、SQLファイルの実行方法について確認してもらいました。

お気づきの方もいらっしゃるかも知れませんが、SQLファイル内部には1つのSQL文しか記述出来ないという訳ではありません。

複数のSQL文を記述した場合、1つのファイルを実行するだけで、上から順番にファイル末尾までSQL文をまとめて実行することも可能です。

サンプル

今回は下記のようなサンプルSQLファイルを作成してみました。

上述したuserテーブルのバックアップ用テーブル「user_bk」を作成し、全てのデータをコピーした後にバックアップテーブルのデータを確認するSQL文を1つのファイルにまとめています。

test.sql

USE test_db;

CREATE TABLE user_bk(
  id int,
  name varchar(50),
  age int,
  bk_date date
);

INSERT INTO user_bk(id, name, age, bk_date)
SELECT id, name, age, now()
FROM user;

SELECT *
FROM user_bk;

今回は3つ目に紹介したコマンドで実行してみましょう。

mysql -u root -p < /Users/ユーザー名/Documents/sql/test.sql

実行した結果、下記の画像のようにuser_bkテーブルからuserテーブルに存在したデータのバックアップが取得出来ていることをご確認頂けます。

さいごに:SQLファイルを活用して開発効率を上げよう


本記事では、SQLファイルの実行方法について、Mac環境でMySQLを利用する際のコマンドをご紹介してきました。

実務では何度も利用するSQL文を、SQLファイルとして保存する方法は一般的です。

これまで、SQLファイルを開いてSQL文をコピペしていたという方も、今回ご紹介したように簡単なコマンドで実行可能ですので、ぜひ使い方を覚えて開発効率を上げるための手法としてご活用ください。

ポテパンダの一言メモ

SQLファイルの実行は非常に簡単であるため、安易に実行してしまいがちですが、実行する前に利用するデータベースを必ず確認し、本番環境と開発環境の実行間違いを起こさないように注意しましょう。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。