Python操作MySQL數(shù)據(jù)庫的基本方法(查詢與更新)
前言
本文分享使用Python操作MySQL數(shù)據(jù)庫的基本方法,包括數(shù)據(jù)庫連接、建表、插入和查詢,供各位小伙伴參考。
一、連接MySQL數(shù)據(jù)庫
操作MySQL數(shù)據(jù)庫主要使用pymysql包,連接MySQL數(shù)據(jù)庫的語法為connect(IP, 端口, 用戶名, 密碼, 數(shù)據(jù)庫名,編碼格式)。
import pymysql
conn = pymysql.connect(host='xxx',
port='xxx',
user='xxx',
password='xxx',
database='xxx',
charset='utf8')二、建表
- 創(chuàng)建mysql連接:pymysql.connect(),詳見上文第一點(diǎn)
- 創(chuàng)建游標(biāo):conn.cursor()
- 編寫建表語句:
(1)create_sql = “”“xxx”“”
(2)cursor.execute(create_sql) - 提交建表語句:conn.commit()
- 關(guān)閉mysql連接:conn.close()
import pymysql
conn = pymysql.connect(host='xxx',
port='xxx',
user='xxx',
password='xxx',
database='xxx',
charset='utf8')
cursor = conn.cursor()
create_sql = """
CREATE TABLE IF NOT EXISTS xxx.aaa_20230326
(
id VARCHAR(4) NOT NULL PRIMARY KEY
,name VARCHAR(100)
);
"""
cursor.execute(create_sql)
print("create successfully")
conn.commit()
conn.close()三、插入
(一)直接插入字段值
直接在字段中插入字段值,插入語句寫于雙引號中,常用于簡單賦值。
import pymysql
conn = pymysql.connect(host='xxx',
port='xxx',
user='xxx',
password='xxx',
database='xxx',
charset='utf8')
cursor = conn.cursor()
insert_sql = "INSERT INTO xxx.aaa(id, name) VALUES ('%s', '%s')" % ('001', '張三')
cursor.execute(insert_sql)
print("insert successfully")
conn.commit()
conn.close()(二)查表插入
將其他表數(shù)據(jù)查詢出來,插入到目標(biāo)表中,插入語句寫于三引號中,常用于編寫復(fù)雜邏輯插入數(shù)據(jù)。
import pymysql
conn = pymysql.connect(host='xxx',
port='xxx',
user='xxx',
password='xxx',
database='xxx',
charset='utf8')
cursor = conn.cursor()
insert_sql = """
INSERT INTO xxx.aaa
SELECT
xxx
FROM xxx.bbb
UNION ALL
SELECT
xxx
FROM xxx.ccc
;
"""
cursor.execute(insert_sql)
print("insert successfully")
conn.commit()
conn.close()四、查詢
查詢MySQL數(shù)據(jù)庫表數(shù)據(jù)可以使用pandas包,語法為read_sql(‘SQL查詢語句’, con=mysql連接)。
import pandas as pd
import pymysql
conn = pymysql.connect(host='xxx',
port='xxx',
user='xxx',
password='xxx',
database='xxx',
charset='utf8')
df = pd.read_sql('select * from xxx.aaa', con=conn)
print(df)總結(jié)
結(jié)合各類Python操作MySQL數(shù)據(jù)庫的方法,可以寫出復(fù)雜腳本,進(jìn)行數(shù)據(jù)清洗和分析或者配合調(diào)度進(jìn)行自動化操作,提高我們的效率。
到此這篇關(guān)于Python操作MySQL數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)Python操作MySQL數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Python中字符串前“b”,“r”,“u”,“f”的作用
這篇文章主要介紹了Python中字符串前“b”,“r”,“u”,“f”的作用,感興趣的朋友跟隨小編一起看看吧2019-12-12
Python數(shù)學(xué)形態(tài)學(xué)實(shí)例分析
這篇文章主要介紹了Python數(shù)學(xué)形態(tài)學(xué),結(jié)合實(shí)例形式分析了Python數(shù)學(xué)運(yùn)算與圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2019-09-09
python?tkinter自定義實(shí)現(xiàn)Expander控件
和其他成熟的GUI庫相比,tkinter的組件并不是太多,但在自定義組件這一點(diǎn)上,并不遜色于其他框架,下面小編就教大家如何自定義一個Expander控件吧2023-08-08
Python模式匹配match case的實(shí)現(xiàn)
Python 3.10 引入 match 語句,替代冗長的 if-elif 鏈,提升可讀性,支持精確匹配、守衛(wèi)條件、多值匹配、值綁定及解包操作,本文主要介紹了Python模式匹配match case的實(shí)現(xiàn)2025-10-10

