by shigemk2

当面は技術的なことしか書かない

インタラクティブモードに入らずにSQL文を実行する

MySQLクイック・リファレンス

普通

$mysql -u root ......

とかやってインタラクティブモードに入ってから
SQL文を実行すると思いますが、ターミナル上で
インタラクティブモードに入らずにSQL文を実行する方法がいくつかあります。

1. echo

echo "select * from テーブル名" | mysql [-t -N] データベース名

2. -eオプション

-e オプション - by shigemk2

mysql -u root DB名 -e "select * テーブル名;";

3. cat

ヒアドキュメントを利用する。

cat <<'EOF' | mysql -u root DB名
update テーブル名 set ....;
EOF

こうすることにより、複数行にわたってSQL文を実行することが可能となる。
echo や -eオプションでは複数行のSQL文は実行できず、echoをSQL文の数だけ
使うことになる。