production/database

Python에서 MariaDB 연결하여 SQL 실행하기

NDo 2026. 8. 20. 17:33

Python MariaDB 응용 프로그래밍 준비

Python에서 MariaDB 데이터베이스를 연결하여 SQL SELECT 명령어로 자료 검색을 하기위해 설치하거나 준비해야 할 내용은 다음과 같다.

MariaDB 설치

MariaDB 를 설치한다(Python이 설치될 PC에 localhost에 설치 가정).

MariaDB 설치 방문>

 

MariaDB 데이터베이스와 사용자 생성

MariaDB에 test에 사용할 사용자와 데이터베이스를 만든다(사용자 auser, 데이터베이스 adb).

MariaDB 따라하기 읽기>

 

PyMySQL 설치

Python에서 MariaDB 연결하기 위한 모듈인 PyMySQL 설치한다.

PyMySQL 사이트 방문>

IDLE에서 Python과 MariaDB 연결을 시험한다.

Python IDLE을 실행한다.

아래 Test code 실행한다. Code 실행하기 전에 db=pymysql.connect() 변수에 user와 passwd를 현재 사용하는 MariaDB 계정과 일치 시킨다. 주의 할 점은 검색 select 명령어가 아닌 데이터베이스를 변경하는 명령어 insert 등은 #commit 명령을 해 주어야 한다( db.commit() 참조).

# Python Mysql 예제
# by Namchul Do namchuldo@gmail.com
# 1/24/2021 - 1/24/2021

import pymysql
# 데이터베이스 연결
db=pymysql.connect(host='localhost',port=3306, user='auser', passwd='111', db='adb', charset='utf8', autocommit=True)
cursor = db.cursor()

#--- 만일 시험용 테이블이 있으면 지우기
sql = "drop table test"
cursor.execute(sql)
db.commit() #위 db 에서 autocommit=True 옵션을 선택했으므로 실제 필요 없음

#--- 시험용 table 만들기
sql = "create table test(no int, name varchar(8))"
cursor.execute(sql)
db.commit()

#--- 시험자료 입력
sql = "insert into test values(1, 'A'),(2,'B')"
cursor.execute(sql)
db.commit()

#--- 모든 자료 출력(1) Tuple 형태로 출력
sql = "select * from test"
cursor.execute(sql)
for i in cursor:
    print(i)

#--- 모든 자료 출력(2) Dictionary 형태로 출력
sql = "select * from test"
dcursor = db.cursor(pymysql.cursors.DictCursor)
dcursor.execute(sql)
for i in dcursor:
    print(i)

#--- 모든 자료 출력(3)
num= cursor.execute(sql)
result = cursor.fetchall()
print(result)
print(result[0])
print(result[1])

#--- 모든 자료출력(4)
for v in result:
    print("oid: {}", format(v[0]))

#--- 검색 결과 레코드 수
print(num)

#--- 검색조건 where 절
sql = "select * from test where no=%s"
cursor.execute(sql, '2')
result = cursor.fetchall()
print(result)

db.close()
 

2022 - 2021 NDoStudio

8/25/2022 처음 1/27/2021

반응형