Pymysql介紹
PyMySQL 是在 Python3.x 版本中用於連接 MySQL 服務器的一個庫,而Python2中則使用mysqldb。
PyMySQL 遵循 Python 數據庫 API v2.0 規範,幷包含了 pure-Python MySQL 客戶端庫。
通用步驟:
1.引入模塊
2.獲取與數據庫的連接
3.執行SQL語句和存儲過程
4.關閉數據庫連接
PyMySQL 安裝
1.打開cmd命令
cd C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts #切換目錄
pip install pymysql
數據庫連接
import pymysql #模塊導入
#打開數據庫連接
db = pymysql.connect(
host='數據庫ip',
user='用戶名,
passwd='密碼',
db='數據庫名',
port=3306,
charset='utf8'
)
#使用 cursor() 方法創建一個遊標對象 cursor
cursor = db.cursor()
#使用 execute() 方法執行 SQL 查詢
cursor.execute("SELECT VERSION()")
#使用 fetchone() 方法獲取單條數據.
data = cursor.fetchone()
print ("Database version : %s " % data)
#關閉數據庫連接
db.close()
腳本輸出結果:
Database version : 5.6.24-log
創建數據庫表
import pymysql
#打開數據庫連接
db = pymysql.connect(
host='數據庫ip',
user='用戶名,
passwd='密碼',
db='數據庫名',
port=3306,
charset='utf8'
)
#使用 cursor() 方法創建一個遊標對象 cursor
cursor = db.cursor()
#使用 execute() 方法執行 SQL,如果表存在則刪除
cursor.execute("DROP TABLE IF EXISTS info")
#使用預處理語句創建表
sql = """create table info (id int not null,name char(6),score decimal(5,2),age int(4));"""
cursor.execute(sql)
#關閉數據庫連接
db.close()
腳本驗證
數據庫插入操作
import pymysql
#打開數據庫連接
db = pymysql.connect(
host='數據庫ip',
user='用戶名,
passwd='密碼',
db='數據庫名',
port=3306,
charset='utf8'
)
#使用cursor()方法獲取操作遊標
cursor = db.cursor()
#SQL 插入語句
sql_1= """insert into info (id,name,score,age)values(1,'張三',88,33);"""
sql_2 = """insert into info (id,name,score,age)values(2,'李四',78,23);"""
sql_3 = """insert into info (id,name,score,age)values(3,'王五',58,43);"""
try:
#執行sql語句
cursor.execute(sql_1)
cursor.execute(sql_2)
cursor.execute(sql_3)
#提交到數據庫執行
db.commit()
except:
#如果發生錯誤則回滾
db.rollback()
#關閉數據庫連接
db.close()
插入數據驗證
數據庫查詢操作
Python查詢Mysql使用 fetchone() 方法獲取單條數據, 使用fetchall() 方法獲取多條數據。
fetchone(): 該方法獲取下一個查詢結果集。結果集是一個對象
fetchall(): 接收全部的返回結果行.
rowcount: 這是一個只讀屬性,並返回執行execute()方法後影響的行數。
腳本文件:
import pymysql
#打開數據庫連接
db = pymysql.connect(
host='數據庫ip',
user='用戶名,
passwd='密碼',
db='數據庫名',
port=3306,
charset='utf8'
)
#使用cursor()方法獲取操作遊標
cursor = db.cursor()
#SQL 查詢語句
sql = 'select * from info;'
#執行SQL語句
cursor.execute(sql)
#獲取所有記錄列表
res = cur.fetchall()
#打印結果
print(res)
#打印出每個元組
print(res[0])
print(res[1])
print(res[2])
|#關閉遊標
cur.close()
#關閉數據庫
db.close()
查詢驗證
數據庫更新操作
import pymysql
#打開數據庫連接
db = pymysql.connect(
host='數據庫ip',
user='用戶名,
passwd='密碼',
db='數據庫名',
port=3306,
charset='utf8'
)
#使用cursor()方法獲取操作遊標
cursor = db.cursor()
#SQL 查詢語句
sql = 'UPDATE info SET AGE = AGE + 1 WHERE id=3'
#執行SQL語句
cursor.execute(sql)
try:
#執行SQL語句
cursor.execute(sql)
#提交到數據庫執行
db.commit()
except:
#發生錯誤時回滾
db.rollback()
#關閉數據庫連接
db.close()
更新驗證
刪除操作
import pymysql
#打開數據庫連接
db = pymysql.connect(
host='數據庫ip',
user='用戶名,
passwd='密碼',
db='數據庫名',
port=3306,
charset='utf8'
)
#使用cursor()方法獲取操作遊標
cursor = db.cursor()
#SQL 查詢語句
sql = 'DELETE FROM info WHERE id=3;'
#執行SQL語句
cursor.execute(sql)
try:
#執行SQL語句
cursor.execute(sql)
#提交到數據庫執行
db.commit()
except:
#發生錯誤時回滾
db.rollback()
#關閉數據庫連接
db.close()
刪除驗證
執行事務
事務機制可以確保數據一致性。
事務應該具有4個屬性:原子性、一致性、隔離性、持久性。這四個屬性通常稱爲ACID特性。
原子性(atomicity)。一個事務是一個不可分割的工作單位,事務中包括的諸操作要麼都做,要麼都不做。
一致性(consistency)。事務必須是使數據庫從一個一致性狀態變到另一個一致性狀態。一致性與原子性是密切相關的。
隔離性(isolation)。一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對併發的其他事務是隔離的,併發執行的各個事務之間不能互相干擾。
持久性(durability)。持續性也稱永久性(permanence),指一個事務一旦提交,它對數據庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。
Python DB API 2.0 的事務提供了兩個方法 commit 或 rollback。
錯誤處理
總結:
1.本文參考了菜鳥教程和親自操作後寫出來的。
2.python2和pyhton3 模塊不一樣,這裏主要介紹pymysql。
3.這裏只是介紹最基本的知識,出發點是爲自己做一份筆記,方便日後查閱!
4.增加,刪除,更新數據都要提交事務,否則數據庫不執行該操作。
5.同時操作多條sql語句的方法,可以參考數據庫插入操作。