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

Python 3.x 連接數(shù)據(jù)庫示例(pymysql 方式)

 更新時間:2017年01月19日 11:08:02   作者:woider  
這篇文章主要介紹了Python 3.x 連接數(shù)據(jù)庫示例(pymysql 方式),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

由于 MySQLdb 模塊還不支持 Python3.x,所以 Python3.x 如果想連接MySQL需要安裝 pymysql 模塊。

pymysql 模塊可以通過 pip 安裝。但如果你使用的是 pycharm IDE,則可以使用 project python 安裝第三方模塊。

[File] >> [settings] >> [Project: python] >> [Project Interpreter] >> [Install按鈕]

由于Python統(tǒng)一了數(shù)據(jù)庫連接的接口,所以 pymysql 和 MySQLdb 在使用方式上是類似的:

pymysql.Connect()參數(shù)說明

  • host(str):      MySQL服務(wù)器地址
  • port(int):      MySQL服務(wù)器端口號
  • user(str):      用戶名
  • passwd(str):    密碼
  • db(str):        數(shù)據(jù)庫名稱
  • charset(str):   連接編碼

connection對象支持的方法

  • cursor()        使用該連接創(chuàng)建并返回游標(biāo)
  • commit()        提交當(dāng)前事務(wù)
  • rollback()      回滾當(dāng)前事務(wù)
  • close()         關(guān)閉連接

cursor對象支持的方法

  • execute(op)     執(zhí)行一個數(shù)據(jù)庫的查詢命令
  • fetchone()      取得結(jié)果集的下一行
  • fetchmany(size) 獲取結(jié)果集的下幾行
  • fetchall()      獲取結(jié)果集中的所有行
  • rowcount()      返回數(shù)據(jù)條數(shù)或影響行數(shù)
  • close()         關(guān)閉游標(biāo)對象

==================MySQL===================

首先在連接數(shù)據(jù)庫之前,先創(chuàng)建一個交易表,方便測試 pymysql 的功能:

DROP TABLE IF EXISTS `trade`;

