Python 數據庫編程(Mysql)

目錄

知識點

游標

提交事務

檢索數據

回滾

關閉

增刪改查

查詢

新增

修改

刪除

回滾的用法


知識點

游標

在Python中,數據庫游標(cursor)是用于執行SQL語句并檢索數據的對象。游標允許你在數據庫中移動并操作數據。在使用Python進行數據庫編程時,通常首先需要創建一個游標對象。這可以通過連接對象的cursor() 方法來實現

提交事務

在執行對數據庫進行更改的操作后,需要調用連接對象的 commit()?方法來提交這些更改,它會生成一個connect對象,同時函數的參數也是固定好的,以確保它們被永久保存在數據庫中

檢索數據

執行SQL查詢后,可以使用游標的 fetchall()?,fetchone()?fetchmany() 方法檢索查詢結果

fetchall()用于從數據庫游標中獲取所有的查詢結果行,并將其作為一個列表返回;通常用于對結果集不大的查詢或者在確定結果集不會占用太多內存的情況下使用
fetchone()用于從數據庫游標中獲取下一行的查詢結果;每次調用?fetchone(),游標會移動到結果集中的下一行,并返回該行的數據。如果到達結果集的末尾,fetchone()?將返回?None
fetchmany(size)用于從數據庫游標中獲取指定數量(size)的查詢結果行,并將其作為一個列表返回;可以通過指定?size?參數來控制每次獲取的行數,默認為游標的數組大小(arraysize)

回滾

在數據庫操作中,"回滾"(Rollback)是指取消或撤銷之前執行的一系列數據庫操作,將數據庫恢復到之前的狀態。在 Python 中進行數據庫查詢的回滾通常涉及使用事務(Transaction)來管理數據庫操作

關閉

關閉操作進行后,無法再進行操作,除非再次連接

# 關閉游標
cursor.close()# 關閉連接
conn.close()

這些是在Python中使用游標進行數據庫操作時的基本操作。游標允許你執行SQL語句、處理結果集,并確保在完成操作后正確提交事務和關閉連接


增刪改查

首先我們要導入mysql相關的包,如果下面有紅色下劃線的話,需要我們進行安裝,我這里是利用的PyCharm,點擊Alt+Enter鍵,選擇安裝Mysql-connector-python模塊

也可以通過pip install mysql-connector-python進行安裝

mysql.connector.connect()

這是 MySQL 官方提供的用于建立數據庫連接的函數。它接受一系列參數,包括數據庫主機名(host)、用戶名(user)、密碼(password)、以及要連接的數據庫(database)名稱

之后我們就可以利用上面學習的內容,進行對數據庫的增刪改查

查詢

import mysql.connectorconn = mysql.connector.connect(host='localhost',user='root',password='123456',database='zzz'
)# 創建一個游標
cursor = conn.cursor()cursor.execute('select * from users')
rows = cursor.fetchall()
for row in rows:print(row)cursor.close()
conn.close()

事先在zzz數據庫里面添加了一條數據,之后利用sql語句進行查詢,可以看到查詢成功了

新增

import mysql.connectorconn = mysql.connector.connect(host='localhost',user='root',password='123456',database='zzz'
)cursor = conn.cursor()# 插入語句
cursor.execute('insert into users(name,age,email) values(%s,%s,%s)', ("橙子味熱果汁", 20, "12345678910"))# 提交數據的更改
conn.commit()cursor.close()
conn.close()

可以看到我們用sql語句新增了一條id為2的數據

修改

import mysql.connectorconn = mysql.connector.connect(host='localhost',user='root',password='123456',database='zzz'
)cursor = conn.cursor()# 更改數據
cursor.execute("update users set age = 18 where id = 1")conn.commit()cursor.close()
conn.close()

可以看到,我們id為 1 的 age 中的數據由原來的20修改為了18

刪除

