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

Python操作MySQL的從入門到實(shí)戰(zhàn)指南

 更新時(shí)間:2026年03月27日 08:59:50   作者:·云揚(yáng)·  
本文介紹了使用Python操作MySQL的全過程,包括環(huán)境準(zhǔn)備、Python基礎(chǔ)回顧、實(shí)戰(zhàn)操作等,環(huán)境準(zhǔn)備中提到安裝Python和VSCode,并推薦安裝插件,Python基礎(chǔ)回顧部分簡要介紹了注釋、數(shù)據(jù)類型、條件判斷、循環(huán)和函數(shù)等內(nèi)容,需要的朋友可以參考下

1 基礎(chǔ)環(huán)境準(zhǔn)備

想要順利進(jìn)行后續(xù)操作,先把基礎(chǔ)環(huán)境搭好,這一步很簡單,跟著官網(wǎng)指引來就行~

1.1 Windows 安裝 Python3

  • 官方下載地址:https://www.python.org/downloads/
  • 安裝注意:勾選「Add Python to PATH」,這樣后續(xù)在命令行就能直接調(diào)用 Python 啦

1.2 安裝 VS Code

  • 官方下載地址:https://code.visualstudio.com/
  • 推薦插件:Python(微軟官方插件)、Code Runner(一鍵運(yùn)行代碼)

1.3 創(chuàng)建 Python 文件

打開 VS Code → 新建文件 → 保存為 mysql_operation.py(后綴必須是 .py),準(zhǔn)備開始寫代碼~

2 Python 基礎(chǔ)快速回顧

如果是剛學(xué) Python 的同學(xué),先掌握這些基礎(chǔ)就夠了,后續(xù)操作都會用到~

2.1 注釋(代碼說明很重要)

# 單行注釋:用 # 開頭,注釋一行內(nèi)容
# 下面是多行注釋,用三個(gè)單引號或雙引號包裹
'''
多行注釋第一行
多行注釋第二行
'''
"""
雙引號版多行注釋
適合注釋較長的說明
"""

2.2 常用數(shù)據(jù)類型

# 整數(shù)類型:用于存儲年齡、編號等整數(shù)
age = 25
# 浮點(diǎn)數(shù)類型:用于存儲小數(shù)
pi = 3.14
print(type(pi))  # 輸出 <class 'float'>,查看數(shù)據(jù)類型

# 字符串類型:用于存儲姓名、文本等
name = "maria"
print(type(name))  # 輸出  <class 'str'>

# 輸出方式示例
print("你好,Python!")  # 直接輸出字符串
print(name)  # 輸出變量
print("名字是:", name)  # 字符串和變量組合輸出

2.3 條件判斷(根據(jù)條件執(zhí)行不同邏輯)

score = 91

score = 91
if score >= 90:
    print("優(yōu)秀")  # 滿足條件時(shí)執(zhí)行
elif score >= 80:
    print("良好")
elif score >= 60:
    print("及格")
else:
    print("不及格")  # 所有條件都不滿足時(shí)執(zhí)行

2.4 循環(huán)(重復(fù)執(zhí)行代碼)

# for 循環(huán):遍歷字符串、列表等
name = "maria"
for char in name:
    print(char)  # 依次輸出 m、a、r、i、a

# while 循環(huán):根據(jù)條件重復(fù)執(zhí)行
name = "maria"
index = 0
while index<len(name):  # len(name) 是字符串長度(5)
    char = name[index]
    print(char)
    index += 1  # 索引自增,避免死循環(huán)

2.5 函數(shù)(封裝可復(fù)用的代碼)

# 定義函數(shù):求兩個(gè)數(shù)的最大值
def max_value(a, b):
    if a > b:
        return a  # 返回較大值
    else:
        return b

# 調(diào)用函數(shù)
result = max_value(2, 3)
print(result)  # 輸出 3

3 Python 操作 MySQL 實(shí)戰(zhàn)

這部分是核心!教大家用 Python 對 MySQL 執(zhí)行增刪查改(CRUD)操作~

第一步:創(chuàng)建 MySQL 測試環(huán)境

先在 MySQL 中創(chuàng)建測試表和專用用戶,避免使用 root 用戶直接操作(安全規(guī)范)。

-- 創(chuàng)建測試表 test_table
CREATE TABLE test_table (
  id INT AUTO_INCREMENT PRIMARY KEY,  # 自增主鍵
  name VARCHAR(255),  # 姓名
  age INT  # 年齡
);

-- 創(chuàng)建 Python 專用操作用戶
CREATE USER 'python_rw'@'%' IDENTIFIED BY 'Idyq8_a1';
-- 授予增刪查改等權(quán)限(根據(jù)實(shí)際需求調(diào)整)
GRANT create,alter,insert,delete,select,update ON *.* TO 'python_rw'@'%';

