집돌이 공대남 IT

[Python]Python으로 MySQL 서버에 접속해 데이터 다루기 본문

IT/파이썬

[Python]Python으로 MySQL 서버에 접속해 데이터 다루기

집공이 2023. 3. 5. 20:25

안녕하십니까 집공이입니다.

 

오늘은 파이썬에서 SQL을 사용해보는 시간을 가지겠습니다.

 

SQL에 대해서 잘 모르시겠다면 기초 문법부터 읽고 오시는걸 추천드립니다.

 

 

[SQL]SQL 기본 문법 실습: INSERT, DELETE, UPDATE, MERGE

안녕하십니까 집공이 입니다. 오늘은 데이터베이스의 언어인 SQL에 대해서 기초를 다져보는 시간을 가지겠습니다. SQL(Structured Query Language)은 관계형 데이터베이스에서 데이터를 조작하기 위한

gongdeanam-it.tistory.com

 

자세하게 적어놓았으니 문법을 익히고 오시면 훨씬 도움이 될 것입니다.

 

파이썬에서 SQL을 사용하기 위해서는 먼저 SQL 서버와 연결할 수 있는 라이브러리를 설치해야 합니다.

 

대표적인 라이브러리로는 PyMySQL, psycopg2, sqlite3 등이 있습니다.

 

이 중 PyMySQL을 예시로 설명해보겠습니다.

 

먼저 PyMySQL을 설치하기 위해서는 pip 명령어를 사용합니다.

 터미널(CMD)에서 아래의 명령어를 치시면 됩니다.

pip install PyMySQL​

설치가 완료되면, 다음과 같이 코드를 작성하여 SQL 서버에 연결할 수 있습니다.

import pymysql

# MySQL 서버 연결
conn = pymysql.connect(
    host='localhost',
    user='사용자 이름',
    password='비밀번호',
    db='데이터베이스 이름',
    charset='utf8'
)

host에는 연결할 데이터베이스 서버의 주소를, user에는 데이터베이스 사용자 이름을, password에는 데이터베이스 비밀번호를, db에는 연결할 데이터베이스 이름을 입력합니다.

  • host: MySQL 서버 호스트 이름
  • user: MySQL 서버 사용자 이름
  • password: MySQL 서버 사용자 비밀번호
  • db: 작업할 데이터베이스 이름
  • charset: 문자 인코딩 설정
  • cursorclass: 반환된 결과를 딕셔너리 형태로 사용하기 위한 설정

밑에 예시를 적어놓았습니다.

import pymysql

# MySQL 서버에 연결
connection = pymysql.connect(
    host='localhost',
    user='username',
    password='password',
    db='database_name',
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

 

이후에는 cursor 메서드를 사용하여 SQL 문을 실행할 수 있습니다.

 

예를 들어, SELECT 문을 실행하고 결과를 출력하는 코드는 다음과 같습니다.

# 커서 생성
curs = conn.cursor()

# SQL 실행
sql = "SELECT * FROM 테이블 이름"
curs.execute(sql)

# 데이터 가져오기
rows = curs.fetchall()
for row in rows:
    print(row)

# 연결 종료
conn.close()
 

curs.execute(sql)에서 sql에 실행할 SQL 문을 입력하고, curs.fetchall()로 데이터를 가져올 수 있습니다. 가져온 데이터는 for 루프를 사용하여 하나씩 출력할 수 있습니다.

 

INSERT, DELETE, UPDATE, MERGE 등 다른 SQL 문을 실행할 때도 위 코드와 비슷한 방식으로 실행하면 됩니다. 단, INSERT 문을 실행할 때는 curs.execute() 대신 conn.commit() 메서드를 호출해야 데이터가 정상적으로 추가됩니다.

 

위의 방법도 있고 다른 방법도 있습니다.

try:
    with connection.cursor() as cursor:
        # 쿼리문 작성
        sql = "SELECT * FROM `table_name`"

        # 쿼리문 실행
        cursor.execute(sql)

        # 결과 가져오기
        result = cursor.fetchall()

        print(result)

finally:
    # 연결 종료
    connection.close()

위의 코드에서,

  • with connection.cursor() as cursor:: with 문을 사용하여 cursor 객체를 만들고 SQL 문을 실행합니다.
  • sql = "SELECT * FROM table_name": 쿼리문을 작성합니다.
  • cursor.execute(sql): execute() 함수를 사용하여 쿼리문을 실행합니다.
  • cursor.fetchall(): 결과를 가져옵니다.

이렇게 pymysql 모듈을 사용하여 Python에서 MySQL과 같은 데이터베이스와 상호작용할 수 있습니다.

 

오늘은 Python에서 SQL을 사용해보았습니다. 지금까지 기초문법을 배우고 데이터베이스까지 연결해보았습니다.

 

다음은 ORM(Object-Relational Mapping)을 학습해보겠습니다.

 

오늘 내용 충분히 숙지하시고 다음 포스팅으로 넘어가시길 추천드립니다.

 

감사합니다.