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

MySQL에서 한 열의 값을 새 테이블로 복사하는 가장 쉬운 방법

MySQL에서 기존 테이블의 특정 열 값을 새 테이블로 복사하려면 CREATE TABLE ... AS SELECT 구문을 사용하는 것이 가장 간단합니다. 이 방법을 사용하면 새 테이블 생성과 데이터 복사를 한 번의 쿼리로 처리할 수 있습니다.

1. 원본 테이블 생성하기

먼저 예제로 사용할 테이블을 만들어 보겠습니다.

mysql> create table DemoTable1
(
    Score int
);
Query OK, 0 rows affected (1.22 sec)

2. 데이터 삽입하기

INSERT 명령어를 사용해 테이블에 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable1 values(89);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1 values(98);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1 values(91);
Query OK, 1 row affected (0.24 sec)

3. 원본 테이블 확인하기

SELECT 문으로 테이블에 저장된 모든 레코드를 조회합니다.

mysql> select *from DemoTable1;

위 쿼리는 다음과 같은 결과를 출력합니다.

+-------+
| Score |
+-------+
|    89 |
|    98 |
|    91 |
+-------+
3 rows in set (0.00 sec)

4. AS SELECT 구문으로 열 값 복사하기

이제 핵심 단계입니다. AS SELECT 구문을 활용하면 한 열의 값을 새 테이블로 손쉽게 복사할 수 있습니다. 아래 쿼리는 DemoTable1의 Score 열 값을 DemoTable2의 StudentScore 열로 복사합니다.

mysql> create table DemoTable2(
    StudentScore int
)AS select Score AS StudentScore from DemoTable1;
Query OK, 3 rows affected (0.81 sec)
Records: 3 Duplicates: 0 Warnings: 0

여기서 Score AS StudentScore 부분은 원본 열 이름을 새 테이블에서 다른 이름으로 지정(alias)하는 역할을 합니다. 필요에 따라 원본 열 이름을 그대로 사용할 수도 있습니다.

5. 결과 확인하기

새 테이블의 레코드가 제대로 복사되었는지 다시 한번 조회해 보겠습니다.

mysql> select StudentScore from DemoTable2;

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

+--------------+
| StudentScore |
+--------------+
|           89 |
|           98 |
|           91 |
+--------------+
3 rows in set (0.00 sec)

정리

CREATE TABLE ... AS SELECT 구문은 MySQL에서 테이블 구조와 데이터를 동시에 복사할 수 있는 매우 편리한 방법입니다. 전체 테이블이 아닌 특정 열만 선택적으로 복사할 수 있으며, WHERE 절을 추가하면 조건에 맞는 데이터만 복사하는 것도 가능합니다. 대량의 데이터를 백업하거나 임시 분석용 테이블을 빠르게 만들 때 유용하게 활용할 수 있습니다.