pymysql库
PyMySQL
PyMySQL 是一个用于在 Python 中操作 MySQL 数据库的库。它是一个纯 Python 编写的 MySQL 客户端,可以通过它连接、查询、插入、更新和删除 MySQL 数据库中的数据。可以使用 pip 来进行安装pymysql库
Cursor对象
数据库 Cursor(游标)是一种可编程的数据库对象,用于在查询结果集中遍历和操作数据。通过使用 Cursor,我们可以在数据库中执行SQL 查询、检索数据和对数据进行更新、插入或删除等操作。在使用 Cursor 时,首先要创建一个 Cursor 对象,并将其与一个查询关联。随后,可以使用游标方法来检索数据,该方法可以使用循环结构反复调用,以遍历整个结果集。
Cursor主要用于需要逐行处理数据的复杂业务逻辑、可以进行更新或删除等操作、允许在结果集上进行迭代
- 动态查询,在查询结果中获取特定字段或行
- 更新或删除数据库中的数据
- 批量插入或更新等
若要执行SQL语句时,则需要使用cursor对象,可通过connection对象的cursor()方法进行创建。
以下是一些常用的Cursor对象方法和操作:
-
移动光标:
- cursor.fetchone(): 从结果集中获取下一行数据,返回一个单个的结果行,当没有更多的行时返回None。
- cursor.fetchmany(n): 从结果集中获取指定数量(n)的行数据,返回一个包含这些行的列表。
- cursor.fetchall(): 从结果集中获取所有剩余的行数据,返回一个包含所有行的列表。
- cursor.scroll(n): 将光标相对于当前位置移动n行,正数表示向下移动,负数表示向上移动。
-
访问数据:
- cursor.rowcount: 获取结果集中的行数。
- cursor.description: 获取结果集的列描述信息,返回一个包含元组的列表,每个元组表示一列的描述,如列名、数据类型等。
- cursor.execute(sql, params): 执行SQL语句,可以使用参数(params)来传递查询参数。
-
修改数据:
- cursor.execute(sql, params): 执行SQL语句,可以用于插入、更新或删除数据。
- cursor.executemany(sql, seq_of_params): 执行多个SQL语句,每个语句都可以使用不同的参数。
pymysql操作步骤
对于图解,操作步骤说明:
(1)导入模块;
(2)创建连接对象;
(3)创建游标对象;
(4)使用游标对象执行SQL并进行增删改查;
(5)关闭游标对象;
(6)关闭连接对象。
connect对象常用方法
对数据库的操作
- 插入
# 1、导入模块
import pymysql
# 2、创建连接对象
conn = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='123456',
database= 'zz20db_students',
charset='utf8'
)
print(conn) # 测试一下服务器是否联通
# 3、获取游标
db_cursor = conn.cursor()
# 4、使用游标来执行sql
result = db_cursor.execute("insert into student(name,gender,age) values ('刘备','男',23)")
print(result) # 返回影响的行数
# 5、增删改之后,一定要让操作生效,必须要提交事务,否则不生效
conn.commit()
# 6、关闭游标对象;
db_cursor.close()
# 7、关闭连接对象。
conn.close()
- 查询
# 建立数据库连接
connection = pymysql.connect(
host='localhost',
user='your_username',
password='your_password',
database='your_database',
charset='utf8mb4'
)
try:
with connection.cursor() as cursor:
# 执行查询
cursor.execute("SELECT id, name FROM users")
# 获取查询结果
results = cursor.fetchall()
# 输出结果
for row in results:
print(f"ID: {row[0]}, Name: {row[1]}")
finally:
connection.close()
- 修改
# 1、导入模块
import pymysql
# 2、创建连接对象
conn = pymysql.connect(
host='192.168.88.100',
port=3306,
user='root',
password='123456',
database= 'zz20db_students',
charset='utf8'
)
print(conn) # 测试一下服务器是否联通
# 3、获取游标
db_cursor = conn.cursor()
# 4、使用游标来执行sql
result = db_cursor.execute("""
update student set name = '大乔' where id = 4
""")
print(result) # 返回影响的行数
# 5、增删改之后,一定要让操作生效,必须要提交事务,否则不生效
conn.commit()
# 6、关闭游标对象;
db_cursor.close()
# 7、关闭连接对象。
conn.close()