"Pymysql"의 두 판 사이의 차이
둘러보기로 가기
검색하러 가기
(→데이터 조작) |
|||
77번째 줄: | 77번째 줄: | ||
|커서객체.execute('select * from 테이블명') | |커서객체.execute('select * from 테이블명') | ||
객체=커서객체.fetchall() | 객체=커서객체.fetchall() | ||
+ | |- | ||
+ | |데이터 일부 불러오기 | ||
+ | |n개 데이터를 읽어온다. | ||
+ | |객체=커서객체.fetchmany(n) | ||
+ | |- | ||
+ | |데이터 하나 불러오기 | ||
+ | | | ||
+ | |객체=커서객체.fetchone() | ||
|} | |} | ||
2021년 9월 7일 (화) 14:33 판
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() |
데이터 일부 불러오기 | n개 데이터를 읽어온다. | 객체=커서객체.fetchmany(n) |
데이터 하나 불러오기 | 객체=커서객체.fetchone() |
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가 틀렸을 때 나오는 에러이다.