Python pymsql 모듈 사용

6523 단어 Pythonpymsql
기본 사용
우선 다운로드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 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

좋은 웹페이지 즐겨찾기