CTAS(CREATE TABLE AS SELECT)スクリプトでテーブルを作成する際にWHERE句を活用する方法
CTASスクリプトとWHERE句の組み合わせ
CTAS(Create Table As Select)は、既存のテーブルからデータと構造をまとめてコピーし、新しいテーブルを作成できる便利な機能です。さらに、このCTASスクリプトにWHERE句を組み合わせることで、特定の条件を満たす行だけを抽出した新しいテーブルを作成することも可能です。
WHERE句を使用したCTASの実行例
以下の例では、「EMPLOYEE」テーブルからidが300で、名前が「Mohan」である行だけを抽出し、「EMP_BACKUP2」という新しいテーブルを作成しています。
mysql> Create table EMP_BACKUP2 AS SELECT * from EMPLOYEE WHERE id = 300 AND Name = 'Mohan';
Query OK, 1 row affected (0.14 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> Select * from EMP_BACKUP2;
+------+-------+
| Id | Name |
+------+-------+
| 300 | Mohan |
+------+-------+
1 row in set (0.00 sec)
上記の例では、「EMPLOYEE」テーブルに対して条件を指定し、「EMP_BACKUP2」というテーブルを作成しました。MySQLは指定された条件に一致する1行のみを含むテーブルを自動的に生成します。
WHERE句活用のポイント
- 複数条件の指定: ANDやOR演算子を組み合わせることで、より柔軟なデータ抽出が可能になります。
- 該当行がない場合: 条件に一致する行が存在しなくてもエラーにはならず、構造だけを持つ空のテーブルが作成されます。
- 主な用途: バックアップテーブルの作成や、特定のデータだけを別テーブルとして保存したい場合などに活用できます。
-
MySQLで特定の3つの値しか格納できないカラムを持つテーブルを作成する方法
MySQLで、あらかじめ決められた3つの値だけを格納できるカラムを持つテーブルを作成したい場合は、ENUMデータ型を使用します。ENUM型を使うと、指定した候補値以外のデータが挿入されるのを防ぐことができます。テーブルの作成まず、ENUM型のカラムを持つテーブルを作成しましょう。ここでは例として、「RED」「GREEN」「BLUE」の3色のみを許可するColorカラムを定義します。mysql> create table DemoTable838(Color ENUM(RED,GREEN,BLUE)); Query OK, 0 rows affected (0.67 sec)これで、Col
-
MySQLでインデックス付きのテーブルを作成する方法を徹底解説
MySQLでは、テーブル作成後にCREATE INDEX文を使うことで、特定のカラムに対してインデックスを追加できます。検索速度の向上やデータ整合性の確保において、インデックスは非常に重要な役割を果たします。この記事では、基本的な構文から実際の実行例まで、順を追ってわかりやすく解説します。インデックス付きテーブルを作成する基本構文まずテーブルを作成し、その後CREATE INDEX文でインデックスを追加します。基本の構文は以下のとおりです。create table yourTableName ( yourColumnName1 dataType, yourColumnName2 dataTyp