您好,登錄后才能下訂單哦!
PyMySQL 是在 Python3.x 版本中用于連接 MySQL 服務器的一個庫,而Python2中則使用mysqldb。
PyMySQL 遵循 Python 數據庫 API v2.0 規范,并包含了 pure-Python MySQL 客戶端庫。
1.引入模塊
2.獲取與數據庫的連接
3.執行SQL語句和存儲過程
4.關閉數據庫連接
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語句的方法,可以參考數據庫插入操作。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。