Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 파이썬
- 파이써닉코드
- yaml
- Postman
- todo project
- PYTHON
- 조건연산
- 프로그래머스
- 토이프로젝트
- Django
- 클래스
- 집계함수
- cerbot
- sqlalchemy
- mock server
- EC2
- 컴프리헨션
- Comprehension
- 행렬곱
- 프리온보딩
- 함수
- 람다함수
- numpy
- Jar배포
- 코딩테스트
- API
- self
- RDS
- 백엔드 인턴십
- spring boot
Archives
- Today
- Total
build my life
[Python] DB 연결 및 테이블 정보 불러오기 (pymysql 사용) 본문
728x90
오늘은 python으로 DB를 연결하고 그 안에 있는 테이블 정보를 불러오는 것에 대해서 배웠다.
이 모든 과정은 구글 colab으로 진행했다.
1. 패키지 다운로드
!pip install pymysql
2. 구글 드라이브 연결
from google.colab import drive
drive.mount('/content/drive')
3. DB 연결 정보 불러오기(HOST(DB주소), USER(접속아이디), PASSWD(접속패스워드))
import yaml
DB_INFO = "파일주소"
with open(DB_INFO, "r") as f:
db_info = yaml.load(f, Loader = yaml.Loader)
=> DB 연결 정보를 yaml로 받았기 때문에 yaml 패키지 이용해서 불러옴!
=> 각자 정보가 담겨있는 파일을 불러온다고 생각하면 된다.
+) db_info {"HOST" : "DB주소", "USER" : "접속아이디", "PASSWD" : "접속패스워드"}
4. 각 DB 연결 정보 값을 변수에 넘겨준다.
HOST = db_info["HOST"]
USER = db_info["USER"]
PASSWD = db_info["PASSWD"]
PORT = 3306 #일반적으로 사용하는 포트번호
5. connect 함수를 이용해서 DB 연결 객체를 받아오자.
# connect함수 이용하여 연결 객체 받아오기
import pymysql
conn = pymysql.connect(
user = USER,
passwd = PASSWD,
host = HOST,
port = PORT,
db = '연결하고 싶은 DB명'
)
6. SQL 구문을 실행하기 위해 Cursor 객체를 생성해보자.
cur = conn.cursor() #튜플 형식으로 쿼리 실행 결과를 받아오는 객체
cur = conn.cursor(pymysql.cursors.DictCursor) #dict 형식으로 쿼리 실행 결과를 받아오는 객체
=> Cursor 객체를 이용해서 sql을 DB서버에 전달할 수 있다!
1) DB 서버에 SQL 전달 - execute()
sql = "select * from db_name"
cur.execute(sql)
2) 쿼리 실행 결과를 가져오는 메소드 - fetchall()
- 튜플 자료형으로 가져온다.
- 한번 꺼내온 후 실행결과가 사라지기 때문에 두번 실행 시 결과 반환이 안된다는 걸 알아두자.
cur.fetchall() # 실행결과 전체를 불러온다.
cur.fetchone() # 실행결과를 한 행씩 불러온다. 모든 행을 다 가져올 때 까지 실행가능하다.
❗ 주의할 점
- 사용한 cursor객체(cur)와 연결 객체(conn)는 꼭 닫아주고 끝내줘야한다!
cur.close()
conn.close()
728x90
'Python' 카테고리의 다른 글
[Python] DB 연결 / 테이블 생성 / 데이터 추가 (SQLAlchemy 사용) (4) | 2022.08.24 |
---|---|
[Python] DB 연결 / 테이블 생성 / 데이터 추가 (pymysql 사용) (0) | 2022.08.23 |
[Python] 예외처리(Exception handling) (1) | 2022.08.22 |
[Python] 상속 (0) | 2022.08.09 |
[Python] 클래스 (0) | 2022.08.09 |