python-數據庫之pymysql模塊(連接對象-游標對象-執行-獲取值或者提交事務)


1、pymysql模塊安裝與引入

安裝

pip install PyMySQL

引入

import pymysql

2、數據庫的操作

下圖查找連接數據庫,源碼的方法,以及參數怎么配置的可參考

 

數據庫的操作步驟:

步驟1:引入pymysql模塊 import pymysql
步驟2:連接數據庫,返回連接對象 注意:charset="utf8"指定編碼方式,沒有-
con = pymysql.connect(host="127.0.0.1", user="root", port=3306, password="123456",charset="utf8")
步驟3:創建一個游標對象
cur = con.cursor()
步驟4:執行的sql語句
sql = "SELECT * FROM python.cfl_emp;"
步驟5:通過execute方法執行sql語句
res = cur.execute(sql) # 返回的是記錄條數
步驟6:獲取查詢結果
# 獲取查詢到的返回集中的第一條數據
data_fetchone = cur.fetchone()
print(f"獲取查詢到的返回集中的第一條數據,data_fetchone = cur.fetchone() \n結果:{data_fetchone}")
# 獲取查詢到的所有數據
# 返回的是一個元組嵌套元組的數據
data_fetchall = cur.fetchall()
print(f"獲取查詢到的返回集中的所有數據,data_fetchall = cur.fetchall() \n結果:{data_fetchall}")

# 引入pymysql模塊
import pymysql

# 步驟1:連接數據庫,返回連接對象
# charset="utf8"指定編碼方式,沒有-
con = pymysql.connect(host="127.0.0.1", user="root", port=3306, password="123456",charset="utf8")

# 步驟2:創建一個游標對象
cur = con.cursor()
# 步驟3:執行的sql語句
sql = "SELECT *  FROM  python.cfl_emp;"

# 步驟4:通過execute方法執行sql語句
res = cur.execute(sql)  # 返回的是記錄條數
print(res)

# 步驟5:獲取查詢結果

# 獲取查詢到的返回集中的第一條數據
data_fetchone = cur.fetchone()
print(f"獲取查詢到的返回集中的第一條數據,data_fetchone = cur.fetchone() \n結果:{data_fetchone}")

# 獲取查詢到的所有數據
# 返回的是一個元組嵌套元組的數據
data_fetchall = cur.fetchall()
print(f"獲取查詢到的返回集中的所有數據,data_fetchall = cur.fetchall() \n結果:{data_fetchall}")

 

 注意點:pymysql模塊操作數據時,默認開啟的事務
 在事務提交之前,所有對數據庫進行修改的操作都不會同步到數據庫
只有在提交事務之后,才會同步到數據
提交事務:連接對象.commit()

# 引入pymysql模塊
import pymysql

# 步驟1:連接數據庫,返回連接對象
# charset="utf8"指定編碼方式,沒有-
con = pymysql.connect(host="127.0.0.1", user="root", port=3306, password="123456",charset="utf8")

# 步驟2:創建一個游標對象
cur = con.cursor()
# 步驟3:執行的sql語句
select_sql = "select name from python.cfl_emp where id = 6;"
cur.execute(select_sql)
name_b = cur.fetchall()
print(f"事務提交前:name為{name_b}")


update_sql = "UPDATE python.cfl_emp SET  name = '錢一3' WHERE id = 6;"
cur.execute(update_sql)
# 注意點:pymysql模塊操作數據時,默認開啟的事務
# 在事務提交之前,所有對數據庫進行修改的操作都不會同步到數據庫
# 只有在提交事務之后,才會同步到數據
# 提交事務:連接對象.commit()

con.commit()
cur.execute(select_sql)
name_a = cur.fetchall()
print(f"事務提交前:name為{name_a}")

執行結果:

 

 

3、簡單封裝數據庫的操作-查詢與增刪改操作(因為修改需要提交事務)

分為查詢和增刪改操作
增刪改操作需要連接對象.commit()

 簡單封裝如下:

""
封裝一個做作mysql數據庫的類
封裝的功能:
    1、數據的查詢操作
    2、增刪改操作
"""
import pymysql

class MysqlBD:
    # __init__創建對象的時候初始化操作
    def __init__(self):
        self.con = pymysql.connect(host="127.0.0.1", user="root", port=3306, password="123456",charset="utf8")
        self.cur = self.con.cursor()
    # 數據的查詢操作
    def find(self,sql):
        self.cur.execute(sql)
        datas = self.cur.fetchall()
        return datas
    # 增刪改操作
    def update(self,sql):
        self.cur.execute(sql)
        self.con.commit()
if __name__  == '__main__':
    db = MysqlBD()
    select_sql = "select name from python.cfl_emp where id = 6;"
    res = db.find(select_sql)
    print(f"查詢結果:{res}")

    update_sql = "UPDATE python.cfl_emp SET  name = '錢一1' WHERE id = 6;"
    res_1 = db.update(update_sql)
    select_sql = "select name from python.cfl_emp where id = 6;"
    res1 = db.find(select_sql)
    print(f"查詢結果:{res1}")

執行結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM