最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pymysql實(shí)現(xiàn)增刪改查的操作指南(python)

 更新時(shí)間:2021年05月14日 09:21:23   作者:客官不愛(ài)喝酒  
python中可以使用pymysql來(lái)MySQL數(shù)據(jù)庫(kù)的連接,并實(shí)現(xiàn)數(shù)據(jù)庫(kù)的各種操作,這篇文章主要給大家介紹了關(guān)于pymsql實(shí)現(xiàn)增刪改查的相關(guān)資料,需要的朋友可以參考下

1.安裝pymysql:pip install pymysql (在命令行窗口中執(zhí)行)

2.卸載pymysql:pip uninstall pymysql (在命令行窗口中執(zhí)行)

數(shù)據(jù)庫(kù)的連接

需要注意的是port是不用引號(hào)括起來(lái) charset是utf8不是utf-8

# 獲取數(shù)據(jù)庫(kù)連接對(duì)象
connection = pymysql.connect(host='localhost', port=3306, user='root', passwd='2732195202', db='book', charset='utf8')
# 獲取一個(gè)游標(biāo)
driver = connection.cursor()
# 執(zhí)行一條sql
driver.execute("select version()")
# 獲取執(zhí)行sql的返回值
resultData=driver.fetchall()
print(resultData)

# 關(guān)閉數(shù)據(jù)庫(kù)
connection.close()

創(chuàng)建數(shù)據(jù)庫(kù)表

import pymysql

#獲取數(shù)據(jù)庫(kù)連接對(duì)象
connection = pymysql.connect(host='localhost', port=3306, user='root', passwd='2732195202', db='book', charset='utf8')
#獲取一個(gè)游標(biāo)
driver=connection.cursor()
# 如果該數(shù)據(jù)庫(kù)存在就刪除
driver.execute("drop table if exists t_emp ")
# 定義sql語(yǔ)句
sql=""" CREATE TABLE `t_emp` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
  `department` varchar(20) DEFAULT NULL COMMENT '部門',
  `salary` decimal(10,2) DEFAULT NULL COMMENT '工資',
  `age` int(11) DEFAULT NULL COMMENT '年齡',
  `sex` varchar(4) DEFAULT NULL COMMENT '性別',
  PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8; 
    
"""
# 執(zhí)行sql
driver.execute(sql)

# 關(guān)閉數(shù)據(jù)連接
connection.close()

向數(shù)據(jù)庫(kù)中添加數(shù)據(jù)

1.需要注意的是規(guī)范sql,該寫的字段都寫上,不使用默認(rèn)對(duì)應(yīng)

2.提交事務(wù)的對(duì)象是數(shù)據(jù)庫(kù)連接對(duì)象,而不是游標(biāo)對(duì)象

3.pycharm連接mysql數(shù)據(jù)時(shí),如果連接驅(qū)動(dòng)是高版本,需要加上時(shí)區(qū),jdbc:mysql://localhost/book?serverTimezone=GMT%2B8

4.如果主鍵是自動(dòng)遞增,則不能手動(dòng)指定值,不能寫該字段,讓其自增長(zhǎng)

# 獲取數(shù)據(jù)庫(kù)連接對(duì)象
connection=pymysql.connect(host='localhost',port=3306,user='root',passwd='2732195202',db='book',charset='utf8')

# 獲取一個(gè)游標(biāo)
driver=connection.cursor()

# 定義sql語(yǔ)句
sql=""" insert into t_emp(name,department,salary,age,sex)
        values("tom","開(kāi)發(fā)部",8000,25,"男"), ("tom","開(kāi)發(fā)部",8000,25,"男")
 
 """

# 嘗試捕捉錯(cuò)誤
try:
    # 執(zhí)行SQL,并返回收影響行數(shù)
    result=driver.execute(sql)
    # 提交事務(wù)
    connection.commit()
    print("sql(insert)->error")
except:
    # 如果發(fā)生錯(cuò)誤 則回滾事務(wù)
    print("sql(insert)->error")
    driver.rollback()
