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

MySQLで特定の列の直前に新しい列を追加することは不可能?FIRST句・AFTER句の使い方を解説

結論:MySQLでも列の途中への追加は可能です

いいえ、不可能ではありません。ALTER TABLE文を使えば、既存の特定の列の前(=その前の列の後ろ)に、新しい列を簡単に追加できます。

ポイント: テーブル内の特定の位置に列を追加するには、FIRST(テーブルの先頭に追加)または AFTER col_name(指定した列の直後に追加)を使用します。「ある列の直前に追加したい」場合は、その列の一つ前の列を指定して AFTER を使うことで実現できます。

1. サンプルテーブルを作成する

まず、動作確認用のテーブルを作成しましょう。

mysql> create table DemoTable
    -> (
    -> Id int,
    -> Name varchar(20),
    -> CountryName varchar(100)
    -> );
Query OK, 0 rows affected (0.67 sec)

2. 現在の列構成を確認する

作成したテーブルのすべての列名を確認します。

mysql> show columns from DemoTable;

出力結果

以下のような出力が得られます。

+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| Id          | int(11)      | YES  |     | NULL    |       |
| Name        | varchar(20)  | YES  |     | NULL    |       |
| CountryName | varchar(100) | YES  |     | NULL    |       |
+-------------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

3. 別の列の間に新しい列を追加する

次に、既存の列の間に新しい列を挿入するクエリを実行します。ここでは「Name」列の直後に「Age」列を追加します。

mysql> alter table DemoTable add Age int AFTER Name;
Query OK, 0 rows affected (1.50 sec)
Records: 0 Duplicates: 0 Warnings: 0

もう一度、テーブルの列構成を確認してみましょう。

mysql> show columns from DemoTable;

出力結果

以下の出力から、「Name」列と「CountryName」列の間に「Age」列が正常に追加されたことが確認できます。

+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| Id          | int(11)      | YES  |     | NULL    |       |
| Name        | varchar(20)  | YES  |     | NULL    |       |
| Age         | int(11)      | YES  |     | NULL    |       |
| CountryName | varchar(100) | YES  |     | NULL    |       |
+-------------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

補足:先頭に列を追加したい場合

テーブルの一番先頭に列を追加したい場合は、FIRST キーワードを使用します。

mysql> alter table DemoTable add Age int FIRST;

このように、MySQLでは FIRST 句と AFTER 句を組み合わせることで、列を好きな位置に柔軟に挿入することが可能です。

  1. 【MySQL】別のテーブルのカラムを参照してカラムを更新する方法

    別のMySQLテーブルのカラム値を参照しながら、現在のテーブルのカラムを更新したい場合には、JOIN(結合)の概念を利用します。ここでは、実際にテーブルを作成しながら、具体的な手順をわかりやすく解説していきます。1つ目のテーブル(更新される側)を作成するまず、更新対象となるテーブル「DemoTable1」を作成しましょう。mysql> create table DemoTable1    -> (    -> Id int,    -> Name va

  2. MySQLで重複する値ごとのレコードを別の列に合計して表示する方法

    MySQLでは、重複している値(同じ名前など)を持つ複数のレコードの数値を、名前ごとにまとめて合計したいケースがあります。このような場合には、集計関数SUM()とGROUP BY句を組み合わせることで簡単に実現できます。本記事では、実際にサンプルテーブルを作成し、重複する値を持つレコードを別の列(合計列)として集計・表示する手順を解説します。1. サンプルテーブルを作成するまず、CREATE TABLE文を使ってテーブルを作成します。mysql> create table DemoTable -> ( -> Name varchar(20), -> V