想用 Python 连接 MySQL 数据库?没问题,这篇教程就带你搞定。与其说是教程,不如说是我的经验分享,毕竟我也是踩过不少坑才摸索出来的。

首先,你要确保已经安装了 MySQL 服务器和 Python 环境。这是前提,没有的话,啥也别说了,先去安装。

安装好了之后,咱们需要一个 Python 库来帮我们和 MySQL 打交道。 常用的就是 mysql-connector-python 或者 pymysql。 我个人比较喜欢用 mysql-connector-python,感觉更官方一点。

安装命令很简单:

bash
pip install mysql-connector-python

或者你喜欢用 pymysql 的话:

bash
pip install pymysql

任选一个就行,接下来我就以 mysql-connector-python 为例来讲解。

安装完毕,咱们就可以开始写代码了。 别怕,其实挺简单的。

“`python
import mysql.connector

数据库连接配置

mydb = mysql.connector.connect(
host=”localhost”, # 数据库服务器地址,通常是 localhost
user=”yourusername”, # 你的 MySQL 用户名
password=”yourpassword”, # 你的 MySQL 密码
database=”yourdatabase” # 你要连接的数据库名
)

创建游标对象

mycursor = mydb.cursor()

执行 SQL 查询

mycursor.execute(“SELECT * FROM yourtable”) # yourtable 替换成你自己的表名

获取查询结果

myresult = mycursor.fetchall()

遍历结果并打印

for x in myresult:
print(x)

关闭游标和数据库连接

mycursor.close()
mydb.close()
“`

这段代码的核心就是 mysql.connector.connect() 函数,它负责建立 PythonMySQL 之间的连接。 你需要把里面的 host, user, password, database 替换成你自己的实际信息。

创建游标 mycursor = mydb.cursor() 是为了让我们能够执行 SQL 语句。 游标就像一个指针,可以指向数据库中的不同位置。

mycursor.execute("SELECT * FROM yourtable") 这句代码就执行了一个 SQL 查询, yourtable 换成你的表名啊。 如果你想执行其他的 SQL 语句,比如 INSERT, UPDATE, DELETE, 也是用 mycursor.execute() 函数, 只是 SQL 语句不一样而已。

myresult = mycursor.fetchall() 获取查询结果,它会把查询到的所有数据都放到一个列表里。 接下来就可以遍历这个列表,把数据打印出来或者做其他的处理。

最后,一定要记得关闭游标和数据库连接 mycursor.close()mydb.close(),释放资源。

这只是一个最简单的例子,实际应用中可能会更复杂。 比如,你可能需要处理 SQL 注入的风险,使用参数化查询:

python
sql = "SELECT * FROM yourtable WHERE column1 = %s AND column2 = %s"
val = ("value1", "value2")
mycursor.execute(sql, val)

使用 %s 作为占位符,然后把参数放到一个元组里传给 execute() 函数,这样可以有效地防止 SQL 注入。

还有,如果你的 MySQL 服务器不在本地,你需要修改 host 参数,填上服务器的 IP 地址或者域名。 如果你的 MySQL 服务器使用了非标准的端口,你还需要在 connect() 函数中指定 port 参数。

另外,如果你使用 pymysql,代码会稍微有点不一样:

“`python
import pymysql

数据库连接配置

mydb = pymysql.connect(
host=”localhost”,
user=”yourusername”,
password=”yourpassword”,
database=”yourdatabase”
)

创建游标对象

mycursor = mydb.cursor()

执行 SQL 查询

mycursor.execute(“SELECT * FROM yourtable”)

获取查询结果

myresult = mycursor.fetchall()

遍历结果并打印

for x in myresult:
print(x)

关闭游标和数据库连接

mycursor.close()
mydb.close()
“`

其实差别不大,主要是导入的库不一样。

还有一点需要注意的是, MySQL 的编码问题。 默认情况下, MySQL 使用的是 latin1 编码, 这可能会导致中文乱码。 为了解决这个问题,你可以在 connect() 函数中指定 charset 参数:

python
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase",
charset="utf8"
)

或者,你也可以在创建数据库的时候就指定编码:

sql
CREATE DATABASE yourdatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

utf8mb4 编码支持更多的字符,包括一些 Emoji 表情。

总而言之, Python 连接 MySQL 数据库 并不难,关键是要理解连接配置、游标操作和 SQL 语句的执行。 多练习,多查资料, 遇到问题不要怕, 慢慢解决, 你一定可以掌握的。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。