PyMysql

8 篇文章 0 订阅

什么是PyMysql

PyMysql是一个纯 Python 实现的 MySQL 客户端库,允许你在 Python 程序中与 MySQL 数据库进行交互。

安装PyMysql

PyMysql地址:https://pypi.org/project/PyMySQL/

pip install pymysql


使用PyMysql

连接mysql
import pymysql

# 数据库连接参数
host = '192.168.189.71'     # 数据库主机地址
port = 3306                 # 数据库端口
user = 'root'               # 数据库用户名
password = '123456'         # 数据库密码
database = 'test'           # 数据库名称
charset = 'utf8mb4'         # 编码格式

# 连接到数据库
connection = pymysql.connect(
    host=host,
    port=port,
    user=user,
    password=password,
    database=database,
    charset=charset,
    # cursorclass=pymysql.cursors.DictCursor # 使用字典类型游标
)

print("连接成功")
查询数据
# 创建游标对象
cursor = connection.cursor()

# 执行SQL查询
sql = "select * from table_test;"
cursor.execute(sql)

# 获取查询结果
results = cursor.fetchall()
for row in results:
    print(row)

# 关闭游标
cursor.close()

查询打印到的数据

  • 元组类型数据

  • 字典类型数据

添加数据
try:
    # 创建游标对象
    cursor = connection.cursor()
    
    # 编写sql语句
    sql = "insert into table_test (id, name, age) VALUES (%s, %s, '22')"
    values = (3, 'Spike')  # sql参数

    # 执行SQL插入
    cursor.execute(sql, values)
    # 提交事务
    connection.commit()
    print("数据插入成功")
except Exception as e:
    # 出现异常,回滚事务
    connection.rollback()
finally:
    # 关闭游标
    cursor.close()
    # 关闭连接
    connection.close()
更新数据
try:
    # 创建游标对象
    cursor = connection.cursor()
    
    # 编写sql语句
    sql = "UPDATE table_test SET age = %s WHERE id = %s"
    values = (30, 3)

    # 执行SQL
    cursor.execute(sql, values)
    # 提交事务
    connection.commit()
    print("数据更新成功")
except Exception as e:
    # 出现异常,回滚事务
    connection.rollback()
finally:
    # 关闭游标
    cursor.close()
    # 关闭连接
    connection.close()
删除数据
try:
    # 创建游标对象
    cursor = connection.cursor()

    # 编写sql语句
    sql = "DELETE FROM table_test WHERE id = %s"
    value = (3,)

    # 执行SQL
    cursor.execute(sql, value)
    # 提交事务
    connection.commit()
    print("数据删除成功")
except Exception as e:
    # 出现异常,回滚事务
    connection.rollback()
finally:
    # 关闭游标
    cursor.close()
    # 关闭连接
    connection.close()
使用上下文管理器

自动关闭数据库连接、自动关闭游标

import pymysql

# 数据库连接参数
host = '192.168.xxx.xxx'    # 数据库主机地址
port = 3306                 # 数据库端口
user = 'root'               # 数据库用户名
password = '******'         # 数据库密码
database = 'test'           # 数据库名称
charset = 'utf8mb4'         # 编码格式

# 使用上下文管理器连接到数据库
with pymysql.connect(
        host=host,
        port=port,
        user=user,
        password=password,
        database=database,
        charset=charset
) as connection:
    with connection.cursor() as cursor:
        # 编写sql语句
        sql = "insert into table_test (id, name, age) VALUES (%s, %s, '22')"
        values = (3, 'Spike')  # sql参数

        try:
            # 执行SQL
            cursor.execute(sql, values)
            # 提交事务
            connection.commit()
            print("执行成功")
        except Exception as e:
            print("程序异常")
            connection.rollback()

游标常用方法

执行一条sql语句

语法:

cursor.execute(query, args=None)

  • query是要执行的SQL语句
  • args是SQL语句中的参数

示例:

cursor.execute("insert into table_test (id, name, age) VALUES (%s, %s, '22')", (3, 'Spike'))
执行多条sql语句

语法:

cursor.executemany(query, args)

  • query是要执行的SQL语句
  • args是一个包含多组参数的列表。

示例:

sql = "INSERT INTO table_test (id, name, age) VALUES (%s, %s, %s)"
values = [(1, 'Tom', 20), (2, 'Jerry', 18), (3, 'Spike', 25)]
cursor.executemany(sql, values)
查询一条数据

语法:

cursor.fetchone()

示例:

result = cursor.fetchone()
print(result)
查询多条数据

语法:

cursor.fetchall()

示例:

results = cursor.fetchall()
for row in results:
    print(row)
查询返回结果中指定的行数

语法:

cursor.fetchmany(size)

示例:

# 获取查询结果中的前两行
results = cursor.fetchmany(2)
for row in results:
    print(row)
受影响的行数

语法:

cursor.rowcount

  • 例如执行 INSERT、UPDATE 或 DELETE 操作后影响的行数。

示例:

cursor.execute(sql, value)
# 受影响行数
print(cursor.rowcount)
获取最后插入行的ID

语法:

cursor.lastrowid

  • 获取最后插入行的ID(通常用于 AUTO_INCREMENT 字段)

示例:

cursor.execute(sql, value)
print(cursor.lastrowid)  # 输出最后插入行的ID

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PyMySQL是一个用于Python编程语言的纯Python MySQL客户端库。它实现了Python DB API v2.0规范,并提供了一个简单而直观的接口,用于与MySQL数据库进行交互。 PyMySQL的特点包括: 1. 纯Python实现:PyMySQL完全由Python编写,不依赖于任何其他的C库或驱动程序,因此可以在几乎所有的Python环境中使用。 2. 兼容性:PyMySQLPython DB API v2.0规范兼容,这意味着你可以使用标准的数据库API方法来执行查询、插入、更新和删除等操作。 3. 支持多种连接方式:PyMySQL支持多种连接方式,包括TCP/IP连接、Unix域套接字连接和SSL/TLS加密连接。 4. 支持事务:PyMySQL提供了事务支持,你可以使用begin()、commit()和rollback()方法来管理事务。 5. 支持多种数据类型:PyMySQL支持多种MySQL数据类型,包括整数、浮点数、字符串、日期时间、二进制数据等。 6. 支持预处理语句:PyMySQL支持预处理语句,可以提高执行查询的效率,并防止SQL注入攻击。 使用PyMySQL连接MySQL数据库的基本步骤如下: 1. 安装PyMySQL库:可以使用pip命令来安装PyMySQL库,例如:pip install PyMySQL。 2. 导入PyMySQL模块:在Python代码中导入PyMySQL模块,例如:import pymysql。 3. 建立数据库连接:使用connect()方法建立与MySQL数据库的连接,指定主机、端口、用户名、密码和数据库等参数。 4. 创建游标对象:使用cursor()方法创建一个游标对象,用于执行SQL语句。 5. 执行SQL语句:使用execute()方法执行SQL语句,可以是查询语句、插入语句、更新语句或删除语句等。 6. 获取执行结果:使用fetchone()、fetchall()等方法获取执行结果。 7. 关闭游标和连接:使用close()方法关闭游标和连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

又逢乱世

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值