# 關(guān)閉數(shù)據(jù)庫(kù)連接
connection.close()


修改表中的數(shù)據(jù)

注意點(diǎn):在操作數(shù)據(jù)庫(kù)之前,需要確認(rèn)是否獲取連接數(shù)據(jù)庫(kù)成功,并且選中了數(shù)庫(kù)

2.卸載第三方庫(kù):pip uninstall pymysql

#獲取數(shù)據(jù)庫(kù)連接對(duì)象 autocommit=True:設(shè)置數(shù)據(jù)庫(kù)自動(dòng)提交
connection=pymysql.connect(host="localhost",port=3306,user='root',passwd='2732195202',db='book',charset='utf8',autocommit=True)
# 獲取游標(biāo)對(duì)象
driver=connection.cursor()
# 定義sql
sql="update t_emp set salary=%s,name=%s where id=%s;"
# 如果sql錯(cuò)誤就執(zhí)行回滾操作,成功就提交
try:
    # 執(zhí)行sql,并且返回影響的行數(shù)
    result=driver.execute(sql,[6000,"admin",19])
    connection.commit()
    print("sql(update)->success")
except:
    print("sql(update)->error")
    connection.rollback()

# 關(guān)閉數(shù)據(jù)庫(kù)連接對(duì)象
connection.close()

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

1.項(xiàng)目中的.py文件不能和python庫(kù)中的文件進(jìn)行沖突,否則會(huì)出現(xiàn)異常

# 獲取數(shù)據(jù)庫(kù)連接對(duì)象
connection=pymysql.connect(host='localhost',port=3306,user='root',passwd='2732195202',db='book',charset='utf8')
# 獲取一個(gè)游標(biāo)對(duì)象
driver=connection.cursor()
#定義sql
sql="select id, name, department, salary, age, sex from t_emp where id>%s and sex=%s"

# 只能獲取一次,獲取多次的時(shí)候會(huì)獲取到null 如果是多個(gè)參數(shù),需要傳遞一個(gè)元組
try:
    driver.execute(sql,(1,"女"))
    # 獲取所有的查詢結(jié)果 返回一個(gè)元組
    resultAll=driver.fetchall()
    print("resultAll:", resultAll)
    # 獲取2條數(shù)據(jù)
    resultTwo=driver.fetchmany(2)
    print("resultTwo:", resultTwo)
    # 獲取一條數(shù)據(jù)
    resultOne=driver.fetchone()
    print("resultThree:", resultOne)

    print("sql(select)->success")
except:
    connection.rollback()
    print("sql(select)->error")

# 關(guān)閉數(shù)據(jù)庫(kù)連接
connection.close()

刪除表中的記錄

import  pymysql

# 獲取數(shù)據(jù)庫(kù)連接對(duì)象
connection = pymysql.connect(host='localhost', port=3306, user='root', passwd='2732195202', db='book', charset='utf8')
# 獲取一個(gè)游標(biāo)
driver = connection.cursor()
# 定義sql
sql="delete from t_emp where id=%s"

try:
    # 執(zhí)行一條sql
    driver.execute(sql, (21))
    # 提交事務(wù)
    connection.commit()
    print("sql(delete)->success")
except  Exception as e:
    # 回滾事務(wù)
    connection.rollback()
    print("sql(delete)->error")
    print(e)

#關(guān)閉數(shù)據(jù)庫(kù)連接
connection.close()

事務(wù)操作

提交事務(wù): connection.commit()

回滾事務(wù): connection.rollback()

總結(jié)

