Python--MySQL及其使用

1. MySQL 簡介

MySQL 是一個開源的關系型數據庫管理系統(RDBMS),廣泛用于各種應用程序,支持多種操作系統。它使用 SQL 語言進行數據查詢、管理和操作。

2. MySQL 的主要特點

  • 跨平臺:支持多種操作系統,如 Linux、Windows、Mac OS 等。
  • 高性能:優化的查詢處理和緩存機制,提供高并發處理能力。
  • 安全性:提供用戶認證、訪問控制和數據加密等安全機制。
  • 易用性:通過圖形界面和命令行工具簡化數據庫管理。

3. Python 連接 MySQL

Python 通過 pymysql 庫可以方便地與 MySQL 數據庫進行交互。以下是一些基礎操作的示例。

3.1 安裝 pymysql

首先需要安裝 pymysql 庫:

pip install pymysql

3.2 連接數據庫

使用 pymysql 連接 MySQL 數據庫:

from pymysql import Connectionconn = Connection(host="localhost",   # 主機名(IP)port=3306,          # 端口user="root",        # 賬戶password="123456",   # 密碼autocommit=True     # 設置自動提交
)

3.3 選擇數據庫

conn.select_db("py_sql")

3.4 執行 SQL 語句

cursor = conn.cursor()      # 獲取到游標對象
cursor.execute("insert into student values(10001, '周杰輪', 31, '男')")

3.5 查詢數據

cursor.execute("SELECT * FROM orders")
result = cursor.fetchall()
for r in result:print(r)

3.6 關閉連接

conn.close()

4. 數據導入與導出

4.1 從文本文件導入數據

假設有一個文本文件 D:/2011年1月銷售數據.txt,我們可以使用自定義的 TextFileReader 類讀取數據,并將其導入到 MySQL 數據庫中。

from file_define_mysql import TextFileReader
from data_define_mysql import Record
from pymysql import Connectiontext_file_reader = TextFileReader("D:/2011年1月銷售數據.txt")
jan_data: list[Record] = text_file_reader.read_data()conn = Connection(host="localhost",port=3306,user="root",password="123456",autocommit=True
)
cursor = conn.cursor()
conn.select_db("py_sql")for record in jan_data:sql = f"insert into orders(order_date, order_id, money, province) " \f"values('{record.date}', '{record.order_id}', {record.money}, '{record.province}')"cursor.execute(sql)conn.close()

4.2 從 JSON 文件導入數據

類似地,可以從 JSON 文件讀取數據并導入到 MySQL 數據庫中。

from file_define_mysql import JsonFileReader
from data_define_mysql import Record
from pymysql import Connectionjson_file_reader = JsonFileReader("D:/2011年2月銷售數據JSON.txt")
feb_data: list[Record] = json_file_reader.read_data()conn = Connection(host="localhost",port=3306,user="root",password="123456",autocommit=True
)
cursor = conn.cursor()
conn.select_db("py_sql")for record in feb_data:sql = f"insert into orders(order_date, order_id, money, province) " \f"values('{record.date}', '{record.order_id}', {record.money}, '{record.province}')"cursor.execute(sql)conn.close()

4.3 從 MySQL 導出數據到 JSON 文件

將 MySQL 中的數據導出到 JSON 文件。

from data_define_mysql import Record
from pymysql import Connectionf = open("d:/output.json", "w", encoding="UTF-8")
conn = Connection(host="localhost",port=3306,user="root",password="123456",autocommit=True
)
cursor = conn.cursor()
conn.select_db("py_sql")
cursor.execute("SELECT * FROM orders")
result = cursor.fetchall()for r in result:record = Record(r[0], r[1], r[2], r[3])f.write(record.to_json())f.write("\n")conn.close()
f.close()

5. 注意事項

  • 數據安全:在處理敏感數據時,確保使用加密連接和安全密碼。
  • 錯誤處理:在實際應用中,應添加錯誤處理邏輯,確保程序的健壯性。
  • 性能優化:在處理大量數據時,考慮使用批處理和索引優化查詢性能。

