Python模塊之PyMySQL

PyMySQL

  介紹:mysql

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

 

  安裝:數據庫

  經過命令pip install pymysql安裝,在Python3中能夠經過pip3來安裝。工具

 

  鏈接MySQL數據庫:fetch

  鏈接以前的準備工做:spa

    1,要有一個MySQL數據庫,而且已經啓動;code

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

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

  基本地鏈接使用:事務

# 導入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()
相關文章
相關標籤/搜索