到此這篇關(guān)于pymsql實(shí)現(xiàn)增刪改查(python)的文章就介紹到這了,更多相關(guān)pymsql增刪改查內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Pandas 類型轉(zhuǎn)換astype()的實(shí)現(xiàn)

    Pandas 類型轉(zhuǎn)換astype()的實(shí)現(xiàn)

    本文主要介紹了Pandas 類型轉(zhuǎn)換astype()的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Python中Scipy庫(kù)在信號(hào)處理中的應(yīng)用詳解

    Python中Scipy庫(kù)在信號(hào)處理中的應(yīng)用詳解

    信號(hào)處理作為數(shù)字信號(hào)處理領(lǐng)域的關(guān)鍵技術(shù),涵蓋了從信號(hào)獲取、傳輸、存儲(chǔ)到最終應(yīng)用的一系列處理步驟,在這篇博客中,我們將深入探討Python中Scipy庫(kù)在信號(hào)處理領(lǐng)域的應(yīng)用,需要的朋友可以參考下
    2023-12-12
  • Python爬蟲(chóng)之正則表達(dá)式基本用法實(shí)例分析

    Python爬蟲(chóng)之正則表達(dá)式基本用法實(shí)例分析

    這篇文章主要介紹了Python爬蟲(chóng)之正則表達(dá)式基本用法,結(jié)合實(shí)例形式分析了Python正則表達(dá)式的基本概念、函數(shù)語(yǔ)法、相關(guān)使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2018-08-08
  • python更加靈活的Logger日志詳解

    python更加靈活的Logger日志詳解

    這篇文章主要介紹了python Logger日志,用到的4個(gè)類,針對(duì)每個(gè)知識(shí)點(diǎn)給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Python程序員面試題 你必須提前準(zhǔn)備!(答案及解析)

    Python程序員面試題 你必須提前準(zhǔn)備!(答案及解析)

    這篇文章主要為大家解析了你必須提前準(zhǔn)備的Python程序員面試題答案,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Python數(shù)據(jù)結(jié)構(gòu)與算法的雙端隊(duì)列詳解

    Python數(shù)據(jù)結(jié)構(gòu)與算法的雙端隊(duì)列詳解

    這篇文章主要為大家詳細(xì)介紹了Python的雙端隊(duì)列,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • Python使用pip安裝Matplotlib的方法詳解

    Python使用pip安裝Matplotlib的方法詳解

    在網(wǎng)上看見(jiàn)許多matplotlib的安裝教程都是比較復(fù)雜,需要配置許多環(huán)境,對(duì)于電腦基礎(chǔ)不好的人來(lái)說(shuō)可是一件頭疼的事情,今天我介紹一個(gè)簡(jiǎn)單的安裝方法,下面這篇文章主要給大家介紹了關(guān)于Python使用pip安裝Matplotlib的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Python 詞典(Dict) 加載與保存示例

    Python 詞典(Dict) 加載與保存示例

    今天小編就為大家分享一篇Python 詞典(Dict) 加載與保存示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • 四個(gè)Python常用OCR庫(kù)的用法詳解

    四個(gè)Python常用OCR庫(kù)的用法詳解

    在接口自動(dòng)化工作中,經(jīng)常需要處理文字識(shí)別的任務(wù),而OCR庫(kù)能夠幫助我們將圖像中的文字提取出來(lái),所以本文為大家整理了四個(gè)常用的OCR庫(kù)以及它們的用法,需要的可以參考下
    2023-09-09
  • 通過(guò)實(shí)例解析python描述符原理作用

    通過(guò)實(shí)例解析python描述符原理作用

    這篇文章主要介紹了通過(guò)實(shí)例解析python描述符原理作用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01

最新評(píng)論

小金县| 平潭县| 惠州市| 绥芬河市| 鄯善县| 青海省| 沧州市| 漳浦县| 永昌县| 调兵山市| 尼勒克县| 广灵县| 望城县| 比如县| 武乡县| 宿州市| 临澧县| 威宁| 嘉定区| 筠连县| 壤塘县| 邵阳市| 武定县| 会理县| 昌吉市| 互助| 江陵县| 遂溪县| 台山市| 任丘市| 自治县| 百色市| 安国市| 乐都县| 明水县| 维西| 宁德市| 左云县| 福清市| 游戏| 澄江县|