濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > pymysql實(shí)現(xiàn)增刪改查的操作指南(python)

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

熱門(mén)標(biāo)簽:廣告地圖標(biāo)注app 海南400電話如何申請(qǐng) 騰訊外呼線路 激戰(zhàn)2地圖標(biāo)注 陜西金融外呼系統(tǒng) 唐山智能外呼系統(tǒng)一般多少錢(qián) 白銀外呼系統(tǒng) 公司電話機(jī)器人 哈爾濱ai外呼系統(tǒng)定制

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 '部門(mén)',
  `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,該寫(xiě)的字段都寫(xiě)上,不使用默認(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)指定值,不能寫(xiě)該字段,讓其自增長(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)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 利用python中pymysql操作MySQL數(shù)據(jù)庫(kù)的新手指南
  • Python接口自動(dòng)化淺析pymysql數(shù)據(jù)庫(kù)操作流程
  • python使用pymysql模塊操作MySQL
  • python 基于PYMYSQL使用MYSQL數(shù)據(jù)庫(kù)
  • python pymysql庫(kù)的常用操作
  • Python pymysql模塊安裝并操作過(guò)程解析
  • python數(shù)據(jù)庫(kù)操作mysql:pymysql、sqlalchemy常見(jiàn)用法詳解
  • 在python中使用pymysql往mysql數(shù)據(jù)庫(kù)中插入(insert)數(shù)據(jù)實(shí)例
  • Python使用pymysql模塊操作mysql增刪改查實(shí)例分析
  • python之pymysql模塊簡(jiǎn)單應(yīng)用示例代碼
  • wxpython+pymysql實(shí)現(xiàn)用戶登陸功能
  • 在Python中使用MySQL--PyMySQL的基本使用方法
  • Python 中使用 PyMySQL模塊操作數(shù)據(jù)庫(kù)的方法
  • 使用python連接mysql數(shù)據(jù)庫(kù)之pymysql模塊的使用
  • Python pymysql操作MySQL詳細(xì)

標(biāo)簽:惠州 益陽(yáng) 常德 黔西 上海 鷹潭 黑龍江 四川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《pymysql實(shí)現(xiàn)增刪改查的操作指南(python)》,本文關(guān)鍵詞  pymysql,實(shí)現(xiàn),增,刪改,查,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《pymysql實(shí)現(xiàn)增刪改查的操作指南(python)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于pymysql實(shí)現(xiàn)增刪改查的操作指南(python)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    吉安县| 康平县| 刚察县| 新干县| 十堰市| 怀安县| 金山区| 呼玛县| 甘德县| 自治县| 建昌县| SHOW| 堆龙德庆县| 雷山县| 延长县| 卓尼县| 尤溪县| 都匀市| 丰原市| 桂林市| 洛隆县| 武夷山市| 丹江口市| 凤凰县| 普格县| 晋江市| 江安县| 五河县| 明光市| 永吉县| 安图县| 阿巴嘎旗| 普陀区| 红桥区| 万源市| 东乡族自治县| 鄯善县| 元朗区| 昌宁县| 和硕县| 张家港市|