기록과 정리의 공간

[MySQL] (20200808) TIL 본문

DATABASE/MySQL

[MySQL] (20200808) TIL

딸기맛도나쓰 2020. 8. 8. 21:49

TIL - 인프런 강의를 듣고 공부한 내용을 정리(강의 링크)

  • 공부한 내용
    1. pymysql 실습 - INSERT / UPDATE / DELETE
    2. pymysql 실습 - SELECT

1. pymysql 실습 - INSERT / UPDATE / DELETE

  • (링크)의 1번과 동일한 패턴으로 작성하면 된다.

  • 예시코드(참고) - 데이터 여러개 한번에 넣기(INSERT)

import pymysql

# localhost = 자기 pc를 가리킴 (or 127.0.0.1)
# mysql의 default 포트번호 3306
db = pymysql.connect(host='localhost', port=3306, user='root', passwd='설정한패스워드', db='ecommerce', charset='utf8')

cursor = db.cursor() # 명령을 내리기 위한 ... 커서

for i in range(1, 11):
    product_code = 215673152 + i
    sql = """INSERT INTO product VALUES(
        '""" + str(product_code) + """', '스위트바니 여름신상5900원~롱원피스티셔츠/긴팔/반팔', 23000, 6900, 70, 'F'); """
    cursor.execute(sql)

db.commit() # 커밋 (그 전의 코드가 아무 문제가 없을 때 커밋..!!! 뒤로 돌아갈수 없다..)
db.close() # db접속을 끊을 때. 이후의 명령들은 실행이 안된다.

2. pymysql 실습 - SELECT

  • (링크)의 1번에서 execute하는 부분까지는 동일하다.

  • commit()은 필요 x

  • mysql서버로부터 데이터 가져오기 : fetch메서드 사용

    • fetchall() : Fetch all the rows (전체 데이터 가져오기) - 튜플로 넘어옴
    • fetchmany(size=None): Fetch several rows (맨 뒤에서부터 지정된 개수만큼만 데이터 가져오기)
    • fetchone() : Fetch the next row (검색된 최초 데이터만 가져오기)
  • 예시 코드

import pymysql

db = pymysql.connect(host='localhost', port=3306, user='root', passwd='설정한패스워드', db='ecommerce', charset='utf8')

cursor = db.cursor()

sql = """
    SELECT * FROM product;
    """

cursor.execute(sql) 

# ---- 여기까지는 동일 ----

result = cursor.fetchall() # 전체 데이터 가져오기

for i in result:
    print(i) # 가져온 데이터 출력하기

db.close()

'DATABASE > MySQL' 카테고리의 다른 글

[MySQL] (20200827) TIL  (0) 2020.08.27
[MySQL] (20200820) TIL  (0) 2020.08.20
[MySQL] (20200807) TIL - 2  (0) 2020.08.07
[MySQL] (20200807) TIL - 1  (0) 2020.08.07
[MySQL] Workbench - Error Code : 1175 해결하기  (0) 2020.08.04
Comments