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

MySQLで別のテーブルのデータを元にテーブルへ列を追加する方法

MySQLで別のテーブルから列を追加することは可能?

はい、MySQLでは別のテーブルのデータを参照しながら、テーブルに新しい列を追加することができます。この記事では、実際に2つのテーブルを作成し、片方のテーブルの列データをもう片方のテーブルに反映させる手順を解説します。

手順1:最初のテーブル(FirstTable)を作成する

まず、以下のクエリで最初のテーブルを作成します。

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

手順2:2番目のテーブル(SecondTable)を作成する

続いて、年齢データを保持する2番目のテーブルを作成します。

mysql> create table SecondTable
    -> (
    -> UserId int,
    -> UserAge int
    -> );
Query OK, 0 rows affected (1.57 sec)

手順3:ALTER TABLEでAge列を追加する

まず、ALTER TABLE文を使ってFirstTableにAge列を追加します。ここでは、符号なしのTINYINT型とし、デフォルト値を0に設定しています。

mysql> ALTER TABLE FirstTable ADD COLUMN Age TINYINT UNSIGNED DEFAULT 0;
Query OK, 0 rows affected (1.53 sec)
Records: 0 Duplicates: 0 Warnings: 0

手順4:UPDATEとINNER JOINで別テーブルの値を反映する

次に、UPDATE文とINNER JOINを組み合わせて、SecondTableのUserAge列の値を、UserIdをキーとしてFirstTableのAge列に設定します。

mysql> UPDATE FirstTable tbl1
    -> INNER JOIN SecondTable tbl2 ON tbl1.UserId = tbl2.UserId
    -> SET tbl1.Age = tbl2.UserAge;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0

手順5:DESCコマンドで結果を確認する

最後に、DESCコマンドでFirstTableの構造を確認しましょう。

mysql> desc FirstTable;

以下の出力のように、Age列が正常に追加されていることが確認できます。

+----------+---------------------+------+-----+---------+-------+
| Field    | Type                | Null | Key | Default | Extra |
+----------+---------------------+------+-----+---------+-------+
| UserId   | int(11)             | YES  |     | NULL    |       |
| UserName | varchar(20)         | YES  |     | NULL    |       |
| Age      | tinyint(3) unsigned | YES  |     | 0       |       |
+----------+---------------------+------+-----+---------+-------+
3 rows in set (0.53 sec)

まとめ

このように、ALTER TABLEで新しい列を追加した後、UPDATE文とINNER JOINを組み合わせることで、別のテーブルのデータを基に値を設定できます。両テーブルを結合するキー(この例ではUserId)が一致していることが重要なポイントです。既存のテーブル構造を変更したい場合にぜひ活用してみてください。

  1. 【MySQL】別のテーブルのデータを参照してテーブルを更新する方法(UPDATE+JOIN)

    MySQLでは、UPDATEコマンドとJOINを組み合わせることで、別のテーブルのデータを参照しながら、対象のテーブルを効率的に更新できます。本記事では、2つのテーブルを使った具体的なサンプルを通じて、その手順をわかりやすく解説します。 手順1:参照元のテーブルを作成する まず、氏名データを保持する1つ目のテーブル「demo54」を作成します。 mysql> create table demo54-> (-> firstName varchar(20),-> lastName varchar(20)-> );Query OK, 0 rows affected (

  2. PythonでMySQLのテーブルに新しい列(カラム)を追加する方法

    既存のテーブルに後から新しい列を追加したい場面は少なくありません。例えば、「Students(学生)」というテーブルに「Name(名前)」「Age(年齢)」「Roll no(出席番号)」といった列があるとします。ここに、新しく「Address(住所)」という列を追加したい場合、どうすればよいのでしょうか。このようなときに活躍するのがALTERコマンドです。ALTERコマンドは、データベース内の列を変更・削除・更新するためのコマンドで、ADD句と組み合わせることで、テーブルに新しい列を追加することもできます。構文ALTER TABLE table_name ADD new_column_name