Python 3 與 MySQL 數據庫連接:mysql-connector 模塊詳解

Python 3 與 MySQL 數據庫連接:mysql-connector 模塊詳解

概述

在Python 3中,與MySQL數據庫進行交互是一個常見的需求。mysql-connector是一個流行的Python模塊,它提供了與MySQL數據庫連接和交互的接口。本文將詳細介紹mysql-connector模塊的安裝、使用方法以及一些高級特性。

安裝

首先,確保你的Python環境中已經安裝了mysql-connector模塊。可以使用以下命令進行安裝:

pip install mysql-connector-python

連接MySQL數據庫

使用mysql-connector模塊連接到MySQL數據庫非常簡單。以下是一個基本的示例:

import mysql.connector# 創建連接對象
conn = mysql.connector.connect(host='localhost',        # 數據庫主機地址user='yourusername',     # 數據庫用戶名passwd='yourpassword',   # 數據庫密碼database='yourdatabase'  # 數據庫名
)# 創建一個游標對象
cursor = conn.cursor()# 執行查詢
cursor.execute("SELECT DATABASE()")# 獲取并打印結果
data = cursor.fetchone()
print("你連接到了:", data[0])# 關閉游標和連接
cursor.close()
conn.close()

創建數據庫和表

mysql-connector模塊也支持創建數據庫和表。以下是一個示例:

import mysql.connector# 創建連接對象
conn = mysql.connector.connect(host='localhost',user='yourusername',passwd='yourpassword',database='yourdatabase'
)# 創建一個游標對象
cursor = conn.cursor()# 創建數據庫
cursor.execute("CREATE DATABASE IF NOT EXISTS mynewdb")# 使用新創建的數據庫
cursor.execute("USE mynewdb")# 創建表
cursor.execute("""
CREATE TABLE IF NOT EXISTS employees (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100),email VARCHAR(100),age INT
)
""")# 提交事務
conn.commit()# 關閉游標和連接
cursor.close()
conn.close()

插入、更新和刪除數據

使用mysql-connector模塊進行數據操作也很直觀。以下是一個插入、更新和刪除數據的示例:

import mysql.connector# 創建連接對象
conn = mysql.connector.connect(host='localhost',user='yourusername',passwd='yourpassword',database='mynewdb'
)# 創建一個游標對象
cursor = conn.cursor()# 插入數據
cursor.execute("""
INSERT INTO employees (name, email, age) 
VALUES (%s, %s, %s)
""", ("John Doe", "john.doe@example.com", 25))# 提交事務
conn.commit()# 更新數據
cursor.execute("""
UPDATE employees 
SET age = %s 
WHERE name = %s
""", (30, "John Doe"))# 刪除數據
cursor.execute("""
DELETE FROM employees 
WHERE name = %s
""", ("John Doe",))# 提交事務
conn.commit()# 關閉游標和連接
cursor.close()
conn.close()

高級特性

mysql-connector模塊還提供了一些高級特性,例如事務管理、存儲過程調用和自定義函數等。以下是一個示例:

import mysql.connector# 創建連接對象
conn = mysql.connector.connect(host='localhost',user='yourusername',passwd='yourpassword',database='mynewdb'
)# 創建一個游標對象
cursor = conn.cursor()# 開啟事務
conn.start_transaction()# 調用存儲過程
cursor.callproc('get_employee_count', args=())# 獲取結果
cursor.execute("SELECT @employee_count")
for (employee_count,) in cursor:print("Employee Count: ", employee_count)# 提交事務
conn.commit()# 關閉游標和連接
cursor.close()
conn.close()

總結

mysql-connector模塊是Python 3中與MySQL數據庫交互的一個強大工具。它提供了豐富的功能,可以幫助你輕松地連接、查詢、操作和優化MySQL數據庫。通過本文的介紹,你應該對mysql-connector模塊有了基本的了解,并能夠開始在你的Python應用程序中使用它。

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

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

相關文章

SQL:CASE WHEN使用詳解

文章目錄 1. 數據轉換與映射2. 動態條件篩選3. 多條件分組統計4. 數據排名與分級5. 處理空值與默認值6. 動態排序 CASE WHEN 語句在 SQL 中是一個非常強大且靈活的工具,除了常規的條件判斷外,還有很多巧妙的用法,以下為你詳細總結&#xff1a…

【字符設備驅動開發–IMX6ULL】(二)Linux 設備號

【字符設備驅動開發–IMX6ULL】(二)Linux 設備號 文章目錄 【字符設備驅動開發–IMX6ULL】(二)Linux 設備號1 設備號的組成2.設備號的分配 1 設備號的組成 為了方便管理,Linux 中每個設備都有一個設備號,設…

【字符設備驅動開發–IMX6ULL】(一)簡介

