【MySQL】SQLファイルの実行 - MySQL接続中やmysqlコマンドでSQLファイルを実行する

【MySQL】SQLファイルの実行 - MySQL接続中や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ファイルパス

サンプル

___ih_hl_start
mysql> source ./sample.sql;
___ih_hl_end
+----+-----------+-------+-------+
| 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\.に置き換えた構文と同じです。

ただし、文末にセミコロン(;)を付けるとエラーが発生するので注意してください。

サンプル

___ih_hl_start
mysql> \. ./sample.sql
___ih_hl_end
+----+-----------+-------+-------+
| 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 < ファイルパス

サンプル

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