import mysql.connectorconn = mysql.connector.connect(host='localhost',user='root',password='123456',database='zzz'
)cursor = conn.cursor()cursor.execute("delete from users where id = 2")conn.commit()cursor.close()
conn.close()

可以看到剛才我們新建id為2的數據被刪除掉了

回滾的用法

import mysql.connectortry:# 連接到 MySQL 數據庫conn = mysql.connector.connect(host='localhost',user='root',password='123456',database='zzz')# 創建一個游標對象cursor = conn.cursor()# 開始事務conn.start_transaction()# 執行一系列數據庫操作cursor.execute("INSERT INTO users (name, age, email) VALUES ('John', 30, '666')")cursor.execute("UPDATE users SET age = 31 WHERE name = 'John'")# 模擬發生錯誤,例如除零錯誤# 由于錯誤發生在事務中,因此可以回滾事務并撤銷之前的操作1 / 0# 提交事務(如果沒有發生錯誤)conn.commit()except Exception as e:print("An error occurred:", e)# 回滾事務以撤銷之前的操作conn.rollback()finally:# 關閉游標和連接cursor.close()conn.close()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/19561.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19561.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/19561.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

請說明Vue的filter的理解與用法

Vue.js 的 filter 是一種特殊的功能,允許你在mustache插值 ({{ }}) 或 v-bind 表達式中預處理文本。然而,需要注意的是,從 Vue 2.x 開始,filter 已被標記為廢棄,并且在 Vue 3.x 中已完全移除。盡管如此,了解…

力扣Hot100-有效的括號(棧stack)

給定一個只包括 (,),{,},[,] 的字符串 s ,判斷字符串是否有效。 有效字符串需滿足: 左括號必須用相同類型的右括號閉合。左括號必須以正確的順序閉合。每個右括號都有一個對應的相同類型的左括…

【C++】哈希(2萬字)

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 目錄 前言 unordered系列關聯式容器 unordered_map unordered_map的文檔介紹 unordered_map的接口說明 unordered_set 底層結構 哈希概念 哈希沖突 哈希函數 哈希…

Whisper-AT:抗噪語音識別模型(Whisper)實現通用音頻事件標記(Audio Tagger)

