DBMS

MySQL -> Python 연동

imysydesu 2026. 6. 9. 16:35

 

 

 

1 . mysqlclient

 

 

 

  • 파이썬에서 MySQL 데이터베이스와 상호작용하기 위해 사용하는 공식 라이브러리
  • PyMySQL, mysqlclient를 가장 많이 사용
  • 사용법은 비슷하나 mysqlclient가 속도상으로 유리하기 때문에 권장

 

 

 

 

 

1 - 1 . MySQL 접속

 

=> MySQLdb.connect(host='IP주소', user='사용자명', password='비밀번호', db='데이터베이스명') 

 

 

 

1 - 2 . cursor 생성

 

 

  • 하나의 데이터베이스 connection에 대해 독립적으로 SQL문을 실행할 수 있는 작업 환경을 제공하는 객체
  • 하나의 connection에 동시에 한 개의 cursor만 생성할 수 있으며 cursor을 통해 SQL문을 실행하면 튜플 단위로 결과 반환

 

- cur.execute() : 행의 갯수 반환

 

 

1 - 3 . SQL문의 결과 반환

 

 

  • fetchall() : 한 번에 모든 튜플을 가져옴, 검색 결과가 매우 많다면 메모리 오버헤드가 발생할 수 있음, 재 실행시  내용이 안 뜸 
  • fetchone() : 한 번에 하나의 튜플을 가져옴, 다시 fetchone() 메서드를 호출하면 다음 데이터를 가져옴

 

 

 

  • execute() : 실행 메서드
  • execute(SQL문, 값)

- 두 코드 실행 결과 => 동일

 

 

  • while문 사용하기

 

 

 

 

1 - 4 . 딕셔너리 형태로 결과 반환 받기

 

 

 

=>cursor(MtSQLdb.cursors.DictCursor)

 

- 전부 다 출력

 

 

  • while문 사용
  • cur.execute(sql)을 다시 실행해줘야 데이터가 다시 생김 -> fetchall() 사용으로 커서가 다음으로 넘어감 -> cur.execute(sql)을 다시 실행하지 않은 상태로 fetchall()를 재실행하면 내용이 나오지 않음

 

 

 

 

1 - 5 . Cursor, Connection 닫기

 

  • 사용 후 연결을 끊어줘야함

 

 

 

 

 

 


 

 

 

 

 

 

2 . 데이터 삽입하기

 

 

 

  • 파이썬에서 MySQL에 접속하고 SQL을 실행하기 위한 기본 과정

 

 

 

 

  • 데이터 한 개 삽입하기

-> 인자 수가 동일해야 함

 

 

  • 데이터 여러 개 삽입하기 -> 리스트로 진행

 

- 사용 후 연결 끊어주기

 

 

 

 

 

 

 


 

 

 

 

 

 

3 . 예제 실습

 

 

 

 

3 - 1 . 회원가입 프로그램 만들기

 

 

 

 

 

3 - 2 . 로그인 프로그램 만들기

 

 

 

 

 

3 - 3 . 회원정보 수정하기

 

 

 

 

 

3 - 4 . 회원 탈퇴하기

 

 

 

 

 

 


 

 

 

 

  • 따로 찾아본 내용

 

import MySQLdb : MySQLdb 라이브러리를 메모리에 불러오는 것

MySQLdb.connect(. . .) : connect() 함수를 사용해 MySQLdb를 서버에 접속하는 것 

cur = db.cursor() : SQL 실행도구 생성

cur.execute() : SQL 실행, 조회된 내용의 행 개수 출력

insert(), delete() 등을 수행해도 원본이 바뀌지 않으므로 커밋해줘야 함

update는 항상 컬럼 =값 형식

insert는 (컬럼) values (값) 형식

cur.execute()에서 값 자리에는 튜플 형식만 들어갈 수 있어 값이 1개일 때는 괄호 안에 반점을 같이 써줘야 함 ex) (userid, )

'DBMS' 카테고리의 다른 글

MySQL을 활용한 단어장 만들기  (0) 2026.06.09
7_ 뷰(View)  (0) 2026.06.09
5 . 사용자 계정  (0) 2026.06.08
6 . MySQL 함수  (0) 2026.06.08
4 . 서브쿼리  (1) 2026.06.08