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

MySQLのCTAS(CREATE TABLE AS SELECT)とは?概念と使い方をわかりやすく解説

CTASとは「CREATE TABLE AS SELECT」の略称で、既存のテーブルを基に新しいテーブルを作成するためのSQL文です。この構文を使うと、元のテーブルの構造(カラム定義)とデータの両方をまとめてコピーできます。バックアップテーブルの作成やテーブルの複製など、さまざまな場面で活用できる便利な機能です。

CTASの基本構文

CREATE TABLE 新しいテーブル名 AS SELECT * FROM 既存のテーブル名;

具体例:EmployeeテーブルからEMP_BACKUPテーブルを作成する

以下の例では、既に存在する「Employee」テーブルを元に、「EMP_BACKUP」という新しいテーブルを作成します。

まず、元となる「Employee」テーブルの内容を確認してみましょう。

mysql> Select * from Employee;

+------+--------+
| Id   | Name   |
+------+--------+
| 100  | Ram    |
| 200  | Gaurav |
| 300  | Mohan  |
+------+--------+

3 rows in set (0.00 sec)

次に、CTAS構文を使って「Employee」テーブルの構造とデータをコピーし、「EMP_BACKUP」テーブルを作成します。

mysql> Create table EMP_BACKUP AS SELECT * from EMPLOYEE;
Query OK, 3 rows affected (0.15 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> Select * from EMP_BACKUP;

+------+--------+
| Id   | Name   |
+------+--------+
| 100  | Ram    |
| 200  | Gaurav |
| 300  | Mohan  |
+------+--------+

3 rows in set (0.00 sec)

実行結果を見ると、「EMP_BACKUP」テーブルに「Employee」テーブルのすべてのデータと構造がそのままコピーされていることが確認できます。

CTASを使う際のポイント

  • テーブルの構造とデータが同時にコピーされるため、バックアップ作成に最適
  • SELECT文にWHERE句を追加すれば、特定の条件に合うデータだけをコピーすることも可能
  • テスト用や検証用のテーブルを手軽に複製できる

このように、CTASは既存テーブルを簡単に複製できる強力な構文です。日常的なデータベース運用やバックアップ作業において、ぜひ活用してみてください。

  1. MySQLストアドプロシージャで一時テーブル(TEMPORARY TABLE)を作成する方法

    MySQLストアドプロシージャで一時テーブルを作成する基本構文MySQLのストアドプロシージャ内で一時テーブル(TEMPORARY TABLE)を作成する場合、基本となる構文は以下の通りです。CREATE PROCEDURE yourProcedureName() BEGIN CREATE TEMPORARY TABLE yourTemporaryTableName SELECT yourValue; ENDストアドプロシージャの作成例それでは、実際にこの構文を使って一時テーブルを作成し、テーブルにレコードを挿入してみましょう。まずは、一時テーブルを作成するストアドプロシージャを定義す

  2. MySQLでテーブルのカラム名(列名)を取得する構文とは?

    MySQLでは、information_schema.columns テーブルを参照することで、指定したテーブルのカラム名(列名)を簡単に取得できます。データベースの構造を確認したい場合や、動的にカラム情報を取得したいアプリケーションを開発する際に非常に便利な方法です。カラム名を取得する基本構文テーブルのカラム名を取得するには、以下の構文を使用します。SELECT column_name FROM information_schema.columns WHERE table_schema = データベース名 AND table_name = テーブル名;table_schema にはデータベー