Python操作MySQL的几种方式详解:从数据分析到Web开发必备技能

点击上方“风控圈子”

Python操作MySQL的几种方式详解:从数据分析到Web开发必备技能

选择“星标”公众号

[id_1730492085]

很多 NoSQL 数据库在近几年表现得很出色。然而,像 MySQL 这样的关系型数据库仍然是互联网的主要数据库之一。每个学习 Python 的人都有必要掌握一门数据库。不管是进行数据分析,还是做网络爬虫、Web 开发,或者是机器学习,都需要与数据库打交道。而 MySQL 是最流行的数据库之一。本篇文章将介绍 Python 操作 MySQL 的几种方式,在实际开发过程中可以根据实际情况进行合理选择。

[id_770778034]

mysqlclient

目前存在两种主流的安装方式。其中一种方式能够在网站上找到与之对应的 whl 包并进行下载安装。~gohlke/pythonlibs/#mysqlclient

在cmd命令行中进入安装文件所在路径运行命令:

# Windows安装pip[id_1080764024]install mysqlclient 1.4.4 cp37 cp37m win_amd64.whl

另外一种方式是直接调用cmd命令:

# Windows安装pip install mysqlclient

python 操作mysql数据库基础

import MySQLdb
db = MySQLdb.connect( host="localhost", # 主机名 user="root", # 用户名 passwd="password", # 密码 db="db") # 数据库名称
# 查询前,必须先获取游标cursor = db.cursor()
# 执行的都是原生SQL语句cursor.execute("SELECT * FROM TABLE_NAME")
for row in cursor.fetchall():    print(row[0])

02

PyMySQL

PyMySQL 是由纯 Python 实现的驱动。它在速度方面比不上 MySQLdb。它最大的特点或许是安装方式不那么繁琐。并且它还兼容 MySQL-python。

pip install PyMySQL# 为了兼容mysqldb,只需要加入pymysql.install_as_MySQLdb()

import pymysql
conn = pymysql.connect( host="localhost", # 主机名 user="root", # 用户名 passwd="password", # 密码 db="db") # 数据库名称
# 查询前,必须先获取游标cursor = conn.cursor()
# 执行的都是原生SQL语句cursor.execute("SELECT * FROM TABLE_NAME")
data = cursor.fetchone()cursor.close()conn.close()

03

peewee

写原生 SQL 的过程较为繁琐,且存在代码重复的情况,同时也缺乏面向对象思维。基于此,便诞生了许多封装 wrapper 包以及 ORM 框架。ORM 指的是 Python 对象与数据库关系表之间的一种映射关系。有了 ORM 之后,你就不再需要亲自去编写 SQL 语句了。写代码的速度得到了提高,并且能够兼容多种数据库系统,像 sqlite、mysql 和 postgresql 等。这样做可能会在性能上有一些损失。如果你熟悉 Django 自带的 ORM,那么 peewee 的学习成本几乎为零。它在 Python 中是最为流行的 ORM 框架。

pip install peewee

importpeeweedb 等于 peewee 的 MySQLDatabase,其中主机为"localhost",    如果当前模块名为 '__main__',则创建表,若有多个表则用列表形式创建,这里创建的表是 School.create_table()。

04

SQLAlchemy

如果要找一种能同时支持原生 SQL 以及 ORM 的工具,那么 SQLAlchemy 就是最佳选择,它与 Java 中的 Hibernate 框架很接近。

首先需要安装mysql模块:进入cmd命令行,执行

pip install mysql

其次才可安装sqlalchemy:进入cmd命令行,执行

pip install SQLAlchemy

使用 sqlalchemy 创建引擎。得到连接对象,其参数为 mysql+pymysql://用户名:密码@地址/数据库名。conn = create_engine("使用 mysql 数据库,通过 pymysql 驱动,以 root 用户、password 密码连接到本地主机 localhost 的 db 数据库")
# 查询resselect = conn.execute("SELECT * FROM TABLE_NAME")输出列表数据,即执行 print(resselect.fetchall()) 操作。
# 插入,输出影响行数resinsert=conn.execute(将数据插入到 TABLE_NAME 表中,插入的列名为 namex 和 sex,对应的值分别为 '%s' 和 '%s'。%("苏子涵","F")).rowcount print(resinsert)

现在已经大致清楚了这几种数据库驱动的优缺点。接下来,你能够挑选其中的一个,开始对其进行系统的学习,之后将其应用到项目当中。如果有不懂的地方,可以在研习社进行咨询。

全文完,感谢您的耐心阅读

请顺手点个“在看”吧~

往期精彩回顾

你可能想看:
« 上一篇
下一篇 »

相关推荐

python爬虫教程PDF,Python爬虫书PDF

2026年09月02日

32阅读

外国教程python,python编程教学视频

2026年09月02日

27阅读

python简明教程沈洁元,python详细基础教程

2026年09月02日

21阅读

python库包教程,python 包

2026年09月02日

27阅读

python教程大全集,python教程600集

2026年09月02日

27阅读

python入门教程完整版,python零基础入门全套教程视频

2026年09月02日

23阅读