MySQLをインタラクティブモードとバッチモードで実行したときのデフォルト出力形式の違いとは?
MySQLでは、まったく同じクエリを実行する場合でも、インタラクティブモード(対話モード)とバッチモードのどちらで実行するかによって、デフォルトの出力形式が異なります。それぞれの特徴を具体例とともに解説します。
インタラクティブモードでの出力形式
mysqlクライアントにログインして直接クエリを実行した場合、結果は罫線付きの表形式(ASCIIテーブル形式)で表示されます。例えば、次のクエリを実行してみましょう。
mysql> select * from hh; +------+ | id | +------+ | 1 | | 2 | +------+ 2 rows in set (0.01 sec)
このように、列名が枠線で囲まれた見やすいテーブル形式で出力され、さらに処理にかかった時間や取得された行数も一緒に表示されます。人間が結果を目視で確認する際に非常に読みやすい形式です。
バッチモードでの出力形式
一方、SQLファイルをリダイレクトしてバッチモードで実行した場合、出力はタブ区切りのプレーンなテキスト形式になります。
C:\Program Files\MySQL\bin> mysql -u root -p gaurav < hh.sql Enter password: ***** id 1 2
このように、罫線や余白が省略され、ヘッダーとデータだけがシンプルに出力されます。余計な装飾がないため、結果をファイルに保存したり、他のプログラムやスクリプトに渡して自動処理したりするのに適しています。
使い分けのポイント
- インタラクティブモード: 罫線付きの表形式で出力されるため、開発中の動作確認や結果の目視チェックに最適です。
- バッチモード: タブ区切りのシンプルなテキストとして出力されるため、定期実行ジョブやデータのエクスポートなど、機械的な処理に向いています。
用途に応じて実行モードを使い分けることで、MySQLの出力をより効率的に活用できます。
-
MySQLのTINYINT(1)とブール型(BOOLEAN)の違いとは?
結論から言うと、TINYINT(1)とブール型(BOOLEAN)の間に違いはありません。MySQLでは、BOOLまたはBOOLEANというキーワードは内部的にTINYINT(1)へと変換されます。つまり、BOOLやBOOLEANはTINYINT(1)の別名(シノニム)として扱われるのです。それでは、実際にテーブルを作成して確認してみましょう。BOOLEAN型でテーブルを作成するmysql> create table DemoTable ( isMarried Boolean ); Query OK, 0 rows affected (1.77 sec)次に、作成したテーブルの構造
-
MySQLにおける「!=NULL」と「IS NOT NULL」の違いとは?
MySQLでは、値を!=NULLと比較すると、結果は必ずNULLになります。つまり、!=NULLという比較は意味を持ちません。NULLは「不明な値」を表すため、通常の比較演算子では判定できないのです。NULL値を判定するには、専用の演算子であるIS NOT NULLを使用します。ここでは、!=NULLとIS NOT NULLの違いを実際に確認するために、まずテーブルを作成します。テーブルの作成まず、次のコマンドでテーブルを作成します。mysql> create table DemoTable1970 (