溫馨提示×

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

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

Python中數(shù)據(jù)庫操作的示例分析

發(fā)布時(shí)間:2021-07-24 14:14:29 來源:億速云 閱讀:118 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)Python中數(shù)據(jù)庫操作的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

使用原生SQL語句進(jìn)行對(duì)數(shù)據(jù)庫操作,可完成數(shù)據(jù)庫表的建立和刪除,及數(shù)據(jù)表內(nèi)容的增刪改查操作等。其可操作性很強(qiáng),如可以直接使用“show databases”、“show tables”等語句進(jìn)行表格之外的部分操作。

Centos7遠(yuǎn)程操作數(shù)據(jù)庫時(shí)需要關(guān)閉防火墻,否則會(huì)連接不上

安裝:

pip3 install pymysql

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

 import pymysql 
 #建立數(shù)據(jù)庫連接
 conn=pymysql.connect(host="192.168.1.175",port=3306,user="root2",passwd="proot2",db="dongdb") 
 #得到數(shù)據(jù)庫操作游標(biāo)
 cur=conn.cursor()
 #查詢數(shù)據(jù)
 resdata=cur.execute("select * from tb_dong")
 print("總條數(shù)為:",resdata)
 #一行一行輸出數(shù)據(jù),以元組形式
 print("取出第一條數(shù)據(jù):",cur.fetchone())
 print("取出第二條數(shù)據(jù):",cur.fetchone()[3])
 #輸出剩下的所有數(shù)據(jù),以元組嵌套形式
 print("取出剩下的數(shù)據(jù):",cur.fetchall())
 print("------ 完成操作  -------")
 #關(guān)閉連接
 conn.close()

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

也可以使用 execute() 進(jìn)行操作

 import pymysql 
 #建立數(shù)據(jù)庫連接
 conn=pymysql.connect(host="192.168.1.175",port=3306,user="root2",passwd="proot2",db="dongdb") 
 #得到數(shù)據(jù)庫操作游標(biāo)
 cur=conn.cursor() 
 #插入數(shù)據(jù)
 datax=[
   ("DXD1","M","東小東1"),
   ("DXD2","F","東小東2")
 ]
 #返回影響行數(shù)
 rescoun=cur.executemany("insert into tb_dong(namex,sex,otherxxx) values(%s,%s,%s)",datax)
 print(rescoun)
 #進(jìn)行數(shù)據(jù)修改,必須提交事物
 conn.commit()
 print("------ 完成操作  -------")
 #關(guān)閉數(shù)據(jù)庫連接
 conn.close()

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

#返回影響行數(shù),如果值未進(jìn)行任何修改則返回0
rescoun=cur.execute("update tb_dong set namex='%s',sex='%s' where id>%d"%("dongdong","F",16))
print(rescoun)
#進(jìn)行數(shù)據(jù)修改,必須提交事物
conn.commit()

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

#返回影響行數(shù)
rescoun=cur.execute("delete from tb_dong where id>%d"%(16))
conn.commit() #提交事物

部分封裝:

 import pymysql 
 #建立數(shù)據(jù)庫連接
 conn=pymysql.connect(host="192.168.1.175",port=3306,user="root2",passwd="proot2",db="dongdb")
 #得到數(shù)據(jù)庫操作游標(biāo)
 cur=conn.cursor() 
 #刪除
 def dongdel(tablex,idx):
  try:
   rescoun = cur.execute("delete from %s where id=%d" % (tablex,idx))
   conn.commit() #提交事物
   return rescoun
  except Exception as e:
   print("刪除出現(xiàn)錯(cuò)誤", e)
   return e
 #插入
 def donginsert(tablex,listx):
 try:
   rescoun = cur.executemany("insert into "+tablex+"(namex,sex,otherxxx) values(%s,%s,%s)",listx)
   conn.commit()
   return rescoun
 except Exception as e:
    print("插入出現(xiàn)錯(cuò)誤",e)
    return e
 #查詢,參數(shù)為表名和id值
 def dongselect(tablex,idx=0):
  try:
   if idx==0:
     resdata = cur.execute("select * from %s"%tablex)
   else:
     resdata = cur.execute("select * from %s where id=%d" %(tablex,idx))
   return resdata
  except Exception as e:
    print("查詢出現(xiàn)錯(cuò)誤",e)
    return e
 #修改
 def dongupdate(tablex,idx,namex):
  try:
   rescoun = cur.execute("update %s set namex='%s' where id=%d" % (tablex,namex,idx))
   conn.commit()
   return rescoun
  except Exception as e:
    print("更新出現(xiàn)錯(cuò)誤", e)
    return e
 #刪除數(shù)據(jù)
 resdel=dongdel("tb_dong",6)
 print("刪除的條數(shù)為:",resdel)
 #插入數(shù)據(jù)
 datax=[
   ("dongxiaodong","M","東小東1")
 ]
 resinsert=donginsert("tb_dong",datax)
 print("插入的條數(shù)為:",resinsert)
 #修改數(shù)據(jù)
 resupdate=dongupdate("tb_dong",7,"dongxiaodong7")
 print("修改的條數(shù)為:",resupdate)
 #查詢數(shù)據(jù)
 resselect=dongselect("tb_dong",0)
 print("查詢的總條數(shù)為:",resselect)
 print("全部數(shù)據(jù)為:",cur.fetchall())
 #關(guān)閉數(shù)據(jù)庫連接
 conn.close()

感謝各位的閱讀!關(guān)于“Python中數(shù)據(jù)庫操作的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

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

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

AI