MySQLである列の値を新しいテーブルにコピーする最も簡単な方法
MySQLであるテーブルの列(カラム)の値を、別の新しいテーブルにコピーしたい場合、「AS SELECT」文を使うのが最も簡単な方法です。この記事では、具体的な手順をサンプルコードとともに解説します。
1. コピー元のテーブルを作成する
まず、コピー元となるテーブルを作成します。
mysql> create table DemoTable1 ( Score int ); Query OK, 0 rows affected (1.22 sec)
2. テーブルにレコードを挿入する
INSERT文を使って、テーブルにいくつかのレコードを挿入します。
mysql> insert into DemoTable1 values(89); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable1 values(98); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable1 values(91); Query OK, 1 row affected (0.24 sec)
3. レコードを確認する
SELECT文を使って、テーブル内のすべてのレコードを表示してみましょう。
mysql> select *from DemoTable1;
実行すると、次のような出力が得られます。
+-------+ | Score | +-------+ | 89 | | 98 | | 91 | +-------+ 3 rows in set (0.00 sec)
4. AS SELECT文で列の値を新しいテーブルにコピーする
ここがポイントです。CREATE TABLE文に「AS SELECT」を組み合わせることで、テーブルの作成とデータのコピーを同時に行えます。以下は、DemoTable1の「Score」列の値を、新しいテーブルDemoTable2の「StudentScore」列としてコピーするクエリです。
mysql> create table DemoTable2( StudentScore int )AS select Score AS StudentScore from DemoTable1; Query OK, 3 rows affected (0.81 sec) Records: 3 Duplicates: 0 Warnings: 0
このように「AS」を使うことで、コピー元の列名と異なる名前を新しいテーブルの列に付けることも可能です。
5. コピー結果を確認する
新しいテーブルのレコードを再度確認してみましょう。
mysql> select StudentScore from DemoTable2;
実行すると、次のように値が正しくコピーされていることがわかります。
+--------------+ | StudentScore | +--------------+ | 89 | | 98 | | 91 | +--------------+ 3 rows in set (0.00 sec)
まとめ
MySQLでは、CREATE TABLE ... AS SELECT構文を使うことで、既存テーブルの特定の列の値を簡単に新しいテーブルへコピーできます。テーブル作成とデータ挿入が1つのクエリで完結するため、作業効率も大幅に向上します。列名を変更したい場合は、SELECT句でASエイリアスを指定するだけで対応可能です。
-
MySQLで1つのテーブルから別のテーブルに行をコピーする方法【INSERT INTO SELECT文の使い方】
MySQLでテーブル間の行コピーを実現する方法MySQLであるテーブルから別のテーブルへ行(レコード)をコピーしたい場合は、INSERT INTO SELECT文を使用します。この文を使えば、SELECT句で取得したデータをそのまま別のテーブルに挿入できるため、WHERE句による条件指定と組み合わせれば、必要な行だけを効率よくコピーすることも可能です。ここでは、実際にサンプルテーブルを作成し、行をコピーする手順を順番に解説します。手順1:コピー元のテーブルを作成するまず、コピー元となるテーブル「DemoTable1879」を作成します。mysql> create table DemoTa
-
MySQLで列にENUM型を設定する方法
```html MySQLでは、テーブルを作成する際に、あらかじめ決められた文字列のリストから値を選ばせたい列に対してENUM型を設定できます。ENUMは、指定した候補値以外のデータが登録されるのを防ぎたい場合に便利なデータ型です。ここでは、実際にテーブルを作成しながら基本的な使い方を見ていきましょう。ENUM型を含むテーブルを作成するまず、学生の点数と合否ステータスを管理するテーブルを作成します。「StudentStatus」列には「First」「Second」「Fail」の3つの値のみを許可するENUM型を設定しています。mysql> create table DemoTable20