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

【MySQL】CREATE TABLE ... LIKEで既存テーブルと同じ構造の新しいテーブルを作成する方法

MySQLでは、CREATE TABLE ... LIKE構文を使用することで、既存のテーブルと同じ構造(カラム定義、PRIMARY KEY、AUTO_INCREMENT属性など)を持つ新しいテーブルを簡単に作成できます。ここでは、実際の手順を順番に解説します。

ステップ1:元となるテーブルを作成する

まず、コピー元となるテーブルを作成します。

mysql> create table DemoTable1
(
    EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    EmployeeName varchar(50)
);
Query OK, 0 rows affected (0.48 sec)

ステップ2:レコードを挿入する

INSERT文を使って、いくつかのレコードを追加します。

mysql> insert into DemoTable1(EmployeeName) values('Tom');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable1(EmployeeName) values('Mike');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1(EmployeeName) values('Emma');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1(EmployeeName) values('Sam');
Query OK, 1 row affected (0.10 sec)

ステップ3:テーブルの内容を確認する

SELECT文で全レコードを表示して確認します。

mysql> select *from DemoTable1;

実行結果は以下の通りです。

+------------+--------------+
| EmployeeId | EmployeeName |
+------------+--------------+
|          1 | Tom          |
|          2 | Mike         |
|          3 | Emma         |
|          4 | Sam          |
+------------+--------------+
4 rows in set (0.00 sec)

ステップ4:LIKE句を使って新しいテーブルを作成する

以下が、LIKE句を使用して別のテーブルから新しいテーブルを作成するクエリです。

mysql> create table DemoTable2 LIKE DemoTable1;
Query OK, 0 rows affected (0.55 sec)

ステップ5:新しく作成したテーブルの構造を確認する

DESC文でテーブルの構造を確認してみましょう。

mysql> desc DemoTable2;

実行結果は以下の通りです。

+--------------+-------------+------+-----+---------+----------------+
| Field        | Type        | Null | Key | Default | Extra          |
+--------------+-------------+------+-----+---------+----------------+
| EmployeeId   | int(11)     | NO   | PRI | NULL    | auto_increment |
| EmployeeName | varchar(50) | YES  |     | NULL    |                |
+--------------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

このように、CREATE TABLE 新しいテーブル名 LIKE 元のテーブル名;というシンプルな構文だけで、元のテーブルと完全に同じ構造を持つ新しいテーブルを作成できます。出力結果からも、PRIMARY KEYやAUTO_INCREMENT属性が正しく引き継がれていることがわかります。

注意点:LIKE句ではデータはコピーされない

LIKE句で作成したテーブルには構造のみがコピーされ、元のテーブルのデータは含まれません。データごとコピーしたい場合は、CREATE TABLE ... AS SELECT構文を使用します。ただしこの方法では、インデックスやPRIMARY KEYなどの属性は引き継がれないため、用途に応じて使い分けることが重要です。

  1. MySQLで別テーブルのIDからユーザー名を取得する方法|JOINの使い方を徹底解説

    MySQLでは、別々のテーブルに保存されたデータをIDをキーに関連付けて取得したい場面が多くあります。そのような場合にはJOIN(内部結合)を使うことで、複数のテーブルを結合し、目的のユーザー名を簡単に取り出すことができます。 本記事では、実際にサンプルテーブルを作成しながら、JOINクエリの書き方をステップごとに解説します。 1つ目のテーブル「demo77」を作成する まず、ユーザーID(userid)とユーザー名(username)を格納するテーブルを作成します。useridは主キーとして設定します。 mysql> create table demo77 -> (

  2. PythonでMySQLのテーブルから全データを取得する方法を解説

    MySQLのテーブルは、行(レコード)と列(フィールド)で構成されています。列はデータの項目(フィールド)を定義し、行は実際のデータレコードを表します。テーブルに格納されたデータは、利用するために取得する必要があります。場合によっては、テーブルからすべてのデータを一度に取得したいこともあるでしょう。テーブルからすべての行を取得するには、SELECT * ステートメントを使用します。基本構文SELECT * FROM テーブル名上記の構文における「*」は、テーブルからすべての行を取得することを意味しています。PythonでMySQLを使ってテーブルの全データを取得する手順MySQLコネクタをイン