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

既存のMySQLテーブルから条件を指定してデータをコピーする方法

MySQLでは、CTAS(CREATE TABLE AS SELECT)スクリプトを使うことで、既存のテーブルから構造とデータをまとめてコピーできます。さらに、特定の条件に合致するデータだけをコピーしたい場合は、WHERE句を組み合わせることで簡単に実現できます。

基本構文

CREATE TABLE 新しいテーブル名 AS
SELECT * FROM 元のテーブル名
WHERE 条件;

実行例

以下の例では、「EMPLOYEE」テーブルから「id = 300」かつ「Name = '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)

このように、WHERE句で指定した条件に一致するデータのみが新しいテーブルへコピーされます。上記の例では、条件(idが300かつ名前がMohan)を満たす1行だけを含むテーブルが作成されました。

ポイント

  • WHERE句には ANDOR などの論理演算子を組み合わせられるため、複数の条件を柔軟に指定できます。
  • コピー元のテーブル構造(列定義)はそのまま引き継がれます。
  • バックアップの作成や、特定レコードの部分的な抽出など、さまざまな場面で活用できる便利な手法です。
  1. MySQLでテーブルのデータを削除した後にAUTO_INCREMENTを1から再開させる方法

    MySQLでデータ削除後にAUTO_INCREMENTを1に戻す方法MySQLでは、DELETE文でレコードを削除してもAUTO_INCREMENTの値はリセットされず、次に挿入されるレコードには続きの番号が割り当てられます。自動インクリメントの値を1に戻したい場合は、TRUNCATE TABLEコマンドを使用します。本記事では、実際のSQL例を使ってその動作を確認していきます。検証用テーブルの作成まず、テーブルを作成します。mysql> create table DemoTable1796 ( StudentId int NOT NULL AUTO_INCREMENT

  2. PythonとMySQLで条件に合うデータを抽出する方法:WHERE句の使い方を徹底解説

    テーブルからすべてのデータを取得する必要があるケースは、実はそれほど多くありません。むしろ、何らかの条件や基準に基づいて、特定のデータや行だけを取り出したいという場面の方が多いでしょう。例えば、多くの生徒の名前と点数が登録されたテーブルがあるとします。ここから「点数が90以上の生徒の名前だけを取得したい」という場合、(点数>=90)という条件に基づいてデータを選択する必要があります。このような条件付きのデータ抽出を実現するために、MySQLでは「WHERE」句が用意されています。WHERE句を使えば、指定した条件を満たすデータだけをテーブルから選択できます。基本構文SELECT * FR