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

MySQLで値を持つ一時列を追加する方法【SELECT文の活用】

MySQLでは、テーブル自体に新しい列を追加(ALTER TABLE)しなくても、SELECT文を使えばクエリ結果にのみ現れる「一時列」を簡単に追加できます。レポート出力やデータ確認の際に、固定値を付加したい場合に非常に便利なテクニックです。

基本構文

一時列を追加するには、以下の構文を使用します。

select yourColumnName1,yourColumnName2,.....N ,yourTemporaryColumnValue as yourTemporaryColumnName from yourTableName;

ポイントは、追加したい値をそのまま記述し、asキーワードで一時列の名前(エイリアス)を指定する点です。これにより、実テーブルには影響を与えずに結果セットへ任意の値を持つ列を表示できます。

サンプルテーブルの作成

それでは、実際に一時列を追加してみましょう。まずは動作確認用のテーブルを作成します。以下がテーブル作成のクエリです。

mysql> create table TemporaryColumnWithValueDemo
   −> (
      −> StudentId int,
      −> StudentName varchar(100)
   −> );
Query OK, 0 rows affected (0.59 sec)

レコードの挿入

次に、作成したテーブルにいくつかのレコードを挿入します。挿入用のクエリは以下の通りです。

mysql> insert into TemporaryColumnWithValueDemo values(101,'John');
Query OK, 1 row affected (0.13 sec)

mysql> insert into TemporaryColumnWithValueDemo values(102,'Johnson');
Query OK, 1 row affected (0.15 sec)

mysql> insert into TemporaryColumnWithValueDemo values(103,'Carol');
Query OK, 1 row affected (0.14 sec)

mysql> insert into TemporaryColumnWithValueDemo values(104,'Sam');
Query OK, 1 row affected (0.16 sec)

登録データの確認

挿入したすべてのレコードを表示して確認します。

mysql> select *from TemporaryColumnWithValueDemo;

以下が出力結果です。

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
|       101 | John        |
|       102 | Johnson     |
|       103 | Carol       |
|       104 | Sam         |
+-----------+-------------+
4 rows in set (0.00 sec)

一時列を追加するクエリの実行

準備ができたので、ここからが本題です。固定値「M.I.T.」を持つ一時列「TempCollegeName」を追加してみます。クエリは以下の通りです。

mysql> select StudentId,StudentName,'M.I.T.' as TempCollegeName from TemporaryColumnWithValueDemo;

以下が出力結果です。一時列が正常に追加されていることがわかります。

+-----------+-------------+-----------------+
| StudentId | StudentName | TempCollegeName |
+-----------+-------------+-----------------+
|       101 | John        | M.I.T.          |
|       102 | Johnson     | M.I.T.          |
|       103 | Carol       | M.I.T.          |
|       104 | Sam         | M.I.T.          |
+-----------+-------------+-----------------+
4 rows in set (0.00 sec)

まとめ

このように、SELECT文の中にリテラル値とasによる別名を組み合わせるだけで、テーブル構造を変更することなく一時的な列を結果に含めることができます。すべての行に同じ値を付加したい場合や、CSVエクスポート時に固定項目を追加したい場合などに活用できる、シンプルかつ実用的な手法です。

  1. MySQLで開始値を指定してAUTO_INCREMENTカラムを追加する方法

    すでに作成済みのテーブルに新しいカラムを追加するには、ALTER TABLE 文と ADD COLUMN 句を使用します。さらに AUTO_INCREMENT 属性を組み合わせることで、連番が自動的に採番されるカラムに対して、任意の開始値(初期値)を設定することも可能です。本記事では、既存のテーブルへ「1000」から始まる自動増加カラムを追加する手順を、実際のSQL実行例とあわせて解説します。 ステップ1:テーブルを作成する まずはサンプル用のテーブルを作成しましょう。ここでは学生名だけを持つシンプルなテーブルを定義します。 mysql> create table DemoTable

  2. MySQLクエリで列にユーザー定義の値を追加する方法

    MySQLでは、UNION ALLを活用することで、既存の列の値に加えて、ユーザーが自由に定義した値をクエリ結果に追加できます。ここでは、ENUM型の列を持つテーブルを例に、その具体的な手順を解説します。 1. サンプルテーブルの作成 まず、ENUM型のカラムを持つテーブルを作成します。 mysql> create table DemoTable1847      (      GameStatus ENUM(PENDING,COMPLETED,CANCELLED)      ); Query OK