Python3 操作Mysql數據庫

Pymysql介紹

PyMySQL 是在 Python3.x 版本中用於連接 MySQL 服務器的一個庫,而Python2中則使用mysqldb。
PyMySQL 遵循 Python 數據庫 API v2.0 規範,幷包含了 pure-Python MySQL 客戶端庫。

通用步驟:

1.引入模塊
2.獲取與數據庫的連接
3.執行SQL語句和存儲過程
4.關閉數據庫連接

Python3 操作Mysql數據庫

PyMySQL 安裝

1.打開cmd命令

cd C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts #切換目錄
pip install pymysql

Python3 操作Mysql數據庫

數據庫連接

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()

腳本驗證
Python3 操作Mysql數據庫

數據庫插入操作

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()

插入數據驗證
Python3 操作Mysql數據庫

數據庫查詢操作

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()

查詢驗證
Python3 操作Mysql數據庫

數據庫更新操作

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()

更新驗證
Python3 操作Mysql數據庫

刪除操作

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()

刪除驗證
Python3 操作Mysql數據庫

執行事務

事務機制可以確保數據一致性。
事務應該具有4個屬性:原子性、一致性、隔離性、持久性。這四個屬性通常稱爲ACID特性。
原子性(atomicity)。一個事務是一個不可分割的工作單位,事務中包括的諸操作要麼都做,要麼都不做。
一致性(consistency)。事務必須是使數據庫從一個一致性狀態變到另一個一致性狀態。一致性與原子性是密切相關的。
隔離性(isolation)。一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對併發的其他事務是隔離的,併發執行的各個事務之間不能互相干擾。
持久性(durability)。持續性也稱永久性(permanence),指一個事務一旦提交,它對數據庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。
Python DB API 2.0 的事務提供了兩個方法 commit 或 rollback。

錯誤處理

Python3 操作Mysql數據庫

總結:

1.本文參考了菜鳥教程和親自操作後寫出來的。
2.python2和pyhton3 模塊不一樣,這裏主要介紹pymysql。
3.這裏只是介紹最基本的知識,出發點是爲自己做一份筆記,方便日後查閱!
4.增加,刪除,更新數據都要提交事務,否則數據庫不執行該操作。
5.同時操作多條sql語句的方法,可以參考數據庫插入操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章