溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python 中使用 PyMySQL模塊操作數(shù)據(jù)庫的方法

發(fā)布時(shí)間:2020-10-12 08:48:01 來源:腳本之家 閱讀:185 作者:IT-平頭哥 欄目:開發(fā)技術(shù)

之前用的Python2,連接MySQL用的是MySQLdb?,F(xiàn)在換成python3.x了,由于 MySQLdb 模塊還不支持 Python3.x,所以 Python3.x 如果想連接MySQL需要安裝 PyMySQL模塊,以下將介紹PyMySQL的安裝及常用操作。

一、安裝

pip install PyMySQL

二、常用操作

查詢數(shù)據(jù)

import pymysql
# 連接數(shù)據(jù)庫
conn = pymysql.connect(
  host='127.0.0.1',
  user='root',
  passwd='root',
  port=3306,
  db='test',
  charset='utf8'
)
# 創(chuàng)建一個(gè)游標(biāo)
cursor = conn.cursor()
# 查詢數(shù)據(jù)
sql = "select * from user"
cursor.execute(sql) # 執(zhí)行sql
# 查詢所有數(shù)據(jù),返回結(jié)果默認(rèn)以元組形式,所以可以進(jìn)行迭代處理
for i in cursor.fetchall():
  print(i)
print('共查詢到:', cursor.rowcount, '條數(shù)據(jù)。')
# 獲取第一行數(shù)據(jù)
result_1 = cursor.fetchone()
print(result_1)
# 獲取前n行數(shù)據(jù)
result_3 = cursor.fetchmany(3)
print(result_3)
cursor.close() # 關(guān)閉游標(biāo)
conn.close() # 關(guān)閉連接

插入數(shù)據(jù)

執(zhí)行完插入語句后一定要執(zhí)行.commit()進(jìn)行提交事務(wù),可以插入多條后統(tǒng)一提交,否則操作無效

import pymysql
# 連接數(shù)據(jù)庫
conn = pymysql.connect(
  host='127.0.0.1',
  user='root',
  passwd='root',
  port=3306,
  db='test',
  charset='utf8'
)
# 創(chuàng)建一個(gè)游標(biāo)
cursor = conn.cursor()
# 插入數(shù)據(jù)
# 數(shù)據(jù)直接寫在sql后面
sql = "insert into username(id,name) values(%s, %s)" # 注意是%s,不是s%
cursor.execute(sql, [3, '王五']) # 列表格式數(shù)據(jù)
cursor.execute(sql, (4, '馬六')) # 元組格式數(shù)據(jù)
# 數(shù)據(jù)單獨(dú)賦給一個(gè)對象
sql = "insert into username values(%s,%s)"
data = (5, '老七')
cursor.execute(sql, data) #sql和data之間以","隔開
sql = "insert into username values(%s,'%s')"
data = (6, '小八')
cursor.execute(sql % data) #sql和data之間以"%"隔開,此時(shí)它的sql中注意要給中文字符對應(yīng)的占位符加上引號,即"%s",不然會(huì)報(bào)錯(cuò):unsupported format character
conn.commit()  # 提交,不然無法保存插入或者修改的數(shù)據(jù)(這個(gè)一定不要忘記加上)
cursor.close() # 關(guān)閉游標(biāo)
conn.close() # 關(guān)閉連接

修改數(shù)據(jù)

執(zhí)行完修改語句后一定要執(zhí)行.commit()進(jìn)行提交事務(wù),可以修改多條后統(tǒng)一提交,否則操作無效

import pymysql
# 連接數(shù)據(jù)庫
conn = pymysql.connect(
  host='127.0.0.1',
  user='root',
  passwd='root',
  port=3306,
  db='test',
  charset='utf8'
)
# 創(chuàng)建一個(gè)游標(biāo)
cursor = conn.cursor()
# 修改數(shù)據(jù)
sql = "update username set name='%s' where id=%s" #注意%s什么時(shí)候加引號,什么時(shí)候不加
data = ('改名了', 1)
cursor.execute(sql % data)
sql = "update username set name=%s where id=%s"
data = ('也改名了', 2)
cursor.execute(sql, data)
conn.commit()  # 提交,不然無法保存插入或者修改的數(shù)據(jù)
cursor.close() # 關(guān)閉游標(biāo)
conn.close() # 關(guān)閉連接

刪除數(shù)據(jù)

執(zhí)行完刪除語句后一定要執(zhí)行.commit()進(jìn)行提交事務(wù),可以刪除多條后統(tǒng)一提交,否則操作無效

import pymysql
# 連接數(shù)據(jù)庫
conn = pymysql.connect(
  host='127.0.0.1',
  user='root',
  passwd='root',
  port=3306,
  db='test',
  charset='utf8'
)
# 創(chuàng)建一個(gè)游標(biāo)
cursor = conn.cursor()
# 刪除數(shù)據(jù)
sql = "delete from username where id=%s"
data = (2)
cursor.execute(sql, data)
conn.commit()  # 提交,不然刪除操作不生效
cursor.close() # 關(guān)閉游標(biāo)
conn.close() # 關(guān)閉連接

總結(jié)

以上所述是小編給大家介紹的Python 中使用 PyMySQL操作數(shù)據(jù)庫的方法,希望對大家有所幫助!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI