Python. MySQL 기본 사용법
1. PyMySQL 설치
Python에서 MySQL을 사용하기 위해서는 먼저 PyMySQL 설치가 필요합니다.
pip install PyMySQL
2. 테이블 생성 / 삭제
예제와 함께 해봅시다요~
(1) 테이블 생성
import pymysql.cursors
def create_table():
conn = pymysql.connect(host=HOST,
user=USER,
password=PW,
db=DB,
charset='utf8mb4')
sql = '''
CREATE TABLE USERS
(
USER_ID VARCHAR(50) NOT NULL PRIMARY KEY,
USER_NM VARCHAR(200) NOT NULL COMMENT '사용자명',
TEL_NO VARCHAR(50) COMMENT '전화번호',
EMAIL VARCHAR(100) COMMENT '이메일',
COMPNY_NM VARCHAR(200) COMMENT '회사명',
DEPT_NM VARCHAR(200) COMMENT '부서명',
JDEG_NM VARCHAR(200) COMMENT '직급명',
WORKING_SITE_NM VARCHAR(200) COMMENT '근무지역명',
REG_TM TIMESTAMP COMMENT '등록일시',
CHG_TM TIMESTAMP COMMENT '변경일시'
)ENGINE=InnoDB DEFAULT CHARSET=utf8
'''
try:
with conn.cursor() as cursor:
cursor.execute(sql)
conn.commit()
finally:
conn.close()
(2) 테이블 삭제
def drop_table():
conn = pymysql.connect(host=HOST,
user=USER,
password=PW,
db=DB,
charset='utf8mb4')
try:
with conn.cursor() as cursor:
sql = 'DROP TABLE USERS'
cursor.execute(sql)
conn.commit()
# print(cursor.rowcount) # 1 (affected rows)
finally:
conn.close()
3. 데이터 CRUD
(1) INSERT
try :
#DB Connection Setting
conn = pymysql.connect(host=HOSTNAME
, user=USER_NAME
, port = PORT
, password=PASSWORD
, db=DATABASE
, charset='utf8', )
curs = conn.cursor(pymysql.cursors.DictCursor)
sql = f"INSERT INTO survey_resp_todo (survey_no, email ,todo, todo_type) \
VALUES('{SURVEY_NO}',%s,%s,%s);"
for i , row in s_todo_pre.iterrows() :
curs.execute(sql, (row['메일주소'], row['TODO'], row['TODO구분'] ))
conn.commit()
finally :
conn.close()
+ DataFrame 전체 Table을 Insert 시키고 싶을 경우
#dataframe를 tuple로 만들어 줍니다.
vals = tuple([tuple(x) for x in df.values])
try :
#DB Connection Setting
conn = pymysql.connect(host=HOSTNAME
, user=USER_NAME
, port = PORT
, password=PASSWORD
, db=DATABASE
, charset='utf8', )
curs = conn.cursor(pymysql.cursors.DictCursor)
sql = f"INSERT INTO survey_resp_todo (survey_no, email ,todo, todo_type) \
VALUES('{SURVEY_NO}',%s,%s,%s);"
curs.excutemany(sql, vals)
conn.commit()
print(curs.rowcount, "records were inserted.")
finally :
conn.close()
(2) Select
conn, curs = get_conn()
sql = "select * from happydata.employee_temp"
curs.execute(sql)
# 데이타 Fetch
rows = curs.fetchall()
print(rows)
이렇게 하면, dictionary 형태로 값이 나오게 되어, 보기 어렵다.
Select 결과를 DataFrame으로 받기 위해서는 결과 값을 Data Frame에만 넣어주면,
테이블 형태의 결과값으로 자동 변환 됩니다.
rows_df = pd.DataFrame(rows)
'AI 이론과 개발의 혼재 > Python' 카테고리의 다른 글
데이터 분석시 알아두면 좋은 기본 꿀 Tips (데이터 전처리) (0) | 2020.06.11 |
---|---|
Python 에러잡기 : [SSL: CERTIFICATE_VERIFY_FAILED] (3) | 2020.06.02 |
Python - DB2 연동 (라이브러리 설치, CRUD 테스트) (0) | 2020.04.23 |
Anaconda, TensorFlow 설치 (0) | 2020.01.29 |
Django. 기존DB 재사용! Django로 Migration하기 (1) | 2018.08.08 |
댓글