教你怎麼用Python操作MySql數據庫

一、關於Python操作數據庫的概述

Python所有的數據庫接口程序都在一定程度上遵守 Python DB-API 規范。

DB-API定義瞭一系列必須的對象和數據庫存取方式,以便為各種底層數據庫系統和多種多樣的數據庫接口程序提供一致的訪問接口。由於DB-API 為不同的數據庫提供瞭一致的訪問接口, 在不同的數據庫之間移植代碼成為一件輕松的事情。

在Python中如果要連接數據庫,不管是MySQL、SQL Server、PostgreSQL亦或是SQLite,使用時都是采用遊標的方式。

二、一般操作流程

在這裡插入圖片描述

三、安裝mysql的操作庫

$ pip3 install PyMySQL

四、基本操作

創建連接

import pymysql

# 創建連接方式1
db = pymysql.connect(host='localhost', 
                     user='root', password='root', db='test', port=3306)
# 創建連接方式2
db = pymysql.connect(dsn='localhost:test', user='root', password='root')

close()

關閉此connect對象, 關閉後無法再進行操作,除非再次創建連接。

cursor()

創建遊標對象。一個遊標允許用戶執行數據庫命令和得到查詢結果。一個 Python DB-API 遊標對象總是扮演遊標的角色, 無論數據庫是否真正支持遊標。也就說,數據庫接口程序必須實現遊標對象。創建遊標對象之後, 你就可以執行查詢或其它命令(或者多個查詢和多個命令), 也可以從結果集中取出一條或多條記錄。

commit()

提交當前事務,執行遊標對象的所有更新操作。

rollback()

取消當前事務,回滾當前遊標的所有操作。

遊標操作

cursor = db.cursor()
  • close():關閉此遊標對象
  • fetchone():得到結果集的下一行
  • fetchall():得到結果集中剩下的所有行
  • excute(sql[, args]):執行一個數據庫查詢或命令
  • callproc(func[,args]): 調用一個存儲過程

查詢操作

import pymysql

db = pymysql.connect(host='localhost', user='root', password='root', db='test')

cursor = db.cursor()
sql = '''select * from t_account'''
try:
    cursor.execute(sql)
    # 方式1讀取結果集
    rows = cursor.fetchall()
    for row in rows:
        print(row)    
    # 方式2讀取結果集
    for i in range(cursor.rowcount):
        result = cursor.fetchone()
        print(result)
except Exception as e:
    raise e
finally:
    cursor.close()

db.close()

添加操作

import pymysql

db = pymysql.connect(host='localhost', user='root', password='root', db='test')

cursor = db.cursor()
sql = '''insert into t_account values(default,'zhangsan','z',100,'張三')'''
try:
    print(cursor.execute(sql))
    db.commit()
except:
    db.rollback()
finally:
    cursor.close()

db.close()

修改操作

import pymysql

db = pymysql.connect(host='localhost', user='root', password='root', db='test')

cursor = db.cursor()
sql = '''update t_account set realname = '李四' where id = '5' '''
try:
    print(cursor.execute(sql))
    db.commit()
except:
    db.rollback()
finally:
    cursor.close()

db.close()

刪除操作

import pymysql

db = pymysql.connect(host='localhost', user='root', password='root', db='test')

cursor = db.cursor()
sql = '''delete from t_account where id = '5' '''
try:
    print(cursor.execute(sql))
    db.commit()
except:
    db.rollback()
finally:
    cursor.close()

db.close()

調用存儲過程

cursor.callproc("存儲過程名稱")
for result in cursor.fetchall():
    print(result)

到此這篇關於教你怎麼用Python操作MySql數據庫的文章就介紹到這瞭,更多相關Python操作MySql內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: