Python MySQL연동하기
mysql client
- 파이썬에서 MySQL 서버와 통신할 수 있는 파이썬용 데이터 베이스 커넥터를 다양하게 지원한다. PyMySQL, mysqlclient를 가장 많이 사용한다.
- 사용법은 비슷하나 속도가 빠른 mysqlclient를 권장한다고 한다.
위 구문을 실행하면 mysql을 사용하기 위한 준비를 한 것이다.
MySQL 접속하기
- MySQLdb.connect(host = 'IP주소', user = '사용자', password = '비밀번호', db = 'DB명')
위 이미지처럼 사용하면 되는데, 본인 컴퓨터의 서버를 사용할 때는 host, user, password, db를 써주지 않아도 상관없다.
cursor 생성하기
- 하나의 DataBase Connection에 대해 독립적으로 SQL문을 실행할 수 있는 작업환경을 제공하는 객체이다.
- 하나의 Connection에서 동시에 한 개의 cursor만 생성할 수 있으며, cursor를 통해 SQL문을 실행하면 실행결과를 튜플 단위로 변환한다.
cursor를 사용하는 방법이다. execute와 함께 사용하면 () 안에는 sql에서 실행할 문장(쿼리문)을 적으면 된다. sql에 업데이트를 한다는 느낌으로 생각하면 좋다. execute를 사용하여 쿼리문을 업데이트하는 느낌(?)
SQL문 결과 가져오기
- fetchone() : 한 번에 하나의 tuple을 가져온다. 다시 fetchone() 메서드를 호출하면 다음 데이터를 가져온다.
- fetchall() : 한 번에 모든 tuple을 가져온다. 검색 결과가 매우 많다면 메모리 오버헤드가 발생할 수 있다.
fetchone()을 실행하면 해당하는 첫 번째 데이터를 가져온다. 두 번째, 세 번째 실행에는 차례로 다음 데이터를 가져온다.
fetchall()을 실행하면 해당하는 모든 데이터를 가져온다. 두 번째 실행에는 아무것도 가져오지 않는다.
fetchone() 예를 하나 작성해보겠다.
fetchone()을 사용하여 모든 데이터를 출력한 것이다. 반복문을 사용해서 fetchone()을 계속 실행하면서 처음부터 마지막 데이터까지 출력할 수 있다.
dict 형태로 결과 반환하기
- cursor(MySQLdb.cursor.DictCursor)
Cursor와 Connection 닫아주기
- cur.close()
- db.close()
사용 후 닫아주는 것이 좋다. 닫아주지 않으면 에러가 발생할 수 있다.
데이터 삽입하기
- cursor와 mysql 연결
- 데이터 삽입 및 적용
name 마앙고가 추가된 걸 알 수 있다.
예제
확인하기 간편하게 모든 데이터를 123으로 줬다.
데이터 수정하기
update를 사용하여 수정한다.
데이터 삭제하기
delete를 사용하여 데이터를 제거한다.
예제