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