본문 바로가기

Data/Data Analysis

[MariaDB] SQL 명령어 실행 시 주의할점

반응형


이번에 python 과 데이터베이스 플랫폼중 하나인 MariaDB랑 연결해야하는 일이 있었는데


마주했던 문제를 정리한다..(어차피 한개인데)


SQL 명령어를 실행할 때 사용되는 코딩은 다음과 같다


1. DB와의 연결

1
2
3
4
5
6
conn = pymysql.connect(host='localhost',
            user='root',
            password='root',
            db='cve',
            charset='utf8'
            )


2. 실행할 명령어 작성


1
test_sql_command = "INSERT INTO test VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"


여기서 마주했던 문제가 있었는데

실행하려는 SQL명령어에서 %s 는 인자의 형식을 지정해주는게 아니다


즉, int형식이라서 %d, float형식이라서 %f같은걸 쓰면안된다.

만약 사용할 시 다음과 같은 에러가 발생한다

TypeError: %d format: a number is required, not str

TypeError: a float is required


중요한것은 모든 SQL명령어는 %s 를 사용해서 데이터를 지정해준다.


3. 실행할 명령어의 데이터 대입


1
2
curs.execute(test_sql_command, (data1, data1, data1, data1, data1, data1, ...))
curs.commit()



이렇게 test_sql_command SQL명령어를 실행을 해준다

반응형