Python pymsql 모듈 사용
우선 다운로드
pymysql
pip install pymsql
다음은pymysql
의 기본 사용 이다.
import pymysql
# ,C/S ,TCP
conn = pymysql.connect(
host="localhost",
database="db1",
charset="utf8mb4",
user="root",
cursorclass=pymysql.cursors.DictCursor, # ,
# password = "your password",
)
#
cursor = conn.cursor()
# sql
sql = "show tables"
res = cursor.execute(sql) # , sql
print(res) # 2 2
print(cursor.fetchall()) # [{'Tables_in_db1': 't1'}, {'Tables_in_db1': 't2'}]
cursor.close() #
conn.close()
커서 개념위의 예제 에서 커서 의 개념 을 볼 수 있 습 니 다.사실은 이것 도 매우 간단 합 니 다.이것 은 커서 의 상하 이동 과 같 고 매번 이동 할 때마다 하나의 기록 을 대표 합 니 다.
pymsql
에서 select
등 조작 으로 돌아 온 결 과 는 커서 의 이동 과 해당 하 는 방법 함수 에 맞 춰 읽 을 수 있다.sql 주입
만약 에 일부
sql
문 구 를 문자열 로 연결 하려 면pymysql
에서 제공 하 는execute()
방법 으로 연결 해 야 합 니 다.python 의 %
또는format()
방법 을 사용 하지 마 십시오.이것 은 sql 주입 문제 가 발생 하여 안전 하지 않 은 위험 을 가 져 올 수 있 습 니 다.메모:사용
execute()
시 표 이름,데이터베이스 이름 을 입력 할 수 없습니다.그렇지 않 으 면 문법 오 류 를 던 질 수 있 습 니 다.이것 은 맞 출 때 자동 으로'호'를 추가 하기 때 문 입 니 다.
import pymysql
#
conn = pymysql.connect(
host="localhost",
database="db1",
charset="utf8mb4",
user="root",
cursorclass=pymysql.cursors.DictCursor, # ,
# password = "your password",
)
#
cursor=conn.cursor()
# sql
sql = "select * from t1 where id=%s"
res = cursor.execute(sql,("1",)) # , sql sql
print(res) # 1
print(cursor.fetchall()) #
cursor.close() #
conn.close()
사무 제출UPDATE/INSERT/DELETE
와 같은 작업 을 수행 하려 면conn.commit()
을 사용 하여 사 무 를 제출 해 야 효력 이 발생 합 니 다.또는 실례 화
conn
대상 을 지정 할 때auto_commit
인 자 를 true
로 지정 하면 자동 으로 업 무 를 제출 할 수 있 습 니 다.
import pymysql
#
conn = pymysql.connect(
host="localhost",
database="db1",
charset="utf8mb4",
user="root",
cursorclass=pymysql.cursors.DictCursor, # ,
autocommit = True, #
# password = "your password",
)
#
cursor=conn.cursor()
# sql
sql = "insert into t1(name) values(%s)"
res = cursor.execute(sql,(" ",)) # , sql sql
print(res) # 1
print(cursor.lastrowid) # ,
print(cursor.fetchall())
# conn.commit() #
cursor.close() #
conn.close()
여러 조항 을 제출 하 다cursor.executemany()
방법 을 사용 하면 여러 개의 sql 작업 을 한꺼번에 제출 할 수 있 습 니 다.
import pymysql
#
conn = pymysql.connect(
host="localhost",
database="db1",
charset="utf8mb4",
user="root",
cursorclass=pymysql.cursors.DictCursor, # ,
autocommit = True, #
# password = "your password",
)
#
cursor=conn.cursor()
# sql
sql = "insert into t1(name) values(%s)" # , 3
res = cursor.executemany(sql,[(" 1"),(" 2"),(" 3")]) # , sql sql
print(res) # 3
print(cursor.lastrowid) # ,
print(cursor.fetchall())
cursor.close() #
conn.close()
커서 관련기록 을 가 져 오 면 커서 이동 을 제어 할 수 있 습 니 다.
커서 를 본 후의 몇 개의 기록 도 제어 할 수 있다.
커서 가 이동 할 때마다 하나의 기록 을 대표 합 니 다.
명령 해석
묘사 하 다.
cursor.scroll(3,mode='absolute')
커서 는 절대 위치 로 3 개의 기록 을 뒤로 이동 합 니 다.
cursor.scroll(3,mode='relative')
커서 는 현재 위치 로 3 개의 기록 을 뒤로 이동 합 니 다.
메모:커서 가 이동 하 는 줄 수 는 기 록 된 줄 수 입 니 다.이동 값 이 마이너스 N 이면 N 개의 기록 을 의미 합 니 다.
만약 우리 가 기록 을 얻 고 싶다 면 다음 과 같은 세 가지 방법 을 사용 할 수 있다.
명령 해석
묘사 하 다.
cursor.fetchone()
첫 번 째 기록 가 져 오기,커서 한 줄 아래로 이동
cursor.fetchmany(2)
다음 두 개의 기록 을 가 져 오고 커서 를 아래로 두 줄 이동 합 니 다.
cursor.fetchall()
모든 기록 을 가 져 옵 니 다.커서 는 끝까지 이동 하고 목록 을 되 돌려 줍 니 다.
import pymysql
#
conn = pymysql.connect(
host="localhost",
database="db1",
charset="utf8mb4",
user="root",
cursorclass=pymysql.cursors.DictCursor, # ,
autocommit = True, #
# password = "your password",
)
#
cursor=conn.cursor()
# sql
sql = "select * from t1" # t1 4
cursor.execute(sql)
print(cursor.fetchone()) 2
cursor.scroll(2,mode='relative') 2, 4
print(cursor.fetchone())
cursor.close() #
conn.close()
"""
{'id': 1, 'name': ' 1'}
{'id': 4, 'name': ' 4'}
"""
줄 번호 삽입INSERT
동작 을 수행 하면 삽입 후 마지막 으로 삽 입 된 ID 줄 번 호 를 볼 수 있 습 니 다.
import pymysql
#
conn = pymysql.connect(
host="localhost",
database="db1",
charset="utf8mb4",
user="root",
cursorclass=pymysql.cursors.DictCursor, # ,
autocommit = True, #
# password = "your password",
)
#
cursor=conn.cursor()
# sql
sql = "insert into t1(name) values(%s)" # , 3
res = cursor.executemany(sql,[(" 1"),(" 2"),(" 3")]) # , sql sql
print(res) # 3
print(cursor.lastrowid) # ,
print(cursor.fetchall())
# conn.commit() #
cursor.close() #
conn.close()
이상 은 Python pymsql 모듈 의 사용 에 대한 상세 한 내용 입 니 다.Python pymsql 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.