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

MySQLでクエリに存在しない列を追加する方法|ASキーワードの使い方

クエリに存在しない列を追加するには?

SELECT文を実行する際、テーブルには実際に存在しない列を結果に含めたいケースがあります。そんなときに役立つのがASキーワードです。ASキーワードを使えば、固定値や式に対して別名(エイリアス)を付与でき、あたかも新しい列が存在するかのように出力できます。

基本となる構文は以下の通りです。

SELECT yourColumnName1,yourColumnName2,....N,yourValue AS yourColumnName,....N FROM yourTableName;

サンプルテーブルの作成

まず、動作を確認するためのテーブルを作成しましょう。テーブルを作成するクエリは次の通りです。

mysql> create table ColumnDoesNotExists
    -> (
    -> UserId int,
    -> UserName varchar(20)
    -> );
Query OK, 0 rows affected (0.67 sec)

例:レコードの挿入

INSERTコマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは以下の通りです。

mysql> insert into ColumnDoesNotExists(UserId,UserName) values(100,'Larry');
Query OK, 1 row affected (0.14 sec)
mysql> insert into ColumnDoesNotExists(UserId,UserName) values(101,'Sam');
Query OK, 1 row affected (0.22 sec)
mysql> insert into ColumnDoesNotExists(UserId,UserName) values(102,'Mike');
Query OK, 1 row affected (0.15 sec)
mysql> insert into ColumnDoesNotExists(UserId,UserName) values(103,'David');
Query OK, 1 row affected (0.15 sec)
mysql> insert into ColumnDoesNotExists(UserId,UserName) values(104,'Robert');
Query OK, 1 row affected (0.10 sec)
mysql> insert into ColumnDoesNotExists(UserId,UserName) values(105,'Maxwell');
Query OK, 1 row affected (0.20 sec)
mysql> insert into ColumnDoesNotExists(UserId,UserName) values(106,'Bob');
Query OK, 1 row affected (0.17 sec)
mysql> insert into ColumnDoesNotExists(UserId,UserName) values(107,'John');
Query OK, 1 row affected (0.17 sec)
mysql> insert into ColumnDoesNotExists(UserId,UserName) values(108,'James');
Query OK, 1 row affected (0.18 sec)

SELECT文ですべてのレコードを表示し、データが正しく登録されているか確認しましょう。

mysql> select *from ColumnDoesNotExists;

出力結果

+--------+----------+
| UserId | UserName |
+--------+----------+
|    100 |    Larry |
|    101 |      Sam |
|    102 |     Mike |
|    103 |    David |
|    104 |    Robert |
|    105 |  Maxwell |
|    106 |      Bob |
|    107 |     John |
|    108 |    James |
+--------+----------+
9 rows in set (0.00 sec)

例:存在しない列「Age」を追加する

それでは本題です。テーブルには存在しない列名を、クエリの中で追加してみましょう。ここでは、「Age」という列を値23とともに追加します。

mysql> select UserId,UserName,23 AS Age from ColumnDoesNotExists;

出力結果

+--------+----------+-----+
| UserId | UserName | Age |
+--------+----------+-----+
|    100 |    Larry |  23 |
|    101 |      Sam |  23 |
|    102 |     Mike |  23 |
|    103 |    David |  23 |
|    104 |    Robert |  23 |
|    105 |  Maxwell |  23 |
|    106 |      Bob |  23 |
|    107 |     John |  23 |
|    108 |    James |  23 |
+--------+----------+-----+
9 rows in set (0.00 sec)

ポイントまとめ

  • ASキーワードを使うことで、テーブルに存在しない仮想的な列をSELECT結果に追加できます。
  • 固定値のほか、計算式や文字列なども指定可能です。
  • この操作は表示上の追加であり、元のテーブル構造は一切変更されません。
  1. MySQLで列(カラム)の値を置き換える方法|UPDATE文の使い方を解説

    MySQLでテーブルの特定の列(カラム)の値を置き換えたい場合には、UPDATE文を使用します。WHERE句で対象のレコードを指定することで、該当する行だけを安全に更新できます。この記事では、実際のSQLサンプルを使いながら、列の値を置き換える手順を順番に解説していきます。1. サンプルテーブルを作成するまず、動作確認用のテーブルを作成しましょう。以下のクエリを実行します。mysql> create table DemoTable ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, Score int ); Query

  2. MySQLで複数の行(レコード)が存在するかどうかを確認するクエリの書き方

    MySQLでは、COUNT(DISTINCT ...) を活用することで、指定した複数の行(レコード)がテーブル内にすべて存在するかどうかを簡単に確認できます。この記事では、具体的なサンプルを使って手順を解説します。 1. サンプルテーブルを作成する まず、動作確認用のテーブルを作成します。 mysql> create table DemoTable1219 ( Id int, Name varchar(40) ); Query OK, 0 rows affected (0.43 sec) 2. テストデータを挿入する INSERT コマンドを使って、いくつかのレコー