TIL/Python

Insert Dummy Data into MySQL w/ Python

아람2 2025. 2. 11. 11:41
반응형

MySQL 에 Dummy Data 삽입 w/ Python 

더미 데이터가 필요한 일이 생겨서 코드를 만들어봤다 

userTest 라는 Table 을 만들고 id, name, email Column 으로 구성했다 

CREATE TABLE userTest (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100),
  email VARCHAR(100)
);

Cursor 커서 

MySQL 에서 SQL 쿼리를 실행하고 그 결과를 가져오는 역할

커서를 사용하여 SELECT, INSERT, UPDATE, DELETE 같은 SQL 문을 실행할 수 있다 

 

import mysql.connector
import random
import string 

# MySQL 연결 정보 
config = {
    "host": "localhost",
    "port": 3306,
    "user": "[UserName]",
    "password": "[Password]",
    "database": "[DataBase]"
}

# MySQL 연결 
conn = mysql.connector.connect(**config)
# SQL 쿼리를 실행할 커서 생성 
cursor = conn.cursor() 

# 랜덤 문자열 생성하는 함수 
def random_string(length=8): 
    return ''.join(random.choices(string.ascii_letters, k=length))

# 더미 데이터를 삽입하는 함수 
def insert_dummy_data(n=100000):
    for _ in range(n):
        name = random_string()
        email = f"{name.lower()}@a.com"
        # SQL 쿼리 실행 
        cursor.execute("INSERT INTO userTest (name, email) VALUES (%s, %s)", (name, email))

    # 모든 INSERT 작업을 한꺼번에 Commit 하여 반영
    conn.commit()

if __name__ == "__main__":

    # 10만 개 데이터 삽입 
    insert_dummy_data()

    # 연결 종료 
    cursor.close()
    conn.close()

 

MySQL 모든 데이터 삭제하기

import mysql.connector

# MySQL 연결 정보
config = {
    "host": "localhost",
    "port": 3306,
    "user": "[UserName]",
    "password": "[Password]",
    "database": "[DataBase]"
}

# MySQL 연결
conn = mysql.connector.connect(**config)
cursor = conn.cursor()

# 데이터를 삭제하는 함수
def delete_all_data():
    cursor.execute("DELETE FROM userTest")  
    # 또는 "TRUNCATE TABLE userTest"
    conn.commit()  # 변경 사항 반영

# 메인 실행 부분
if __name__ == "__main__":
	# 데이터 삭제 함수 호출
	delete_all_data()  

    # 연결 종료
    cursor.close()
    conn.close()
반응형