通過以上示例和說明,可以基本掌握 Python 與 MySQL 的交互操作,實現數據的導入、導出和管理。

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

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

相關文章

一文掌握Prometheus實現頁面登錄認證并集成grafana

一、接入方式 以保護Web站點的訪問控制,如HTTP 服務器配置中實現安全的加密通信和身份驗證,保護 Web 應用程序和用戶數據的安全性。 1.1 加密密碼 通過httpd-tools工具包來進行Web站點加密 yum install -y httpd-tools方式一:通過htpasswd生…

智慧物流園區整體架構方案(46頁PPT)

PPT介紹 將深入探討如何通過高度集成的信息技術和物聯網設備,打造一個自動化、高效與可持續發展的現代物流體系。該方案從智能感知層開始,利用傳感器、RFID技術、GPS等手段實時采集物流數據;接著是網絡傳輸層,借助高速且穩定的通信…

姓名配對測試源碼

源碼簡介 姓名配對測試源碼,輸入兩人姓名即可測試緣分,可查看朋友到底喜歡誰的趣味源碼。 自己手動在數據庫里修改數據,數據庫里有就會優先查詢數據庫的信息, 沒設置的話第一次查詢緣分都是非常好的 95-99,第二次查…

日常學習--20240717

1、spring事務失效的幾種情況? 自己new的對象(非spring定義的bean),或者同一個類的方法調用(this.調用,未使用動態代理),這兩種方式都會繞過spring的aop對應的數據庫不支持事務事務…

牛奶供應(三)

一個字貪&#xff0c;第一天&#xff0c;只能選擇制作方式&#xff0c;后面的每一天&#xff0c;在<今天制作>與<前期存儲>之間取更優解 例如樣例&#xff1a;100 5&#xff0c;200 5&#xff0c;90 20&#xff0c;存儲成本為10 第1天&#xff1a; 一定是制作&…

C++ map和set的使用

目錄 0.前言 1.關聯式容器 2.鍵值對 3.樹形結構的關聯式容器 3.1樹形結構的特點 3.2樹形結構在關聯式容器中的應用 4.set 4.1概念與性質 4.2使用 5.multiset 5.1概念與性質 5.2使用 6.map 6.1概念與性質 6.2使用 7.multimap 7.1概念與性質 7.2使用 8.小結 &a…

Spring MVC 中 HttpMessageConverter 轉換器

1. Spring MVC 中 HttpMessageConverter 轉換器 文章目錄 1. Spring MVC 中 HttpMessageConverter 轉換器2. 補充&#xff1a;什么是 HTTP 消息3. 轉換器3.1 轉換器轉換的是什么 4. Spring MVC中的 AJAX 請求5. ResponseBody 將服務器端的 return 返回值轉化為“字符串(JSON格式…

大語言模型-基礎及拓展應用

一、基礎模型 1、Transformer 2、bert 3、gpt 二、大語言模型 三、句子向量 四、文檔解析 1、通用解析 2、docx解析 3、 pdf解析 4、pptx解析 五、向量數據庫

rtf是什么格式的文件?rtf格式和word的區別是什么?

RTF是什么格式的文件? RTF&#xff08;富文本格式&#xff0c;Rich Text Format&#xff09;和Word文檔&#xff08;以.doc和.docx為擴展名的Microsoft Word文檔&#xff09;是兩種常用的文本文件格式。它們在文件結構、兼容性、功能和使用場景等方面存在一些顯著差異。 比如…

Android 14新特性:選擇性照片和視頻訪問授權

Android 14 引入了選擇性照片和視頻訪問授權的新特性&#xff0c;這是一項旨在增強用戶隱私和數據安全的重要更新。在之前的 Android 版本中&#xff0c;應用程序請求訪問設備上的照片和視頻時&#xff0c;通常會要求完全訪問權限&#xff0c;這意味著應用可以訪問用戶圖庫中的…

arcgis怎么選取某個指定區域地方的數據,比如從全國鄉鎮數據選取長沙市鄉鎮數據