第二步:安裝 MySQL 連接模塊

Python 本身不支持直接連接 MySQL,需要安裝第三方模塊:

pip install pymysql==1.1.0

(如果提示 pip 不是內(nèi)部命令,檢查 Python 是否添加到環(huán)境變量)

第三步:Python 增刪查改完整代碼

把以下代碼復(fù)制到 mysql_operation.py 中,修改數(shù)據(jù)庫連接信息即可使用~

# 導(dǎo)入 pymysql 庫
import pymysql
from pymysql.err import OperationalError, ProgrammingError

# 1. 建立數(shù)據(jù)庫連接(替換為你的數(shù)據(jù)庫信息)
# 增加連接參數(shù),提升穩(wěn)定性
config = {
    'host': '192.168.184.151',  # 數(shù)據(jù)庫地址
    'user': 'python_rw',  # 用戶名
    'password': 'Idyq8_a1',  # 密碼
    'database': 'maria',  # 數(shù)據(jù)庫名
    'charset': 'utf8mb4',  # 字符集(避免中文亂碼)
    'connect_timeout': 10,  # 連接超時(shí)時(shí)間(防止卡死)
    'cursorclass': pymysql.cursors.DictCursor  # 可選:返回字典格式結(jié)果,更易讀
}

# 初始化連接和游標(biāo)為None,避免空對象調(diào)用
cnx = None
cursor = None

try:
    # 先測試連接是否能成功建立
    cnx = pymysql.connect(**config)
    print("? 數(shù)據(jù)庫連接成功")

    # 2. 創(chuàng)建游標(biāo)對象
    cursor = cnx.cursor()

    # 3. 插入數(shù)據(jù)(INSERT)
    sql_insert = "INSERT INTO test_table (name, age) VALUES (%s, %s)"
    values_insert = ("John", 25)
    cursor.execute(sql_insert, values_insert)
    cnx.commit()
    print(f"?? 數(shù)據(jù)插入成功,新增記錄 ID:{cursor.lastrowid}")

    # 4. 查詢數(shù)據(jù)(SELECT)
    sql_select = "SELECT * FROM test_table"
    cursor.execute(sql_select)
    rows = cursor.fetchall()
    print("\n?? 查詢結(jié)果:")
    # 適配 DictCursor,用鍵取值(更直觀)
    for row in rows:
        print(f"ID: {row['id']}, 姓名: {row['name']}, 年齡: {row['age']}")

    # 5. 更新數(shù)據(jù)(UPDATE)
    sql_update = "UPDATE test_table SET age = %s WHERE name = %s"
    values_update = (30, "John")
    cursor.execute(sql_update, values_update)
    cnx.commit()
    print(f"\n?? 數(shù)據(jù)更新成功,影響行數(shù):{cursor.rowcount}")

    # 6. 刪除數(shù)據(jù)(DELETE)
    sql_delete = "DELETE FROM test_table WHERE name = %s"
    values_delete = ("John",)  # 單個(gè)參數(shù)保留逗號
    cursor.execute(sql_delete, values_delete)
    cnx.commit()
    print(f"???  數(shù)據(jù)刪除成功,影響行數(shù):{cursor.rowcount}")

except OperationalError as e:
    # 專門捕獲連接相關(guān)錯誤(地址/密碼/數(shù)據(jù)庫不存在)
    print(f"? 數(shù)據(jù)庫連接失?。簕str(e)}")
    print("請檢查:1.數(shù)據(jù)庫地址是否正確 2.用戶名/密碼是否正確 3.數(shù)據(jù)庫是否存在")
except ProgrammingError as e:
    # 專門捕獲SQL語法/表不存在錯誤
    print(f"? SQL執(zhí)行失?。簕str(e)}")
    print("請檢查:1.test_table表是否存在 2.字段名(name/age)是否正確")
except Exception as e:
    # 其他未知錯誤
    if cnx:  # 只有連接成功才回滾
        cnx.rollback()
    print(f"? 操作失敗:{str(e)}")
finally:
    # 7. 安全關(guān)閉游標(biāo)和連接(判斷對象是否存在,避免空指針)
    if cursor:
        cursor.close()
    if cnx:
        cnx.close()
    print("\n?? 數(shù)據(jù)庫連接已關(guān)閉")

