MySQL에서 테이블 복사

Preet Sanghavi 2023년1월30일 MySQL MySQL Table
  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만 있습니다.

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

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
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