本文主要給大家介紹Python標(biāo)準(zhǔn)庫MySQL工作流程是怎么樣的,文章內(nèi)容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下Python標(biāo)準(zhǔn)庫MySQL工作流程是怎么樣的 吧。
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供西固網(wǎng)站建設(shè)、西固做網(wǎng)站、西固網(wǎng)站設(shè)計(jì)、西固網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、西固企業(yè)網(wǎng)站模板建站服務(wù),十載西固做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
MySQLdb工作流程如下:
connection方法用于創(chuàng)建客戶端與數(shù)據(jù)庫的網(wǎng)絡(luò)連接.
語法:
MySQLdb.Connect(參數(shù))
參數(shù)
參數(shù) | 類型 | 說明 |
---|---|---|
host | 字符串 | MySQL云服務(wù)器地址 |
port | 整型 | MySQL云服務(wù)器端口號 |
user | 字符串 | MySQL數(shù)據(jù)庫用戶名 |
passwd | 字符串 | MySQL數(shù)據(jù)庫密碼 |
db | 字符串 | MySQL數(shù)據(jù)庫庫名 |
charset | 字符串 | 連接所使用的字符集 |
例如:
# 導(dǎo)入MySQLdb模塊 >>> import MySQLdb # 創(chuàng)建一個Connect連接 >>> conn = MySQLdb.Connect(host='127.0.0.1', user='root', passwd='as', db='USER', port=3306, charset="utf8") >>> cursor = conn.cursor() >>> print(cursor)>>> print(conn) <_mysql.connection open to '127.0.0.1' at 15b1518> # 關(guān)閉連接 >>> conn.close() >>> print(conn) <_mysql.connection closed at 15b1518>
connection對象支持的方法
方法名 | 說明 |
---|---|
cursor() | 使用該連接創(chuàng)建并返回游標(biāo) |
commit() | 提交當(dāng)前事務(wù) |
rollback() | 回滾當(dāng)前事務(wù) |
close() | 關(guān)閉連接 |
cursor用戶執(zhí)行查詢和獲取結(jié)果,執(zhí)行流程如下:
cursor對象所支持的方法
參數(shù)名 | 說明 |
---|---|
execute(“SQL”) | 執(zhí)行的SQL語句 |
fefchone() | 獲取結(jié)果的下一行 |
fefchmany(size) | 獲取結(jié)果的下幾行 |
fefchall() | 獲取結(jié)果剩下的所有行 |
rowcount | 最近一次execute返回?cái)?shù)據(jù)的行數(shù)或影響的行數(shù) |
close() | 關(guān)閉游標(biāo)對象 |
訪問額更新數(shù)據(jù)庫的一個程序執(zhí)行單元,執(zhí)行單元指的就是很多操作的集合,里面的每個操作都是用來訪問個更新數(shù)據(jù)庫.
原子性: 事務(wù)中包括的諸多操作要么都做要么都不做
比如銀行轉(zhuǎn)賬,A用戶向B用戶轉(zhuǎn)賬100,A-100和B+100這兩個操作,要么都做,要么都不操作
一致性: 事務(wù)必須使數(shù)據(jù)庫從一致性狀態(tài)變到另一個一致性狀態(tài)
隔離性: 一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾
持久性: 事務(wù)一旦提交,他對數(shù)據(jù)庫的改變是永久性的
開發(fā)中怎樣使用事務(wù)?
關(guān)閉自動commit: 設(shè)置conn.autocommit(False),MySQLdb默認(rèn)已經(jīng)為False
正常結(jié)束事務(wù): conn.commit()
異常結(jié)束事務(wù): conn.rollback()
SELECT查詢數(shù)據(jù)
先創(chuàng)建一個user表:
CREATE DATABASE USER; USE USER; CREATE TABLE `user` ( `userid` INT(11) NOT NULL AUTO_INCREMENT, `username` VARCHAR(100) DEFAULT NULL, PRIMARY KEY (`userid`) ) ENGINE=INNODB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
插入以下內(nèi)容
INSERT INTO user(userid, username) VALUES(1, 'name1'); INSERT INTO user(userid, username) VALUES(2, 'name2'); INSERT INTO user(userid, username) VALUES(3, 'name3'); INSERT INTO user(userid, username) VALUES(4, 'name4'); INSERT INTO user(userid, username) VALUES(5, 'name5');
查看數(shù)據(jù)
mysql> SELECT * FROM user; +--------+----------+ | userid | username | +--------+----------+ | 1 | name1 | | 2 | name2 | | 3 | name3 | | 4 | name4 | | 5 | name5 | +--------+----------+ 5 rows in set (0.00 sec)
>>> import MySQLdb >>> conn = MySQLdb.Connect(host='127.0.0.1', user='root', passwd='as', db='USER', port=3306, charset="utf8") >>> cursor = conn.cursor() >>> SQL = "SELECT * FROM user" # 返回獲取到的多少行 >>> cursor.execute(SQL) 5 # 輸出獲取到的行數(shù) >>> print(cursor.rowcount) 5 # 返回第一條數(shù)據(jù) >>> cursor.fetchone() (1, 'name1') # 返回兩條數(shù)據(jù) >>> cursor.fetchmany(2) ((2, 'name2'), (3, 'name3')) # 返回剩下的所有數(shù)據(jù) >>> cursor.fetchall() ((4, 'name4'), (5, 'name5'))
insert/update/delete
流程圖:
>>> import MySQLdb >>> conn = MySQLdb.Connect(host='127.0.0.1', user='root', passwd='as', db='USER', port=3306, charset="utf8") >>> cursor = conn.cursor() >>> cursor.execute("INSERT INTO user(userid, username) VALUES(50, 'name50')") 1 >>> cursor.execute("UPDATE user SET username='as' WHERE userid=1") 1 >>> cursor.execute("DELETE FROM user WHERE userid=2") 1 >>> conn.commit() >>> cursor.close() >>> conn.close()
查看數(shù)據(jù)庫表內(nèi)容
mysql> SELECT * FROM user; +--------+----------+ | userid | username | +--------+----------+ | 1 | as | | 3 | name3 | | 4 | name4 | | 5 | name5 | | 50 | name50 | +--------+----------+ 5 rows in set (0.00 sec)
#Python標(biāo)準(zhǔn)庫 #Mysqldb
看完以上關(guān)于Python標(biāo)準(zhǔn)庫MySQL工作流程是怎么樣的,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業(yè)知識信息 ,可以持續(xù)關(guān)注我們的行業(yè)資訊欄目的。