Python使用PyMySql增删改查Mysql数据库

PyMysql简介

PyMysql是Python中用于连接MySQL数据库的一个第三方库,它实现了MySQL客户端/服务器协议,使得Python程序能够与MySQL服务器进行交互。由于Python
2的mysql-python(又称mysqldb)模块在Python 3上支持不够完善,因此pymysql成为了在Python
3.x环境中一个流行的替代方案。

PyMysql的主要特点和功能:

  • 兼容性:pymysql与Python 3完全兼容,并且可以在Python
    2.7及更高版本上运行,为跨Python版本的应用提供统一的MySQL数据库操作接口。
  • API设计:提供了类似DB-API 2.0规范的接口,使得开发者可以使用熟悉的执行SQL语句、获取结果集等方法。
  • 安全连接:支持安全的SSL加密连接到MySQL服务器。
  • 事务处理:通过commit()和rollback()方法支持事务控制。
  • 参数化查询:允许使用占位符(%s)进行参数化SQL查询,有效防止SQL注入攻击。
  • 多结果集:对于支持多结果集的MySQL命令,如存储过程,pymysql也能够正确处理。

基本用法步骤:

  1. 安装pymysql(通常使用pip install pymysql)
  2. 创建数据库连接
  3. 创建游标对象并执行SQL语句
  4. 处理查询结果
  5. 提交或回滚事务
  6. 关闭游标和数据库连接

以下使用PyMysql增删改查Mysql数据库

创建数据库

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

连接MySql数据库

import pymysql

# 连接MySQL数据库
db = pymysql.connect("localhost", "your_username", "your_password", "your_database")

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

查询数据(SELECT)

import pymysql

# 连接MySQL数据库
db = pymysql.connect("localhost", "your_username", "your_password", "your_database")
# 创建一个游标对象cursor
cursor = db.cursor()
try:
    sql = "SELECT * FROM users WHERE username = %s"
    val = ("test_user",)
    cursor.execute(sql, val)
    results = cursor.fetchall()
    for row in results:
        print(f"ID: {
     row[0]}, Username: {
     row[1]}, Email: {
     row[2]}, Password: {
     row[3]}")
except Exception as e:
    print(f"查询数据失败: {
     e}")

插入数据(INSERT)

import pymysql

# 连接MySQL数据库
db = pymysql.connect("localhost", "your_username", "your_password", "your_database")

# 创建一个游标对象cursor
cursor = db.cursor()
# 插入数据(INSERT)
try:
    sql = "INSERT INTO users (username, email, password) VALUES (%s, %s, %s)"
    val = ("test_user", "test@example.com", "test_password")
    cursor.execute(sql, val)
    db.commit()
    print("插入数据成功")
except Exception as e:
    db.rollback()  # 发生错误时回滚
    print(f"插入数据失败: {
     e}")

更新数据(UPDATE)

import pymysql

# 连接MySQL数据库
db = pymysql.connect("localhost", "your_username", "your_password", "your_database")

# 创建一个游标对象cursor
cursor = db.cursor()
try:
    sql = "UPDATE users SET email = %s WHERE username = %s"
    val = ("new_email@example.com", "test_user")
    cursor.execute(sql, val)
    db.commit()
    print("更新数据成功")
except Exception as e:
    db.rollback()
    print(f"更新数据失败: {
     e}")

删除数据(DELETE)

import pymysql

# 连接MySQL数据库
db = pymysql.connect("localhost", "your_username", "your_password", "your_database")

# 创建一个游标对象cursor
cursor = db.cursor()
try:
    sql = "DELETE FROM users WHERE username = %s"
    val = ("test_user",)
    cursor.execute(sql, val)
    db.commit()
    print("删除数据成功")
except Exception as e:
    db.rollback()
    print(f"删除数据失败: {
     e}")

关闭连接

cursor.close()
db.close()

请确保将上述代码中的"your_username", “your_password”, "your_database"替换为你的实际数据库用户名、密码和数据库名。

相关推荐

  1. Python使用PyMySql增删Mysql数据库

    2023-12-31 10:22:04       43 阅读
  2. mysql_数据_增删

    2023-12-31 10:22:04       19 阅读
  3. PHP8使用PDO对象增删MySql数据库

    2023-12-31 10:22:04       35 阅读
  4. Linux数据库Mysql增删

    2023-12-31 10:22:04       35 阅读
  5. Mysql数据库各种增删语句

    2023-12-31 10:22:04       32 阅读
  6. 数据库MySQL表的增删

    2023-12-31 10:22:04       29 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-31 10:22:04       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-31 10:22:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-31 10:22:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-31 10:22:04       20 阅读

热门阅读

  1. 最短路搜索算法

    2023-12-31 10:22:04       41 阅读
  2. 【mysql】数据处理是否超时、处理时长

    2023-12-31 10:22:04       39 阅读
  3. 46. 全排列

    2023-12-31 10:22:04       28 阅读
  4. py注册登录界面

    2023-12-31 10:22:04       34 阅读
  5. SpringBoot-SpringSecurity

    2023-12-31 10:22:04       36 阅读
  6. 一篇文章掌握SpringCloud与SpringCloud Alibaba的区别

    2023-12-31 10:22:04       37 阅读
  7. Eureka相关面试题及答案

    2023-12-31 10:22:04       31 阅读