關(guān)鍵注意事項(xiàng)

  1. 連接信息要替換為你的實(shí)際環(huán)境(host、database 等)
  2. 執(zhí)行插入、更新、刪除操作后,必須調(diào)用 cnx.commit()
  3. 單個(gè)參數(shù)的 SQL 語句,values 要加逗號(如 ("John",)
  4. 一定要關(guān)閉游標(biāo)和連接,避免資源泄露
  5. 建議用 try-except 捕獲異常,保證程序穩(wěn)定性

以上就是Python操作MySQL的從入門到實(shí)戰(zhàn)指南的詳細(xì)內(nèi)容,更多關(guān)于Python操作MySQL指南的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 腳本測試postman快速導(dǎo)出python接口測試過程示例

    腳本測試postman快速導(dǎo)出python接口測試過程示例

    這篇文章主要介紹了關(guān)于腳本測試postman快速導(dǎo)出python接口測試示例的過程操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • Python 字典的使用詳解及實(shí)例代碼

    Python 字典的使用詳解及實(shí)例代碼

    今天小編幫大家簡單介紹下Python的一種數(shù)據(jù)結(jié)構(gòu): 字典,字典是 另一種可變?nèi)萜髂P停铱纱鎯θ我忸愋蛯ο?,它用于存放具有映射關(guān)系的數(shù)據(jù),通讀本篇對大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下
    2021-11-11
  • 深入了解Python?中線程和進(jìn)程區(qū)別

    深入了解Python?中線程和進(jìn)程區(qū)別

    這篇文章主要介紹了深入了解Python?中線程和進(jìn)程區(qū)別,一個(gè)進(jìn)程由一個(gè)或者多個(gè)線程組成,線程是一個(gè)進(jìn)程中代碼的不同執(zhí)行路線。切換進(jìn)程需要的資源比切換線程的要多的多,下面來了解更多的詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-03-03
  • Python深度學(xué)習(xí)albumentations數(shù)據(jù)增強(qiáng)庫

    Python深度學(xué)習(xí)albumentations數(shù)據(jù)增強(qiáng)庫

    下面開始albumenations的正式介紹,在這里我強(qiáng)烈建議英語基礎(chǔ)還好的讀者去官方網(wǎng)站跟著教程一步步學(xué)習(xí),而這里的內(nèi)容主要是我自己的一個(gè)總結(jié)以及方便英語能力較弱的讀者學(xué)習(xí)
    2021-09-09
  • Python實(shí)現(xiàn)讀取TXT文件數(shù)據(jù)并存進(jìn)內(nèi)置數(shù)據(jù)庫SQLite3的方法

    Python實(shí)現(xiàn)讀取TXT文件數(shù)據(jù)并存進(jìn)內(nèi)置數(shù)據(jù)庫SQLite3的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)讀取TXT文件數(shù)據(jù)并存進(jìn)內(nèi)置數(shù)據(jù)庫SQLite3的方法,涉及Python針對txt文件的讀取及sqlite3數(shù)據(jù)庫的創(chuàng)建、插入、查詢等相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • pycocotools介紹以及在windows10下的安裝過程

    pycocotools介紹以及在windows10下的安裝過程

    這篇文章主要介紹了pycocotools介紹以及在windows10下的安裝過程,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • python實(shí)現(xiàn)循環(huán)保存文件并循環(huán)讀取文件

    python實(shí)現(xiàn)循環(huán)保存文件并循環(huán)讀取文件

    文章主要介紹了使用Python循環(huán)保存和讀取文件的方法,以新聞文本主題分類數(shù)據(jù)為例,使用列表形式進(jìn)行操作,保存代碼將列表作為文件保存,讀取代碼則用于循環(huán)讀取保存的文件
    2026-05-05
  • python提取視頻中的音頻的實(shí)現(xiàn)示例

    python提取視頻中的音頻的實(shí)現(xiàn)示例

    MoviePy是一個(gè)用于視頻編輯的庫,它可以提取視頻中的音頻并保存為音頻文件,本文主要介紹了python提取視頻中的音頻的實(shí)現(xiàn)示例,感興趣的可以了解一下
    2024-03-03
  • Pytorch之parameters的使用

    Pytorch之parameters的使用

    今天小編就為大家分享一篇Pytorch之parameters的使用,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python 遺傳算法求函數(shù)極值的實(shí)現(xiàn)代碼

    python 遺傳算法求函數(shù)極值的實(shí)現(xiàn)代碼

    今天小編就為大家分享一篇python 遺傳算法求函數(shù)極值的實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02

最新評論

刚察县| 杭锦后旗| 灵武市| 离岛区| 永靖县| 竹溪县| 肥西县| 清镇市| 兰州市| 若尔盖县| 阆中市| 洞头县| 嘉善县| 安宁市| 榆树市| 那曲县| 淳化县| 苏尼特左旗| 平南县| 泗水县| 花莲县| 福贡县| 白山市| 莎车县| 海阳市| 诏安县| 潼关县| 英山县| 南澳县| 城口县| 霍城县| 林周县| 望江县| 淮安市| 嘉兴市| 株洲市| 卫辉市| 开封市| 湘乡市| 铜川市| 铁力市|