"Pymysql"의 두 판 사이의 차이

Pywiki
둘러보기로 가기 검색하러 가기
104번째 줄: 104번째 줄:
 
=== pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '장소'") ===
 
=== pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '장소'") ===
 
사용하는 구문이 맞지 않을 때 발생하는 에러. execute 안의 SQL_query가 틀렸을 때 나오는 에러이다.
 
사용하는 구문이 맞지 않을 때 발생하는 에러. execute 안의 SQL_query가 틀렸을 때 나오는 에러이다.
 +
[[분류:DB 라이브러리]]

2021년 4월 20일 (화) 14:09 판

1 개요

데이터를 메모장이나 엑셀 등으로 저장하는 것도 괜찮지만... 속도의 효율 등을 따져보면 그닥 이득은 아닐 것이다. 때문에 거대한 데이터를 다루기 위해선 DB가 필수적.

mysql 뿐 아니라 mariaDB에서도 사용 가능하다.

pip install pymysql

2 기본사용법

의도 설명 코드
DB파일만들기 저장파일을 만든다.

만약 이미 있으면 연결.

한글텍스트를 사용하기 위해 utf8 설정도 준다.

DB객체=pymysql.connect(host='localhost', port=번호, db='DB이름', user='root', passwd='비밀번호', charset='utf8')
커서객체 생성 커서객체를 만들면 SQL 질의를 자유롭게 쓸 수 있다.

(아래의 데이터조작 참조)

커서객체=DB객체.cursor()
연결종료 종료한다. 커서객체를 다음과 같은 형식으로 불러오면 굳이 종료가 필요치 않다.
with self.DB.cursor() as curs:
DB객체.close()
명령 DB질의를 한다. 커서객체.execute("질의문")
DB에 반영 내용을 DB에 반영한다. DB객체.commit()

2.1 테이블 조작

의도 설명 코드
테이블 생성 커서객체.execute('create table if not exists 테이블명(열1, 열2)')
테이블 삭제 커서객체.execute('drop table if exists 테이블명')

2.2 데이터 조작

의도 설명 코드
테이블에 데이터 삽입 커서객체.execute("insert into 테이블명 values('내용1', '내용2')")
DB에 반영 내용을 DB에 반영한다. DB객체.commit()
데이터 불러오기(하나) 테이블에 접근한 후 불러온다.

커서가 이동하며 한줄씩 읽는다.

커서객체.execute('select * from 테이블명')

객체=커서객체.fetchone()

데이터 전체 불러오기 전체를 읽어와 리스트로 반환. 커서객체.execute('select * from 테이블명')

객체=커서객체.fetchall()

3 에러

3.1 pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([WinError 10061] No connection could be made because the target machine actively refused it)")

굉장히 많은 이유로 발생하는 에러이다.

의도 설명 방법
뭔가 잘못 쓴 경우 user든, 비밀번호든, 포트번호든 뭔가 잘못쓴 경우. 한 번 더 점검해보는 수밖에...
버전이 안맞을 경우 새로운 버전 혹은 파이썬 버전과 맞는 버전을 설치한다. pip install --upgrade pip

pip install pymysql

3.2 pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '장소'")

사용하는 구문이 맞지 않을 때 발생하는 에러. execute 안의 SQL_query가 틀렸을 때 나오는 에러이다.