2015/05/25

[MySQL] コマンドラインからMySQLのクエリを実行する

プログラムからMySQLに接続する場合、プログラム言語向けのMySQLドライバを使って、接続を行う訳ですが、手続きが色々大変だったり、ドライバのお作法に則って手続きを記述する必要がありますが、コマンドラインから実行する場合は、非常に簡単に接続して情報を取ってくる事ができます。




-eオプションでクエリを流し込む

bashからクエリを流し込むには、-eオプションを使います。基本形は以下。
mysql --user=[username] --password=[password] [datanase name] --execute="[queries]"


実際にクエリを流せる状態のコマンドは以下のようにします。
mysql --user=hoge --password=fuga database01 --execute="show tables"


以上のクエリでユーザーhoge、パスワードfugaでログインし、databse01からテーブルのリストを取得します。
ロングオプションを使うのが面倒な場合は、ショートオプションでも実行できます。
mysql -uhoge -pfuga database01 -e"show tables"


ショートオプションを使う場合は、オプションの後ろにスペースを付けるとエラーが出るので注意してください。
出てきた情報は、cutなどで整形してから使う必要があります。
cutに指定できそうなデミリタは「|」くらいですし、bashでは文字列操作の処理が長くなってしまうので
  • 欲張らずに欲しいカラムのみを取ってくる
  • 文字列操作や計算の処理は、クエリ内で済ませる
などの対処をした方がbash側の負担は減りそうです。


0 件のコメント:

コメントを投稿