一,基本使用mysql
倒入模塊sql
import pymysql conn=pymysql.connect( host="數據庫地址,本機是localhost,別的機器是ip「, user="用戶名,通常是root", password="密碼", database="數據庫名", charset="utf8" )
獲得一個光標對象數據庫
cursor=conn.cursor()
定義要執行的語句fetch
sql=「」spa
執行語句:code
cursor.execute(sql)對象
關閉blog
cursor。close()事務
conn.close()ip
若是想返回的是字典的形式的話
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
二,增刪改查
1,增
cursor = conn.cursor() sql = "INSERT INTO a1(name, age) VALUES (%s, %s);" username = "二狗" age = 18 # 執行SQL語句 cursor.execute(sql, [username, age]) # 提交事務 conn.commit() cursor.close() conn.close()
2,插入數據失敗回滾
# 獲得一個能夠執行SQL語句的光標對象 cursor = conn.cursor() sql = "INSERT INTO a1(name, age) VALUES (%s, %s);" username = "二狗" age = 18 try: # 執行SQL語句 cursor.execute(sql, [username, age]) # 提交事務 conn.commit() except Exception as e: # 有異常,回滾事務 conn.rollback() cursor.close() conn.close()
3,獲取插入數據的ID(關聯操做時會用到)
# 獲得一個能夠執行SQL語句的光標對象 cursor = conn.cursor() sql = "INSERT INTO a1(name, age) VALUES (%s, %s);" username = "二狗" age = 18 try: # 執行SQL語句 cursor.execute(sql, [username, age]) # 提交事務 conn.commit() # 提交以後,獲取剛插入的數據的ID last_id = cursor.lastrowid except Exception as e: # 有異常,回滾事務 conn.rollback() cursor.close() conn.close()
4批量執行
# 獲得一個能夠執行SQL語句的光標對象 cursor = conn.cursor() sql = "INSERT INTO a1(name, age) VALUES (%s, %s);" data = [("大狗", 18), ("二狗", 20), ("三狗", 21)] try: # 批量執行多條插入SQL語句 cursor.executemany(sql, data) # 提交事務 conn.commit() except Exception as e: # 有異常,回滾事務 conn.rollback() cursor.close() conn.close()
5,刪
# 獲得一個能夠執行SQL語句的光標對象 cursor = conn.cursor() sql = "DELETE FROM a1 WHERE id=%s;" try: cursor.execute(sql, [4]) # 提交事務 conn.commit() except Exception as e: # 有異常,回滾事務 conn.rollback() cursor.close() conn.close()
6,改
# 獲得一個能夠執行SQL語句的光標對象 cursor = conn.cursor() # 修改數據的SQL語句 sql = "UPDATE a1 SET age=%s WHERE name=%s;" username = "二狗" age = 80 try: # 執行SQL語句 cursor.execute(sql, [age, username]) # 提交事務 conn.commit() except Exception as e: # 有異常,回滾事務 conn.rollback() cursor.close() conn.close()
7,查
單條數據
# 獲得一個能夠執行SQL語句的光標對象 cursor = conn.cursor() # 查詢數據的SQL語句 sql = "SELECT id,name,age from USER1 WHERE id=1;" # 執行SQL語句 cursor.execute(sql) # 獲取單條查詢數據 ret = cursor.fetchone() cursor.close() conn.close() # 打印下查詢結果 print(ret)
多條數據
# 獲得一個能夠執行SQL語句的光標對象 cursor = conn.cursor() # 查詢數據的SQL語句 sql = "SELECT id,name,age from USER1;" # 執行SQL語句 cursor.execute(sql) # 獲取多條查詢數據 ret = cursor.fetchall() cursor.close() conn.close() # 打印下查詢結果 print(ret)
三,控制光標
# 能夠獲取指定數量的數據 cursor.fetchmany(3) # 光標按絕對位置移動1 cursor.scroll(1, mode="absolute") # 光標按照相對位置(當前位置)移動1 cursor.scroll(1, mode="relative")