【字符設備驅動開發–IMX6ULL】(一)簡介 一、Linux驅動與裸機開發區別 1.裸機驅動開發回顧 ? 1、底層,跟寄存器打交道,有些MCU提供了庫。 spi.c:主機驅動(換成任何一個設備之后只需要調用此文件里面的…

YOLOv8+ Deepsort+Pyqt5車速檢測系統

該系統通過YOLOv8進行高效的目標檢測與分割,結合DeepSORT算法完成目標的實時跟蹤,并利用GPU加速技術提升處理速度。系統支持模塊化設計,可導入其他權重文件以適應不同場景需求,同時提供自定義配置選項,如顯示標簽和保存…

藍橋杯嵌入式學習筆記

用博客來記錄一下參加藍橋杯嵌入式第十六屆省賽的學習經歷 工具環境準備cubemx配置外部高速時鐘使能設置串口時鐘配置項目配置 keil配置燒錄方式注意代碼規范頭文件配置 模塊ledcubemx配置keil代碼實現點亮一只燈實現具體操作的燈,以及點亮還是熄滅 按鍵cubemx配置k…

ARCGIS PRO SDK VB2022 圖層要素類類型判斷

arcgis pro 常見要素類類型有以下幾種: FeatureLayer ——要素圖層(矢量數據) RasterLayer ——柵格圖層 MapImageLayer ——地圖圖像圖層 VectorTileLayer ——矢量切片圖層 SceneLayer …

【hadoop】遠程調試環境

根據上一節,我們已經安裝完成hadoop偽分布式環境 hadoop集群環境配置_jdk1.8 441-CSDN博客 還沒安裝的小伙伴可以看看這個帖子 這一節我們要實現使用vscode進行遠程連接,并且完成java配置與測試 目錄 vscode 配置遠程 安裝java插件 新建java項目 …

Java版Manus實現來了,Spring AI Alibaba發布開源OpenManus實現

此次官方發布的 Spring AI Alibaba OpenManus 實現,包含完整的多智能體任務規劃、思考與執行流程,可以讓開發者體驗 Java 版本的多智能體效果。它能夠根據用戶的問題進行分析,操作瀏覽器,執行代碼等來完成復雜任務等。 項目源碼及…

【Linux網絡與網絡編程】02.初識Socket編程

1. 數據傳輸的目的 前一篇文章中我們講解了網絡傳輸的流程,那么網絡傳輸的目的是什么呢?難道我們只是將數據從一臺主機傳輸到另一臺主機嗎? 當然不是的!因為數據是給人用的。比如:聊天是人在聊天,下載是人…

電腦連不上手機熱點會出現的小bug

一、問題展示 注意: 不要打開 隱藏熱點 否則他就會在電腦上 找不到自己的熱點 二、解決辦法 把隱藏熱點打開即可

CUDA專題3:為什么GPU能改變計算?深度剖析架構、CUDA?與可擴展編程

1. 簡介 1.1. 使用 GPU 的優勢 圖形處理器(GPU)在相近的成本和功耗范圍內,能夠提供比中央處理器(CPU)更高的指令吞吐量和內存帶寬。許多應用程序利用這些優勢,在 GPU 上的運行速度遠超 CPU(參見《GPU 應用》)。其他計算設備(如 FPGA)雖然能效也很高,但其編程靈活性…

Linux輸入系統應用編程

什么是輸入系統 Linux 輸入系統是處理用戶輸入設備(如鍵盤、鼠標、觸摸屏、游戲手柄等)的軟件架構。在應用編程層面,它提供了與這些輸入設備交互的接口。 主要組成部分 輸入設備驅動層:直接與硬件交互的驅動程序 輸入核心層:內核中的輸入子…

StarRocks BE宕機排查

StarRocks BE宕機排查 排查是否OOM dmesg -T|grep -i oom #排查是否oom原因: 2.X版本OOM原因 BE 的配置文件 (be.conf) 中 mem_limit 配置不合理,需要配置mem_limit(機器總內存-其他服務占用內存-1~2g(系統預留)) 比如機器內存40G,上面有…

邏輯回歸(Logistic Regression)模型的概率預測函數

以二分類問題為例,常見的損失函數有 負對數似然損失(neg log-likelihood loss),交叉熵損失(cross entropy loss),deviance loss指數損失(exponential loss)。 前三者雖然名字不同,但卻具有相同的表達形式。此外,neg …

函數式組件中的渲染函數 JSX

在 Vue.js 和 React 等現代前端框架中,函數式組件已成為一種非常流行的設計模式。函數式組件是一種沒有內部狀態和生命周期方法的組件,其主要功能是接受 props 并渲染 UI。隨著這些框架的演進,渲染函數和 JSX(JavaScript XML&…

Android 動態設置默認Launcher(默認應用 電話-短信-瀏覽器-主屏幕應用))

Android 動態設置默認Launcher(默認應用 電話-短信-瀏覽器-主屏幕應用)) 文章目錄 場景需求參考資料思路期待效果 實現方案源碼流程分析和思路實現DefaultAppActivityHandheldDefaultAppFragmentHandheldDefaultAppPreferenceFragmentDefaultAppChildFragmentDefaul…

Qt下載模板到本地文件內容丟失問題

上源碼 關鍵點已標注在源碼中 A, B… // 保存的文件路徑后綴QString dateTime Myapp::getCurrentTimeDescYMDHms().replace(" ", "").replace("-", "").replace(":", "");// 臨時文件名稱QString newFileName Q…

【數學建模】動態規劃算法(Dynamic Programming,簡稱DP)詳解與應用

動態規劃算法詳解與應用 文章目錄 動態規劃算法詳解與應用引言動態規劃的基本概念動態規劃的設計步驟經典動態規劃問題1. 斐波那契數列2. 背包問題3. 最長公共子序列(LCS) 動態規劃的優化技巧動態規劃的應用領域總結 引言 動態規劃(Dynamic Programming,簡稱DP)是一…

藍橋杯備考------>雙指針(滑動窗口)

來看哈我們這道例題 我們第一種想法應該就是暴力求解,枚舉每個子數組 當我們枚舉第一個數的時候,我們要從第一個數開始挨個枚舉每個結尾 如圖,以第一個數開頭的最長不重復數我們就枚舉完了 然后我們讓兩個指針全部到第二個數 再枚舉第二個…

python實現股票數據可視化

最近在做一個涉及到股票數據清洗及預測的項目,項目中需要用到可視化股票數據這一功能,這里我與大家分享一下股票數據可視化的一些基本方法。 股票數據獲取 目前,我已知的使用python來獲取股票數據方式有以下三種: 爬蟲獲取,實現…