본문 바로가기
mySql

[mysql] python

by ram_ 2022. 12. 8.

jupyter notebook / vscode 모두 사용 가능

01. 접속하는 법

02.접속한 DB에 대해서 쿼리문을 날려주는 법


 

01.  Create Connection

import mysql.connector

 

mydb = mysql.connector.connect(
    host = ,
    user = ,
    port = ,
    password = ,
)

 

local 으로 생성할때는 localhost, user은 root / AWS RDS로 접근할때는 엔드포인트와 포트num을 추가해주면 된다.

 

 

 


02.  Execute SQL

import mysql.connector 


remote = mysql.connector.connect(
    host = "엔드포인트", 
    port = 포트,
    user = "admin", 
    password = "", 
    database = "zerobase"
)

cur = remote.cursor()
cur.execute("CREATE TABLE sql_file (id int, filename varchar(16))")

remote.close()

코드 실행 후 하단 terminal로 zerobase의 table을 확인해보면 sql_file이 생성되어 있고 id, filename이 들어가 있는 것을 확인할 수 있다.

cur = remote.cursor()
cur.execute("DROP TABLE sql_file")

생성한 테이블을 삭제하고 싶다면, 위의 remote 코드를 같게 써준뒤 커서cur의 코드만 DROP 코드로 수정해주면 된다.

 

예제)

remote = mysql.connector.connect(
    host = "", 
    port = ,
    user = "", 
    password = "", 
    database = ""
)

cur = remote.cursor()
sql = open("test04.sql").read()
for result_iterator in cur.execute(sql, multi=True):
    if result_iterator.with_rows:
        print(result_iterator.fetchall())
    else:
        print(result_iterator.statement)


remote.commit()
remote.close()

test04.sql 파일에 value를 insert 하는 쿼리문 4개를 적어두었고, 이를 적용시켰다.

for 반복문은 해당 코드가 정확하게 돌아가는지 확인하고자 적어주었다. 그냥 cur.execute(sql, multi=True)만 적어주어도 된다.

for문때문에 .commit()을 추가하였다.

'mySql' 카테고리의 다른 글

[mysql] Primary Key  (0) 2022.12.09
[mysql] python_ fetch all() / buffered / dataframe  (0) 2022.12.09
[mysql] backup / restore  (0) 2022.12.07
AWS RDS  (0) 2022.12.07
[mysql] Union / Join / Concat / Alias / Distinct / Limit  (0) 2022.12.05