MySQL에서 테이블 복사

Preet Sanghavi 2023년1월30일
  1. CREATE TABLE ... AS SELECT 문을 사용하여 테이블 복제
  2. WHERE 절을 사용하여 부분 데이터가 있는 복제 테이블
MySQL에서 테이블 복사

이 튜토리얼은 MySQL에서 테이블 사본을 생성하는 다양한 방법을 탐색하는 것을 목표로 합니다.

원본 테이블은 복사할 테이블이라고도 하며 복제 테이블이라고 하는 대상 테이블은 MySQL 서버 내의 동일하거나 별도의 데이터베이스에서 가져올 수 있습니다.

MySQL에서 테이블을 복사하는 다음 방법을 살펴보겠습니다.

  • CREATE TABLE ... AS SELECT 문을 사용하여 테이블 복제.
  • WHERE 절을 사용하여 부분 데이터가 있는 복제 테이블.

시작하기 전에 작업할 더미 데이터 세트를 만듭니다. 여기에서 몇 개의 행과 함께 student_details 테이블을 만듭니다.

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

위의 쿼리는 학생의 이름과 성이 포함된 행과 함께 테이블을 생성합니다. 데이터의 항목을 보려면 다음 코드를 사용합니다.

SELECT * FROM student_details;

앞서 언급한 코드는 다음과 같은 결과를 제공합니다.

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Geo	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

이제 students_data_backup이라는 이름으로 위 테이블의 복사본을 생성해 보겠습니다.

CREATE TABLE ... AS SELECT 문을 사용하여 테이블 복제

테이블 복사본을 만드는 가장 기본적인 방법 중 하나는 CREATE TABLE ... AS SELECT 문을 사용하는 것입니다. 다음 코드로 이 작업을 수행할 수 있습니다.

-- Basic copy table creation
create table students_data_backup as select * from student_details;

앞서 언급한 코드는 소스 테이블 역할을 하는 student_details 테이블에서 students_data_backup이라는 복사 테이블을 생성합니다. 다음 쿼리를 사용하여 이 새 테이블 students_data_backup을 시각화할 수 있습니다.

select * from students_data_backup;

앞서 언급한 코드의 출력 결과는 다음과 같은 임시 테이블이 됩니다.

stu_id	stu_firstName	stu_lastName
1	        Preet	      Sanghavi
2	        Rich	      John
3	        Veron	      Brow
4	        Geo	          Jos
5	        Hash	      Shah
6			Sachin		  Parker
7			David	      Miller

WHERE 절을 사용하여 부분 데이터가 있는 복제 테이블

때로는 특정 부분만 복제해야 하는 경우가 있습니다. WHERE 절과 CREATE TABLE ... AS SELECT 문을 사용하여 이 작업을 수행할 수 있습니다.

student_details 테이블을 부분적으로 복제해 보겠습니다. 처음 5개의 stu_id 데이터만 있는 테이블을 복제하도록 선택합니다.

다음 코드로 이 작업을 수행할 수 있습니다.

-- Cloning the student_details table with where clause
create table students_data_backup as select * from student_details WHERE stu_id <= 5;

주어진 코드 샘플은 다음과 같은 출력을 생성합니다:

stu_id	stu_firstName	stu_lastName
1	        Preet	      Sanghavi
2	        Rich	      John
3	        Veron	      Brow
4	        Geo	          Jos
5	        Hash	      Shah

보시다시피 student_details 테이블의 복사본이 생성되었지만 처음 5개의 stu_id만 있습니다.

이 기술을 사용하여 요구 사항에 따라 특정 테이블에서 부분 데이터를 복제할 수 있습니다. 위의 두 가지 방법을 사용하여 원본 테이블의 복사본을 쉽게 만들 수 있습니다.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

관련 문장 - MySQL Table