CREATE TABLE `trade` (
 `id` int(4) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(6) NOT NULL COMMENT '用戶真實姓名',
 `account` varchar(11) NOT NULL COMMENT '銀行儲蓄賬號',
 `saving` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '賬戶儲蓄金額',
 `expend` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '賬戶支出總計',
 `income` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '賬戶收入總計',
 PRIMARY KEY (`id`),
 UNIQUE KEY `name_UNIQUE` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
INSERT INTO `trade` VALUES (1,'喬布斯','18012345678',0.00,0.00,0.00);

==================Python===================

使用Python腳本實現(xiàn)增刪改查和事務(wù)處理,源碼如下:

import pymysql.cursors

# 連接數(shù)據(jù)庫
connect = pymysql.Connect(
  host='localhost',
  port=3310,
  user='woider',
  passwd='3243',
  db='python',
  charset='utf8'
)

# 獲取游標(biāo)
cursor = connect.cursor()

# 插入數(shù)據(jù)
sql = "INSERT INTO trade (name, account, saving) VALUES ( '%s', '%s', %.2f )"
data = ('雷軍', '13512345678', 10000)
cursor.execute(sql % data)
connect.commit()
print('成功插入', cursor.rowcount, '條數(shù)據(jù)')

# 修改數(shù)據(jù)
sql = "UPDATE trade SET saving = %.2f WHERE account = '%s' "
data = (8888, '13512345678')
cursor.execute(sql % data)
connect.commit()
print('成功修改', cursor.rowcount, '條數(shù)據(jù)')

# 查詢數(shù)據(jù)
sql = "SELECT name,saving FROM trade WHERE account = '%s' "
data = ('13512345678',)
cursor.execute(sql % data)
for row in cursor.fetchall():
  print("Name:%s\tSaving:%.2f" % row)
print('共查找出', cursor.rowcount, '條數(shù)據(jù)')

# 刪除數(shù)據(jù)
sql = "DELETE FROM trade WHERE account = '%s' LIMIT %d"
data = ('13512345678', 1)
cursor.execute(sql % data)
connect.commit()
print('成功刪除', cursor.rowcount, '條數(shù)據(jù)')

# 事務(wù)處理
sql_1 = "UPDATE trade SET saving = saving + 1000 WHERE account = '18012345678' "
sql_2 = "UPDATE trade SET expend = expend + 1000 WHERE account = '18012345678' "
sql_3 = "UPDATE trade SET income = income + 2000 WHERE account = '18012345678' "

try:
  cursor.execute(sql_1) # 儲蓄增加1000
  cursor.execute(sql_2) # 支出增加1000
  cursor.execute(sql_3) # 收入增加2000
except Exception as e:
  connect.rollback() # 事務(wù)回滾
  print('事務(wù)處理失敗', e)
else:
  connect.commit() # 事務(wù)提交
  print('事務(wù)處理成功', cursor.rowcount)

# 關(guān)閉連接
cursor.close()
connect.close()

==================測試結(jié)果===================

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決django前后端分離csrf驗證的問題

    解決django前后端分離csrf驗證的問題

    今天小編就為大家分享一篇解決django前后端分離csrf驗證的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Python求兩個字符串最長公共子序列代碼實例

    Python求兩個字符串最長公共子序列代碼實例

    這篇文章主要介紹了Python求兩個字符串最長公共子序列代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • 基于OpenCV目標(biāo)跟蹤實現(xiàn)人員計數(shù)器

    基于OpenCV目標(biāo)跟蹤實現(xiàn)人員計數(shù)器

    這篇文章主要介紹了如何利用Python OpenCV這兩者來創(chuàng)建更準(zhǔn)確的人員計數(shù)器,文中的示例代碼講解詳細,感興趣的小伙伴快來跟隨小編學(xué)習(xí)一下吧
    2022-03-03
  • Pandas實現(xiàn)dataframe和np.array的相互轉(zhuǎn)換

    Pandas實現(xiàn)dataframe和np.array的相互轉(zhuǎn)換

    今天小編就為大家分享一篇Pandas實現(xiàn)dataframe和np.array的相互轉(zhuǎn)換,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python實現(xiàn)一維插值方法的示例代碼

    Python實現(xiàn)一維插值方法的示例代碼

    插值主要用于物理學(xué)數(shù)學(xué)中,逼近某一確定值的方法,是通過已知的離散數(shù)據(jù)求未知數(shù)據(jù)的方法。本文將利用Python實現(xiàn)一維插值方法,需要的可以參考一下
    2022-04-04
  • Python調(diào)用VBA實現(xiàn)保留原始樣式的表格合并方法

    Python調(diào)用VBA實現(xiàn)保留原始樣式的表格合并方法

    本文主要介紹了Python調(diào)用VBA實現(xiàn)保留原始樣式的表格合并方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • python基礎(chǔ)之類型轉(zhuǎn)換函數(shù)

    python基礎(chǔ)之類型轉(zhuǎn)換函數(shù)

    這篇文章主要介紹了python類型轉(zhuǎn)換函數(shù),實例分析了Python中返回一個返回值與多個返回值的方法,需要的朋友可以參考下
    2021-10-10
  • 使用wxPython創(chuàng)建一個文件夾結(jié)構(gòu)生成器

    使用wxPython創(chuàng)建一個文件夾結(jié)構(gòu)生成器

    這篇文章主要為大家詳細介紹了如何利用?wxPython?來創(chuàng)建一個文件夾結(jié)構(gòu)生成器,幫助大家自動化地創(chuàng)建文件夾和文件結(jié)構(gòu),有需要的可以了解下
    2024-11-11
  • Python中字典及遍歷常用函數(shù)的使用詳解

    Python中字典及遍歷常用函數(shù)的使用詳解

    這篇文章主要為大家介紹了Python中字典有關(guān)的常見函數(shù)的使用方法,以及字典遍歷的方法。文中通過示例代碼為我們進行了詳細介紹,對學(xué)習(xí)Python字典有一定幫助,需要的可以參考一下
    2022-06-06
  • keras 自定義loss層+接受輸入實例

    keras 自定義loss層+接受輸入實例

    這篇文章主要介紹了keras 自定義loss層+接受輸入實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06

最新評論

汶上县| 绩溪县| 花莲县| 资溪县| 龙陵县| 广州市| 丹棱县| 威宁| 靖州| 衡阳县| 慈溪市| 小金县| 襄樊市| 桐城市| 北京市| 乐安县| 民县| 崇州市| 广河县| 鲁甸县| 化德县| 洛川县| 乐安县| 那坡县| 新民市| 富锦市| 通山县| 商水县| 昌黎县| 林州市| 安顺市| 芒康县| 郁南县| 来安县| 什邡市| 正镶白旗| 福州市| 鄂尔多斯市| 通江县| 绿春县| 博白县|