目錄
- 一、關(guān)于Python操作數(shù)據(jù)庫(kù)的概述
- 二、一般操作流程
- 三、安裝mysql的操作庫(kù)
- 四、基本操作
一、關(guān)于Python操作數(shù)據(jù)庫(kù)的概述
Python所有的數(shù)據(jù)庫(kù)接口程序都在一定程度上遵守 Python DB-API 規(guī)范。
DB-API定義了一系列必須的對(duì)象和數(shù)據(jù)庫(kù)存取方式,以便為各種底層數(shù)據(jù)庫(kù)系統(tǒng)和多種多樣的數(shù)據(jù)庫(kù)接口程序提供一致的訪問(wèn)接口。由于DB-API 為不同的數(shù)據(jù)庫(kù)提供了一致的訪問(wèn)接口, 在不同的數(shù)據(jù)庫(kù)之間移植代碼成為一件輕松的事情。
在Python中如果要連接數(shù)據(jù)庫(kù),不管是MySQL、SQL Server、PostgreSQL亦或是SQLite,使用時(shí)都是采用游標(biāo)的方式。
二、一般操作流程

三、安裝mysql的操作庫(kù)
四、基本操作
創(chuàng)建連接
import pymysql
# 創(chuàng)建連接方式1
db = pymysql.connect(host='localhost',
user='root', password='root', db='test', port=3306)
# 創(chuàng)建連接方式2
db = pymysql.connect(dsn='localhost:test', user='root', password='root')
close()
關(guān)閉此connect對(duì)象, 關(guān)閉后無(wú)法再進(jìn)行操作,除非再次創(chuàng)建連接。
cursor()
創(chuàng)建游標(biāo)對(duì)象。一個(gè)游標(biāo)允許用戶(hù)執(zhí)行數(shù)據(jù)庫(kù)命令和得到查詢(xún)結(jié)果。一個(gè) Python DB-API 游標(biāo)對(duì)象總是扮演游標(biāo)的角色, 無(wú)論數(shù)據(jù)庫(kù)是否真正支持游標(biāo)。也就說(shuō),數(shù)據(jù)庫(kù)接口程序必須實(shí)現(xiàn)游標(biāo)對(duì)象。創(chuàng)建游標(biāo)對(duì)象之后, 你就可以執(zhí)行查詢(xún)或其它命令(或者多個(gè)查詢(xún)和多個(gè)命令), 也可以從結(jié)果集中取出一條或多條記錄。
commit()
提交當(dāng)前事務(wù),執(zhí)行游標(biāo)對(duì)象的所有更新操作。
rollback()
取消當(dāng)前事務(wù),回滾當(dāng)前游標(biāo)的所有操作。
游標(biāo)操作
- close():關(guān)閉此游標(biāo)對(duì)象
- fetchone():得到結(jié)果集的下一行
- fetchall():得到結(jié)果集中剩下的所有行
- excute(sql[, args]):執(zhí)行一個(gè)數(shù)據(jù)庫(kù)查詢(xún)或命令
- callproc(func[,args]): 調(diào)用一個(gè)存儲(chǔ)過(guò)程
查詢(xún)操作
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讀取結(jié)果集
rows = cursor.fetchall()
for row in rows:
print(row)
# 方式2讀取結(jié)果集
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()
調(diào)用存儲(chǔ)過(guò)程
cursor.callproc("存儲(chǔ)過(guò)程名稱(chēng)")
for result in cursor.fetchall():
print(result)
到此這篇關(guān)于教你怎么用Python操作MySql數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)Python操作MySql內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- MySQL 重命名表的操作方法及注意事項(xiàng)
- MySQL數(shù)據(jù)庫(kù)重命名的快速且安全方法(3種)
- mysql事件之修改事件(ALTER EVENT)、禁用事件(DISABLE)、啟用事件(ENABLE)、事件重命名及數(shù)據(jù)庫(kù)事件遷移操作詳解
- 詳解MYSQL中重命名procedure的一種方法
- MySQL中使用SQL語(yǔ)句對(duì)字段進(jìn)行重命名
- mysql數(shù)據(jù)庫(kù)重命名語(yǔ)句分享
- 用python開(kāi)發(fā)一款操作MySQL的小工具
- Python基礎(chǔ)之操作MySQL數(shù)據(jù)庫(kù)
- Python聊天室?guī)Ы缑鎸?shí)現(xiàn)的示例代碼(tkinter,Mysql,Treading,socket)
- Python操作MySQL數(shù)據(jù)庫(kù)的簡(jiǎn)單步驟分享
- Python使用sql語(yǔ)句對(duì)mysql數(shù)據(jù)庫(kù)多條件模糊查詢(xún)的思路詳解
- Python中tkinter+MySQL實(shí)現(xiàn)增刪改查
- 運(yùn)用Python快速的對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行重命名