【MySQL】SQLファイルの実行

【MySQL】SQLファイルの実行

MySQLのSQLファイル実行を解説します。

SQLファイル

SQLファイルはSQLで記述されたテキストファイルです。
一般的に拡張子はsqlです。

同じ処理を繰り返す場合や複雑な処理などをSQLファイルとして作成しておくことで入力の手間を省き、ミスを減らすことができます。

実行

SQLファイルをMySQLで実行することができます。

実行方法は3パターンあります。

次のデータベースとSQLファイルを元に確認していきましょう。

mysql> SELECT * FROM mydb.items;
+----+-----------+-------+-------+
| id | name      | price | stock |
+----+-----------+-------+-------+
|  1 | Apple     |   200 |    10 |
|  2 | Orange    |   150 |     3 |
|  3 | Pineapple |  1100 |     1 |
|  4 | Grapes    |  3500 |     1 |
+----+-----------+-------+-------+
4 rows in set (0.00 sec)
SELECT * FROM mydb.items;

sourceコマンド

MySQLに接続し、sourceコマンドでSQLファイルを実行します。

基本構文

source SQLファイルパス

サンプル

mysql> source ./sample.sql;
+----+-----------+-------+-------+
| id | name      | price | stock |
+----+-----------+-------+-------+
|  1 | Apple     |   200 |    10 |
|  2 | Orange    |   150 |     3 |
|  3 | Pineapple |  1100 |     1 |
|  4 | Grapes    |  3500 |     1 |
+----+-----------+-------+-------+
4 rows in set (0.00 sec)

\.コマンド

MySQLに接続し、\.コマンドでSQLファイルを実行します。

基本構文

\. SQLファイルパス

sourceコマンドのsource\.に置き換えた構文と同じです。
ただし、文末にセミコロン(;)を付けるとエラーになるので注意してください。

サンプル

mysql> \. ./sample.sql
+----+-----------+-------+-------+
| id | name      | price | stock |
+----+-----------+-------+-------+
|  1 | Apple     |   200 |    10 |
|  2 | Orange    |   150 |     3 |
|  3 | Pineapple |  1100 |     1 |
|  4 | Grapes    |  3500 |     1 |
+----+-----------+-------+-------+
4 rows in set (0.00 sec)

mysqlコマンド

MySQLの接続前にmysqlコマンドでSQLファイルを実行します。

基本構文

$ mysql -u ユーザー -p < ファイルパス

サンプル

$ mysql -u root -p < ./sample.sql
Enter password: 
id	name	price	stock
1	Apple	200	10
2	Orange	150	3
3	Pineapple	1100	1
4	Grapes	3500	1