更新時(shí)間:2020-12-10 來(lái)源:黑馬程序員 瀏覽量:
pymysql如何鏈接Mysql數(shù)據(jù)庫(kù)?使用pymysql庫(kù)訪問(wèn)MySQL數(shù)據(jù)庫(kù)可分為以下幾步:
(1)創(chuàng)建連接。通過(guò)connect()方法創(chuàng)建用于連接數(shù)據(jù)庫(kù)的Connection對(duì)象。
(2)獲取游標(biāo)。通過(guò)Connection對(duì)象的cursor()方法創(chuàng)建Cursor對(duì)象。
(3)執(zhí)行SQL語(yǔ)句。通過(guò)Cursor對(duì)象的execute()、fetchone()或fetchall()方法執(zhí)行SQL語(yǔ)句,實(shí)現(xiàn)數(shù)據(jù)庫(kù)基本操作,包括數(shù)據(jù)的增加、更新、刪除、查詢等。
(4)關(guān)閉游標(biāo)。通過(guò)Cursor對(duì)象的close()方法關(guān)閉游標(biāo)。
(5)關(guān)閉連接。通過(guò)Connection對(duì)象的close()方法關(guān)閉連接。獲取【Python視頻教程+筆記+源碼】加播妞
:435946716。
下面按照以上介紹的流程,通過(guò)一個(gè)示例分步驟為大家演示如何使用pymysql操作MySQL數(shù)據(jù)庫(kù),具體內(nèi)容如下。
(1)導(dǎo)入pymysql庫(kù),創(chuàng)建程序與MySQL數(shù)據(jù)庫(kù)的連接,代碼如下。
import pymysql
# 連接數(shù)據(jù)庫(kù)
conn = pymysql.connect(
host='localhost',
user='root',
password='123456',
charset='utf8'
)
以上代碼連接本地的MySQL數(shù)據(jù)庫(kù),并以root用戶的身份訪問(wèn)該數(shù)據(jù)庫(kù)。
(2)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)dbtest,并在數(shù)據(jù)庫(kù)dbtest中創(chuàng)建一張表示員工信息的數(shù)據(jù)表employees。數(shù)據(jù)表employees中共有emID、emName、emLevel、emDepID這4個(gè)字段,其中字段被設(shè)置為主鍵,代碼如下。
# 獲得游標(biāo) cursor = conn.cursor() # 創(chuàng)建數(shù)據(jù)庫(kù) sql_create = "create database if not exists dbtest" cursor.execute(sql_create) # 創(chuàng)建數(shù)據(jù)表 sql_use = 'use dbtest' cursor.execute(sql_use) sql_table = 'create table if not exists employees(emID int primary key, emName varchar(20), emLevel varchar(20), emDepID varchar(20))' cursor.execute(sql_table)
(3)向數(shù)據(jù)表employees中插入一條記錄,代碼如下。
# 插入數(shù)據(jù)
sql = "insert into employees (emID, emName, emLevel, emDepID)
values (%d, '%s', %d, %d)"
data = (15, '小園', 3, 3)
cursor.execute(sql % data)
conn.commit()
(4)更新數(shù)據(jù)表employees,將字段emID的值為15的記錄中字段emName的值修改為“小丸子”,代碼如下。
# 修改數(shù)據(jù)
sql = "update employees set emName = '%s' where emID = %d"
data = ('小丸子', 15)
cursor.execute(sql % data)
conn.commit()
(5)查詢employees表中字段emDepID的值為3的記錄,代碼如下。
# 查詢數(shù)據(jù)
sql = "select emID, emName from employees where emDepID = 3"
cursor.execute(sql)
for row in cursor.fetchall():
print("員工ID:%d 姓名:'%s'" % row)
print('財(cái)務(wù)部一共有%d個(gè)員工' % cursor.rowcount)
(6)刪除employees表中字段emID的值為15的一條記錄,代碼如下。
# 刪除數(shù)據(jù)
sql = "delete from employees where emID = %d limit %d"
data = (15, 1)
cursor.execute(sql % data)
conn.commit()
print('共刪除%d條數(shù)據(jù)' % cursor.rowcount)
(7)關(guān)閉游標(biāo)和連接,代碼如下。
cursor.close() # 關(guān)閉游標(biāo) conn.close() # 關(guān)閉連接
(8)運(yùn)行程序,程序執(zhí)行的結(jié)果如下所示:
員工ID:15 姓名:'小丸子' 財(cái)務(wù)部一共有1個(gè)員工 共刪除1條數(shù)據(jù)
猜你喜歡
1024首播|39歲程序員逆襲記:不被年齡定義,AI浪潮里再迎春天
2025-10-241024程序員節(jié)丨10年同行,致敬用代碼改變世界的你
2025-10-24【AI設(shè)計(jì)】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計(jì)連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運(yùn)營(yíng)】深圳跨境電商運(yùn)營(yíng)畢業(yè)22個(gè)工作日,就業(yè)率91%+,最高薪資達(dá)13500元
2025-09-19【AI運(yùn)維】鄭州運(yùn)維1期就業(yè)班,畢業(yè)14個(gè)工作日,班級(jí)93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開(kāi)發(fā)】上海校區(qū)AI鴻蒙開(kāi)發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19