当前位置:首页 > 问答 > 正文

Python新手快速上手pymysql,教你秒连数据库不求人,轻松搞定数据操作

(来源:CSDN博客《Python操作MySQL数据库之pymysql模块》) Python想跟MySQL数据库打交道,光靠Python自己是不行的,得找个帮手,这个帮手就叫pymysql,它就像一个翻译官,能把Python说的话(代码)翻译成MySQL数据库能听懂的命令,下面我就手把手带你用这个翻译官,让你快速上手,自己就能轻松搞定数据库的连接和操作。

第一步:安装pymysql“翻译官”

你的电脑上得请来这位“翻译官”,方法很简单,打开你的命令提示符(Windows上是cmd,Mac上是终端),输入下面这行魔法咒语,然后按回车:

pip install pymysql

(来源:PyPI官方pymysql文档) 如果看到提示“Successfully installed pymysql-...”,恭喜你,安装成功了!要是失败了,很可能是网络问题,试试用国内的镜像源,比如加上-i https://pypi.tuna.tsinghua.edu.cn/simple

第二步:建立连接——跟数据库“握手”

安装好了,接下来就要让Python和数据库建立联系了,这个过程叫“连接”,想象一下,你要去朋友家做客,得先知道他家的地址、门牌号,还得有钥匙或者知道密码才行,连接数据库也是同样的道理。

你需要准备以下几条关键信息:

  • 主机地址(host): 数据库在哪台电脑上,如果数据库就在你自己的电脑上,那就写localhost0.0.1
  • 端口号(port): 进门的端口,MySQL默认是3306,就像朋友家的门牌号。
  • 用户名(user): 你的用户名,比如常见的root
  • 密码(password): 这个最重要,是你身份的证明。
  • 数据库名(database): 你要操作的具体是哪个数据库,好比朋友家有很多房间,你得指定去哪个房间。

准备好这些,就可以写连接代码了:

import pymysql  # 首先要把翻译官请进来
# 开始连接
db = pymysql.connect(
    host='localhost',   # 数据库地址
    user='root',        # 你的用户名
    password='123456',  # 你的密码,这里是我瞎写的,你要换成自己的
    database='test_db', # 你要用的数据库名
    port=3306           # 端口号
)
print("恭喜!数据库连接成功!")

(来源:RUNOOB.COM Python MySQL连接教程) 运行这段代码,如果打印出成功的信息,说明你已经顺利和数据库“握手”了!这个db对象就是你后续所有操作的起点。

第三步:获取游标——你的“手指”

连接成功之后,你不能直接对着数据库指手画脚,需要一个工具来帮你指点具体的位置和执行命令,这个工具就是“游标”(cursor),你可以把它想象成是你的手指或者一个指针。

# 创建游标对象
cursor = db.cursor()

你就可以通过这个cursor“手指”去干各种事情了。

Python新手快速上手pymysql,教你秒连数据库不求人,轻松搞定数据操作

第四步:执行SQL语句——让“翻译官”传话

核心部分来了!我们怎么让数据库干活呢?就是通过执行SQL语句,SQL是一种专门用来管理数据库的语言,你可以用它来查数据、增数据、改数据、删数据,而pymysql的作用,就是把你的SQL命令“翻译”给数据库听。

查询数据(SELECT)

我想查看一个叫users的表里所有用户的信息:

sql = "SELECT * FROM users"  # 编写SQL语句:从users表中选择所有数据
cursor.execute(sql)          # 让游标执行这个SQL语句
# 获取所有结果
results = cursor.fetchall()  # fetchall()是取出所有查询到的结果
for row in results:
    print(row)               # 每一行数据都是一个元组,(1, '张三', 20)

(来源:知乎专栏《Python中使用PyMySQL操作数据库》) 除了fetchall()一次性拿回所有数据,还有fetchone()(只拿一条)和fetchmany(数量)(拿指定条数),适合数据量很大的时候用。

插入数据(INSERT)

我们要新增一个用户:

Python新手快速上手pymysql,教你秒连数据库不求人,轻松搞定数据操作

sql = "INSERT INTO users (name, age) VALUES (%s, %s)"  # %s是占位符,防止SQL注入攻击
values = ('李四', 25)        # 要插入的具体值
try:
    cursor.execute(sql, values)  # 执行插入操作
    db.commit()                  # 提交事务,这一步非常重要!不提交数据不会真正保存
    print("插入数据成功!")
except Exception as e:
    db.rollback()                # 如果出错了,回滚事务,就像什么都没发生过
    print(f"插入数据失败:{e}")

这里有两个关键点:一是用%s做占位符,而不是用字符串拼接,这样更安全;二是操作增、删、改之后,必须用db.commit()确认提交,否则数据库不会真正更新。

修改和删除数据(UPDATE/DELETE)

修改和删除的操作流程和插入非常像,只是SQL语句不同。

修改数据:

sql = "UPDATE users SET age = %s WHERE name = %s"
values = (26, '李四')  # 把李四的年龄改成26
cursor.execute(sql, values)
db.commit()

删除数据:

sql = "DELETE FROM users WHERE name = %s"
value = ('李四',)      # 注意单个参数后面要加个逗号,表示是元组
cursor.execute(sql, value)
db.commit()

第五步:收尾工作——关门走人

所有操作都做完后,一定要记得关闭游标和连接,释放资源,这就像去朋友家做客,离开时要关门一样,是个好习惯。

cursor.close()  # 关闭游标
db.close()      # 关闭数据库连接
print("连接已关闭")

(来源:多个技术博客常见提醒) 好了,以上就是用pymysql操作MySQL数据库最核心、最常用的步骤,总结一下就是:安装模块 -> 连接数据库 -> 获取游标 -> 执行SQL -> 提交或回滚 -> 关闭连接,多练习几遍,你就能熟练地让你的Python程序和小伙伴MySQL数据库愉快地聊天了!遇到问题别怕,多查查错误信息,很快就能解决。