一共5個步驟&#xff0c;沒一句廢話&#xff0c;耐心看完。 1、如圖&#xff0c;先將數據加載到arcgis里面&#xff0c;我們要選取里面長沙市的范圍數據。 2、選取長沙市的語句 “市” like ‘長沙%’ 切記&#xff0c;切記&#xff0c;切記。所有符號要在 輸入法英文狀態…

微信小程序 vant-weapp的 SwipeCell 滑動單元格 van-swipe-cell 滑動單元格不顯示 和 樣式問題 滑動后刪除樣式不顯示

在微信小程序開發過程中 遇到個坑 此處引用 swipeCell 組件 剛開始是組件不顯示 然后又遇到樣式不生效 首先排除問題 是否在.json文件中引入了組件 {"usingComponents": {"van-swipe-cell": "vant/weapp/swipe-cell/index","van-cell-gro…

電腦系統重裝數據被格式化,那些文件還有辦法恢復嗎?

在日常使用電腦的過程中&#xff0c;系統重裝或格式化操作是常見的維護手段&#xff0c;尤其是在遇到系統崩潰、病毒感染或需要升級系統時。然而&#xff0c;這一操作往往伴隨著數據丟失的風險&#xff0c;尤其是當C盤&#xff08;系統盤&#xff09;和D盤&#xff08;或其他數…

linux|多線程(一)

主要介紹了為什么要有線程 和線程的調用 和簡單的對線程進行封裝。 背景知識 a.重談地址空間 我們知道物理內存的最小單元大小是4kB 物理內存是4G那么這樣的單元友1M個 操作系統先描述再組織struct page[1M] 對于32位數據字長的機器&#xff0c;頁表有2^32條也就是4G條&#…

嵌入式linux相機 轉換模塊

convert_manager.c #include <config.h> #include <convert_manager.h> #include <string.h>static PT_VideoConvert g_ptVideoConvertHead NULL;/*********************************************************************** 函數名稱&#xff1a; Register…

異常檢測在機器學習中的重要性

異常檢測在機器學習中的重要性 在機器學習領域&#xff0c;異常檢測&#xff08;Anomaly Detection&#xff09;是一種識別數據集中異常或不尋常模式的任務。這些異常點可能代表錯誤、噪聲、或更有趣的是&#xff0c;它們可能揭示了某些異常行為或新現象。異常檢測在許多領域都…

LabVIEW Communications LTE Application Framework 讀書筆記

目錄 硬件要求一臺設備2臺USRPUSRP-2974 示例項目的組件文件夾結構DL Host.gcompeNodeB Host.gcompUE Host.gcompBuildsCommonUSRP RIOLTE 操作模式DLeNodeBUE 項目組件單機雙機UDP readUDP writeMAC TXMAC RXDL TX PHYDL RX PHYUL TX PHYUL RX PHYSINR calculationRate adapta…

Vue + litegraph.js 實現藍圖功能

Vue3 litegraph.js 實現藍圖功能 litegraph.js [github](https://github.com/jagenjo/litegraph.js) [demo](https://tamats.com/projects/litegraph/editor/)vue - html <canvas id"mycanvas" width"1524" height"720" style"border…

PostgreSQL數據庫從入門到精通系列之九:PostgreSQL數據庫13版本和PostgreSQL數據庫14版本功能特性

PostgreSQL數據庫從入門到精通系列之九:PostgreSQL數據庫13版本和PostgreSQL數據庫14版本功能特性 一、PostgreSQL數據庫版本13新功能和特性二、PostgreSQL13相比于PostgreSQL12功能改進三、PostgreSQL數據庫14版本新功能和特性一、PostgreSQL數據庫版本13新功能和特性 Postg…

R語言優雅的把數據基線表(表一)導出到word

基線表&#xff08;Baseline Table&#xff09;是醫學研究中常用的一種數據表格&#xff0c;用于在研究開始時呈現參與者的初始特征和狀態。這些特征通常包括人口統計學數據、健康狀況和疾病史、臨床指標、實驗室檢測、生活方式、社會經濟等。 本人在既往文章《scitb包1.6版本發…