1. 程式人生 > >Python模塊之PyMySQL

Python模塊之PyMySQL

mysql模塊 指定 ima def clas import OS hone 例如

PyMySQL

  介紹:

  Python中用於連接MySQL數據庫的一種第三方工具庫。

  安裝:

  通過命令pip install pymysql安裝,在Python3中可以通過pip3來安裝。

  連接MySQL數據庫:

  連接之前的準備工作:

    1,要有一個MySQL數據庫,並且已經啟動;

    2,你要知道數據庫的地址,用戶名和密碼;

    3,你的主機擁有操作目標數據庫的權限。

  基本地連接使用:

# 導入PyMySQL模塊
import pymysql

# 連接database
conn = pymysql.connect(host="你的數據庫地址
", user="用戶名", password="密碼", database="數據庫名", charset="utf8") # charset="utf8" 不能寫作utf-8 # 得到一個可以執行SQL語句的對象 cursor = conn.cursor() # 添加參數cursor=pymysql.cursors.DictCursor,可以設定執行SQL語句的返回為字典格式 # 定義要執行的SQL語句 sql = """ CREATE TABLE USER1 ( id INT auto_increment PRIMARY KEY , name CHAR(10) NOT NULL UNIQUE, age TINYINT NOT NULL )ENGINE=innodb DEFAULT CHARSET=utf8;
""" # 執行SQL語句 cursor.execute(sql) # 關閉光標對象 cursor.close() # 關閉數據庫連接 conn.close()

  增刪改查:

    基本格式

import pymysql

conn = pymysql.connect(host="你的數據庫地址", user="用戶名", 
password="密碼", database="數據庫名", charset="utf8")

cursor = conn.cursor()

sql = "Mysql增刪改查語句"

cursor.execute(sql)

conn.commit()  
# 增刪改需要提交事務 cursor.close() conn.close()

    如果要動態操作數據,可以在SQL語句中使用%s格式化輸出。例如:

sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"
username = "tom"
age = 18
cursor.execute(sql, [username, age])

    如果要獲取新添加的數據的ID,可以在提交事務後通過lastrowid來實現。

cursor.execute(sql)
conn.commit()
# 提交之後,獲取最後一條數據的ID
last_id = cursor.lastrowid

    查詢結果獲取

      1,獲取單條數據

# 執行SQL語句
cursor.execute(sql)
# 獲取單條查詢數據
ret = cursor.fetchone()

      2,獲取多條數據

# 執行SQL語句
cursor.execute(sql)
# 獲取全部查詢數據
ret = cursor.fetchall()

# 還可以獲取指定數量的數據
ret = cursor.fetchmany(3)

    批量執行

sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"

date = [(tom, 18), (jerry, 18)]

cursor.executemany(sql, data)

  操作失敗回滾:通過異常處理來完成。

try:
    # 執行SQL語句
    cursor.execute(sql)
    # 提交事務
    conn.commit()
except Exception:
    # 有異常,回滾事務
    conn.rollback()

Python模塊之PyMySQL