MySQLクエリで列名にエイリアス(別名)を設定する方法
MySQLでは、SELECT文を使って列名に「エイリアス(別名)」を設定できます。エイリアスを利用すると、出力結果の見出しをわかりやすい名前に変更でき、レポート作成やアプリケーションでのデータ表示が格段に読みやすくなります。
列名にエイリアスを設定する基本構文
SELECT yourColumnName1 anyAliasName1, yourColumnName2 anyAliasName2
FROM yourTableName anyAliasName;
このように、列名の後にスペースを空けて任意の別名を記述するだけで、その列の表示名がエイリアスに置き換わります。テーブル名にも同様にエイリアスを設定可能です。なお、ASキーワードを使用して「yourColumnName AS anyAliasName」と書くこともできますが、省略しても同じ動作になります。
サンプルテーブルの作成
それでは、実際に動作を確認するためのテーブルを作成しましょう。
mysql> CREATE TABLE DemoTable2014
-> (
-> FirstName varchar(20),
-> LastName varchar(20)
-> );
Query OK, 0 rows affected (0.70 sec)
レコードの挿入
次に、INSERTコマンドを使ってテーブルにいくつかのレコードを挿入します。
mysql> INSERT INTO DemoTable2014 VALUES('John','Smith');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable2014 VALUES('David','Miller');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable2014 VALUES('John','Doe');
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable2014 VALUES('Chris','Brown');
Query OK, 1 row affected (0.16 sec)テーブル内の全レコードを表示
SELECT文ですべてのレコードを確認してみます。
mysql> SELECT * FROM DemoTable2014;
実行すると、次のような出力が得られます。
+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| John | Smith |
| David | Miller |
| John | Doe |
| Chris | Brown |
+-----------+----------+
4 rows in set (0.00 sec)
単一のクエリで複数の列にエイリアスを設定する
ここからが本題です。1つのMySQLクエリで、すべての列名にエイリアスを設定するには、以下のように各列名の後に別名を続けて記述します。
mysql> SELECT FirstName StudentFirstName, LastName StudentLastName
-> FROM DemoTable2014 tbl;
この例では、「FirstName」列に「StudentFirstName」、「LastName」列に「StudentLastName」というエイリアスを設定しています。さらに、テーブル自体にも「tbl」というエイリアスを付けています。
実行結果は以下のとおりです。
+------------------+-----------------+
| StudentFirstName | StudentLastName |
+------------------+-----------------+
| John | Smith |
| David | Miller |
| John | Doe |
| Chris | Brown |
+------------------+-----------------+
4 rows in set (0.00 sec)
ご覧のとおり、元の列名「FirstName」「LastName」ではなく、設定したエイリアス「StudentFirstName」「StudentLastName」が見出しとして表示されました。このように、エイリアスを活用すれば、実際のテーブル構造を変更することなく、出力結果の列名だけを自由にカスタマイズできます。
-
MySQLですべての行の値をカンマ区切りの単一の行として表示する方法
GROUP_CONCAT()とCONCAT()を使って複数行の値を1行にまとめる方法MySQLでテーブル内の複数の行に格納された値を、カンマ(コンマ)で区切られた単一の行として取得したい場合には、GROUP_CONCAT()関数とCONCAT()関数を組み合わせて使用します。GROUP_CONCAT()はグループ内の複数の値を連結して文字列として返し、CONCAT()を使うことで各値の前後に任意の文字を追加できます。以下では、実際の手順をサンプルコードとともに順番に解説していきます。1. サンプルテーブルを作成するまず、テスト用のテーブルを作成します。ここではint型の「Id」カラムを持つシン
-
MySQLで最初の3件のレコードに特定の値を設定する方法
MySQLで、テーブルの最初の3件のレコードだけに特定の値を設定したい場合は、UPDATE文と組み合わせて LIMIT 3 を使用します。MySQLのUPDATE文は ORDER BY 句と LIMIT 句をサポートしているため、更新対象の行数を簡単に制御できます。ここでは、実際の手順をサンプルコードとともに解説します。 サンプルテーブルの作成 まず、テーブルを作成しましょう。 mysql> create table DemoTable1968 ( Id int NOT NULL AUTO_I