파이썬(Python)을 활용하면 MySQL에서 기존 테이블의 복사본을 손쉽게 만들 수 있습니다. 이때 복사되는 것은 단순히 데이터만이 아니라 컬럼(열), 컬럼 정의(데이터 타입 등), 그리고 테이블에 저장된 모든 행(row)까지 포함됩니다.
기본 문법
CREATE TABLE table_name SELECT * FROM existing_table
table_name은 새로 생성할 테이블의 이름이며, existing_table은 복사 대상이 되는 원본 테이블의 이름입니다.
파이썬에서 MySQL로 테이블을 복사하는 절차
MySQL 커넥터(mysql.connector)를 임포트합니다.
connect() 메서드를 사용해 데이터베이스와 연결을 설정합니다.
cursor() 메서드로 커서 객체를 생성합니다.
적절한 MySQL 문법으로 쿼리를 작성합니다.
execute() 메서드를 사용해 SQL 쿼리를 실행합니다.
작업이 끝나면 연결을 종료합니다.
예제 데이터 준비
다음과 같은 "Students" 테이블이 있다고 가정해 보겠습니다.
+----------+---------+-----------+------------+ | Name | Class | City | Marks | +----------+---------+-----------+------------+ | Karan | 4 | Amritsar | 95 | | Sahil | 6 | Amritsar | 93 | | Kriti | 3 | Batala | 88 | | Khushi | 9 | Delhi | 90 | | Kirat | 5 | Delhi | 85 | +----------+---------+-----------+------------+
예제 코드
위 테이블의 복사본을 만들어 보겠습니다. 복사된 테이블의 이름은 "CopyStudents"로 지정합니다.
import mysql.connector
db=mysql.connector.connect(host="your host", user="your username", password="your
password",database="database_name")
cursor=db.cursor()
#Students 테이블을 CopyStudents로 복사
query="CREATE TABLE CopyStudents SELECT * FROM Students"
cursor.execute(query)
#새로 생성된 테이블의 행 조회
query1="SELECT * FROM CopyStudents"
cursor.execute(query1)
#복사된 테이블의 내용 출력
for row in cursor:
print(row)
db.close()실행 결과
('Karan', 4 ,'Amritsar' , 95)
('Sahil' , 6 , 'Amritsar' ,93)
('Kriti' , 3 , 'Batala' ,88)
('Khushi' , 9 , 'Delhi' , 90)
('Kirat' , 5 , 'Delhi' ,85)실행 결과를 확인하면 원본 "Students" 테이블의 모든 행, 컬럼, 그리고 컬럼 정의가 그대로 "CopyStudents" 테이블에 복사된 것을 알 수 있습니다.
추가 팁
테이블 구조만 복사하고 데이터는 제외하고 싶다면 CREATE TABLE new_table SELECT * FROM existing_table WHERE 1=0처럼 조건을 추가하면 됩니다. 또한 LIKE 절을 사용하면 인덱스와 컬럼 속성까지 포함한 구조만 복제할 수 있으니 상황에 맞게 활용해 보세요.