Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 SELECT INTO 구현하는 방법 – CREATE TABLE SELECT 활용 가이드

MySQL에는 다른 데이터베이스처럼 SELECT INTO 문이 직접 제공되지 않습니다. 대신 CREATE TABLE ... SELECT 명령을 사용하면 동일한 기능을 손쉽게 구현할 수 있습니다. 기본 문법은 다음과 같습니다.

CREATE TABLE yourTableName SELECT * FROM yourOriginalTableName;

예제 테이블 생성하기

먼저 실습에 사용할 테이블을 만들어 보겠습니다.

mysql> create table SelectIntoDemo
-> (
-> Id int,
-> Name varchar(200)
-> );
Query OK, 0 rows affected (0.50 sec)

데이터 삽입하기

INSERT 명령을 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into SelectIntoDemo values(1,'Bob'),(2,'Carol'),(3,'David');
Query OK, 3 rows affected (0.15 sec)
Records: 3 Duplicates: 0 Warnings: 0

저장된 데이터 확인하기

SELECT 문으로 모든 레코드를 조회해 보겠습니다.

mysql> select *from SelectIntoDemo;

실행 결과는 다음과 같습니다.

+------+-------+
| Id | Name |
+------+-------+
| 1 | Bob |
| 2 | Carol |
| 3 | David |
+------+-------+
3 rows in set (0.00 sec)

CREATE TABLE SELECT로 테이블 복사하기

이제 앞서 소개한 문법을 적용하여 기존 테이블의 전체 데이터를 새 테이블로 복사합니다.

mysql> create table yourTempTable select *from SelectIntoDemo;
Query OK, 3 rows affected (0.56 sec)
Records: 3 Duplicates: 0 Warnings: 0

새로 생성된 "yourTempTable" 테이블의 레코드를 확인해 보겠습니다.

mysql> select *from yourTempTable;

실행 결과는 다음과 같습니다.

+------+-------+
| Id | Name |
+------+-------+
| 1 | Bob |
| 2 | Carol |
| 3 | David |
+------+-------+
3 rows in set (0.00 sec)

정리

이처럼 MySQL에서는 CREATE TABLE ... SELECT 구문 하나만으로 원본 테이블의 구조와 데이터를 그대로 복사할 수 있습니다. 특정 조건에 맞는 데이터만 복사하고 싶다면 문장 끝에 WHERE 절을 추가하면 되며, 필요한 열만 선택하려면 * 대신 원하는 컬럼 목록을 지정하면 됩니다. 백업 테이블 생성이나 임시 작업용 테이블을 만들 때 매우 유용하게 활용할 수 있습니다.