1.概述: Whisper-AT 是建立在 Whisper 自動語音識別(ASR)模型基礎上的一個模型。Whisper 模型使用了一個包含 68 萬小時標注語音的大規模語料庫進行訓練,這些語料是在各種不同條件下錄制的。Whisper 模型以其在現實背景噪音(如音樂…

探究 Meme 的金融與社交屬性

原文標題:《A Social and Financial Study of Memecoins》撰文:Andrew Hong編譯:Chris,Techub News 每一個市場周期都伴隨著 Meme 代幣的出現。一群人圍繞著某個 Meme 集結起來,暫時抬高了某個資產的價格(從…

Github Copilot登錄賬號,完美支持chat

Github Copilot 代碼補全等功能,提高寫代碼的效率 https://web.52shizhan.cn/activity/copilot 登錄授權后,已經可以使用,完美。如圖

flutter 自動生成靜態資源的引用

flutter_gen庫的使用 第一步、項目yarml中dev_dependencies 新增一下flutter_gen_runner 和build_runner dev_dependencies:build_runner: nullflutter_gen_runner: null # flutter packages pub run build_runner build 第二步、新增配置信息 和(dev_dependencies 同級的) …

大話設計模式學習筆記

目錄 工廠模式策略模式備忘錄模式(快照模式)代理模式單例模式迭代器模式訪問者模式觀察者模式解釋器模式命令模式模板方法模式橋接模式適配器模式外觀模式享元模式原型模式責任鏈模式中介者模式裝飾模式狀態模式 工廠模式 策略模式 核心:封裝…

03.k8s常用的資源

3.k8s常用的資源 3.1 創建pod資源 k8s yaml的主要組成 apiVersion: v1 api版本 kind: pod 資源類型 metadata: 屬性 spec: 詳細上傳nginx鏡像文件,并且上傳私有倉庫里面 k8s_pod.yaml apiVersion: v1 kind: Pod metadata:name: nginxlabels:app: we…

prometheus 標簽選擇器 正則表達式 = 、=~

Prometheus expression是一種用于查詢和操作Prometheus時間序列數據的查詢語言。它具有一套豐富的函數和運算符,可以用于提取、聚合和轉換時間序列數據。 正則表達式在Prometheus expresion中也被廣泛使用,可以用于匹配和過濾時間序列。 Prometheus ex…

Tuxera Ntfs For Mac 2023的具體使用方法

大家都知道由于操作系統的原因,在蘋果電腦上不能夠讀寫NTFS磁盤,但是,今天小編帶來的這款tuxera ntfs 2024 mac 破解版,完美的解決了這個問題。這是一款在macOS平臺上使用的磁盤讀寫軟件,能夠實現蘋果Mac OS X系統讀寫…

CSS實驗性功能及CSS4特性

CSS4目前仍然是一個寬泛的概念,因為CSS的發展通常是通過一系列逐步完善的模塊來進行的,而不是一次性推出一個全新的“第四代”。許多所謂的“CSS4”特性實際上是正在開發或已經草案階段的CSS模塊,它們可能在未來的CSS規范中被正式采納。 選擇器4: :is() 和 :where() 偽類允…

Docker的數據管理(數據卷+數據卷容器)

文章目錄 一、Docker的數據管理1、概述2、主要的技術(三種數據掛載方式)2.1、數據卷(Volumes)2.2、綁定掛載(Bind mounts)2.3、tmpfs掛載(Tmpfs mounts)2.4、之間的關系(…

偏微分方程算法之二階雙曲型方程交替方向隱格式(變形一)

目錄 一、研究目標 二、變形 三、算例實現 四、計算結果 本專欄介紹了二階雙曲型偏微分方程的交替方向隱格式的介紹和推導(鏈接如下),本節將進一步研究二維雙曲型方程初邊值問題其它的交替方向隱格式。

示例丨醫學、醫藥類查新點填寫參考案例

根據《科技查新技術規范》GB/T 32003-2015,科學技術要點是必須要包含查新點內容的,而查新點就是科學技術要點中能夠體現查新項目新穎性和技術進步的技術特征點。 在日常查新工作的接待中,我們發現醫學、醫藥類查新合同上查新點的書寫&#x…

計算機tcp/ip網絡通信過程

目錄 (1)同一網段兩臺計算機通信過程 (2)不同網段的兩臺計算機通信過程 (3)目的主機收到數據包后的解包過程 (1)同一網段兩臺計算機通信過程 如果兩臺計算機在同一個局域網中的同…

算法(九)希爾排序

文章目錄 希爾排序簡介代碼實現 希爾排序簡介 希爾排序(shell sort)選定一個小于N(數列長度)的整數gap作為第一增量,然后將所有距離為gap的元素分成一組,然后對每一組的元素進行插入排序。然后再取一個比前…

(1+X)Java程序設計高級(一)

Throwable:異常的基類,所有異常都繼承自 java.lang.Throwable 類,Throwable 類有兩個直接子類:Error 類和 Exception 類。Error:是 Java 應用程序本身無法恢復的嚴重錯誤,應用程序不需要捕獲、處理這些嚴重…

7.1 Go 錯誤的概念

💝💝💝歡迎蒞臨我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內容和知識,也可以暢所欲言、分享您的想法和見解。 推薦:「stormsha的主頁」…

【SQL每日一練】查詢二進制樹節點

文章目錄 題目一、題析二、題解1.MySQL/SqlServer2.Oracle 題目 有一個表BST,其中包含兩列:N和P,其中N表示二進制樹中節點的值,P是N的父級。 編寫一個查詢,以查找按節點值排序的二進制樹的節點類型。為每個節點輸出以…