【MySQL】コマンドラインからeオプションでSQLを直接実行してみた結果


ここではMySQLで、コマンドラインからeオプションでSQLを直接実行してみた結果を紹介しています。

コマンドラインからSQLを直接実行してみた結果

eオプションを指定することで、mysqlコマンドと同時にSQLを直接実行することが出来ます。

mysql -h ホスト名 -u ユーザー名 -p DB名 -e "SQL文"
>mysql -u user -p db -e "SELECT * FROM tab1;"
Enter password: *****
+--------+----------+-------+------+
| emp_id | emp_name | dept  | age  |
+--------+----------+-------+------+
| 00001  | Suzuki   | HR    |   28 |
| 00002  | Tanaka   | SALES |   25 |
| 00003  | Kizaki   | SALES |   35 |
| 00004  | Tanaka   | DEV   |   45 |
| 00005  | Kizaki   | DEV   |   55 |
| 00006  | Nakata   | DEV   |   35 |
+--------+----------+-------+------+

次のようにexecuteとして記述することも出来ました。

>mysql -u user -p db --execute="SELECT * FROM tab1;"
Enter password: ****
+--------+----------+-------+------+
| emp_id | emp_name | dept  | age  |
+--------+----------+-------+------+
| 00001  | Suzuki   | HR    |   28 |
| 00002  | Tanaka   | SALES |   25 |
| 00003  | Kizaki   | SALES |   35 |
| 00004  | Tanaka   | DEV   |   45 |
| 00005  | Kizaki   | DEV   |   55 |
| 00006  | Nakata   | DEV   |   35 |
+--------+----------+-------+------+

また、次のようにSQL文を;(セミコロン)で区切ることで複数のSQLを実行することもできます。

>mysql -u user -p db -e "SELECT 1+1;SELECT NOW();"
Enter password: ****
+-----+
| 1+1 |
+-----+
|   2 |
+-----+
+---------------------+
| NOW()               |
+---------------------+
| 2020-02-10 19:16:00 |
+---------------------+