MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでPostgreSQLのような拡張出力(縦表示)を行う方法:\Gオプションの使い方

はい、MySQLでもPostgreSQLの\x(拡張表示モード)と同様の出力を得ることができます。セミコロン(;)の代わりに、クエリの末尾を \G で終了させることで、結果が1行ずつ縦方向に整形されて表示されます。

基本構文

拡張出力を使う場合の構文は以下のとおりです。通常のセミコロンの代わりに \G を付ける点に注意してください。

SELECT * FROM テーブル名\G

それでは、実際にサンプルテーブルを作成して動作を確認してみましょう。

サンプルテーブルの作成

まず、従業員情報を格納するテーブルを作成します。

mysql> create table expandedOutputDemo
    - > (
    - > EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    - > EmployeeName varchar(20),
    - > EmployeeAge int
    - > );
Query OK, 0 rows affected (0.66 sec)

データの挿入

次に、INSERT文を使ってレコードを登録します。

mysql> insert into expandedOutputDemo(EmployeeName,EmployeeAge) values('Larry',27);
Query OK, 1 row affected (0.16 sec)
mysql> insert into expandedOutputDemo(EmployeeName,EmployeeAge) values('Mike',29);
Query OK, 1 row affected (0.12 sec)
mysql> insert into expandedOutputDemo(EmployeeName,EmployeeAge) values('Sam',31);
Query OK, 1 row affected (0.10 sec)
mysql> insert into expandedOutputDemo(EmployeeName,EmployeeAge) values('Bob',24);
Query OK, 1 row affected (0.14 sec)
mysql> insert into expandedOutputDemo(EmployeeName,EmployeeAge) values('Carol',28);
Query OK, 1 row affected (0.09 sec)

通常のSELECT文での出力

まず、通常のSELECT文で全レコードを表示してみます。

mysql> select *from expandedOutputDemo;

実行結果は以下のとおりです。カラム数が多い場合や値が長い場合、この表形式では見づらくなることがあります。

+------------+--------------+-------------+
| EmployeeId | EmployeeName | EmployeeAge |
+------------+--------------+-------------+
|          1 | Larry        |          27 |
|          2 | Mike         |          29 |
|          3 | Sam          |          31 |
|          4 | Bob          |          24 |
|          5 | Carol        |          28 |
+------------+--------------+-------------+
5 rows in set (0.00 sec)

\Gを使った拡張出力

次に、同じクエリを \G で終了させて実行します。

mysql> select *from expandedOutputDemo\G

すると、以下のように各レコードが「カラム名: 値」の形式で縦に展開されて表示されます。

*************************** 1. row ***************************
   EmployeeId: 1
 EmployeeName: Larry
  EmployeeAge: 27
*************************** 2. row ***************************
   EmployeeId: 2
 EmployeeName: Mike
  EmployeeAge: 29
*************************** 3. row ***************************
   EmployeeId: 3
 EmployeeName: Sam
  EmployeeAge: 31
*************************** 4. row ***************************
   EmployeeId: 4
 EmployeeName: Bob
  EmployeeAge: 24
*************************** 5. row ***************************
   EmployeeId: 5
 EmployeeName: Carol
  EmployeeAge: 28
5 rows in set (0.00 sec)

まとめ

MySQLの \G は、PostgreSQLの \x コマンドによる拡張表示に相当する機能です。多くのカラムを持つテーブルや長い文字列データを扱う際に、ターミナル上で結果を読みやすく確認できるため、日常的なデバッグやデータ検証の際に非常に便利です。なお、\G はステートメントの終端として機能するため、最後のセミコロンは不要である点にも注意してください。

  1. MySQLのデータベースファイルはどこに保存される?保存場所の確認方法

    MySQLがデータベースファイルを実際にどのディレクトリへ保存しているのかを確認したい場合は、システム変数 @@datadir を参照するのが最も簡単な方法です。この記事では、その確認手順と、取得したパスにデータベースが正しく存在することを検証する方法までを解説します。 @@datadirでデータディレクトリを確認する まず、以下のようにSELECT文で@@datadirの値を取得します。 mysql> SELECT @@datadir; 実行結果の例 +---------------------------------------------+ | @@datadir

  2. SQL ServerにMySQLのENUM型に相当する機能はある?代替方法を解説

    結論から言うと、SQL ServerにはMySQLのENUMデータ型と完全に同じ組み込みデータ型は存在しません。しかし、VARCHAR型とCHECK制約を組み合わせることで、ENUMとほぼ同等の機能を実現できます。MySQLにおけるENUM型の基本まず、MySQL(バージョン8.0.12で動作確認済み)でのENUM型の定義方法を見てみましょう。構文は以下の通りです。create table yourTableName ( yourColumnName enum(Value1,Value2,Value3,......N) default Value1 or Value2 or Value3,..