Python学习---利用Python操作数据库

如何理解连接connection和游标 cursor?

connection就像是连接出发地和目的地的高速公路cursor就像是在高速公路上的货车-拉货我们使用游标就可以完成对数据的操作当我们完成操作完成后就可以停下货车,然后公路再停止使用。

 

pysql实现查询 

"""
1、导入模块pymysql
2、建立连接对象pymysql.connect()
3、创建游标对象
4、使用游标对象执行sql语句
5、获取执行的结果
6、打印输出获取的内容
7、关闭游标对象
8、关闭连接对象
"""
# 1、导入模块pymysql
import pymysql

# 2、建立连接对象pymysql.connect()
#   host 主机
#   user 用户名
#   password 密码
#   database 指定数据库
conn = pymysql.connect(host="localhost", user="root", password="root", database="jing_dong")
# 3、创建游标对象
cur = conn.cursor()
# 4、使用游标对象执行sql语句,返回值是影响的行数,如果是查询语句,返回是总记录数
result = cur.execute('select * from goods order by id desc ')
# 5、获取执行的结果
print(f"查询到{result}条数据")
# cur.fetchone()从查询结果中取出一条数据,cur.fetchall()元组套元组
# result_list = cur.fetchone()
result_list = cur.fetchall()
# 6、打印输出获取的内容
# print(result_list)
for line in result_list:
    print(line)
# 7、关闭游标对象
cur.close()
# 8、关闭连接对象
conn.close()

pysql实现增删改:

"""
1、导入模块pymysql
2、建立连接对象pymysql.connect()
3、创建游标对象
4、使用游标对象执行sql语句
5、获取执行的结果
6、打印输出获取的内容
7、关闭游标对象
8、关闭连接对象
"""
# 1、导入模块pymysql
import pymysql

# 2、建立连接对象pymysql.connect()
#   host 主机
#   user 用户名
#   password 密码
#   database 指定数据库
conn = pymysql.connect(host="localhost", user="root", password="root", database="jing_dong")
# 3、创建游标对象
cur = conn.cursor()
# 4、使用游标对象执行sql语句,返回值是影响的行数,如果是查询语句,返回是总记录数
# sql = "insert into goods values (null,'卓尔不凡',1,1,9998,1,1)"
# sql = "delete from goods where id = 25"
sql = "update goods set name='红星闪耀牌' where id=1"
result = cur.execute(sql)
# 5、获取执行的结果
print(f"影响行数:{result}")
# 提交
conn.commit()
# 7、关闭游标对象
cur.close()
# 8、关闭连接对象
conn.close()
  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用Python my-replication读取MySQL binlog可以使用Python第三方库`pymysqlreplication`。 你需要先安装这个库,可以使用命令`pip install pymysqlreplication`进行安装。 然后,你可以使用以下代码读取MySQL binlog: ``` from pymysqlreplication import BinLogStreamReader # 创建BinLogStreamReader对象 stream = BinLogStreamReader( connection_settings = { "host": "localhost", "port": 3306, "user": "root", "passwd": "password" }, server_id=100, blocking=True, only_events=[DeleteRowsEvent, WriteRowsEvent, UpdateRowsEvent] ) # 循环读取事件 for binlogevent in stream: event_type = binlogevent.event_type if event_type == "write_rows": # 处理insert操作 pass elif event_type == "update_rows": # 处理update操作 pass elif event_type == "delete_rows": # 处理delete操作 pass # 关闭BinLogStreamReader stream.close() ``` 在上面的代码中,我们只读取了`DeleteRowsEvent`、`WriteRowsEvent`和`UpdateRowsEvent`三种事件,你也可以根据需要选择性的读取其他事件。 ### 回答2: 利用Python的my-replication库可以轻松地读取MySQL的binlog文件。my-replication提供了一种方便的方式来解析和处理binlog事件。 首先,我们需要安装my-replication库。可以使用pip来安装,命令为pip install my-replication。 然后,我们需要连接到MySQL数据库。可以使用my-replication中的BinLogStreamReader类来连接并读取binlog文件。你需要提供MySQL服务器的主机地址、用户名、密码等信息来建立连接。 接下来,我们可以使用BinLogStreamReader实例化一个对象,并传入需要读取的binlog文件的路径和文件名。 然后,我们可以使用for循环来逐个读取binlog事件。在循环内部,我们可以根据事件的类型来处理不同类型的事件,例如查询事件、插入事件、更新事件等。my-replication为每种类型的事件提供了相应的处理方法和属性。 最后,我们需要在循环结束后关闭BinLogStreamReader对象,并断开与MySQL数据库的连接。 利用Python的my-replication库读取MySQL的binlog文件可以帮助我们实现一些有趣和实用的功能,例如数据同步、数据备份、数据恢复等。同时,通过解析和处理binlog文件,我们还可以了解数据库操作历史和变化。 总结来说,利用Python的my-replication库读取MySQL的binlog文件是一种方便的方式。我们只需几行代码就可以连接到MySQL数据库并读取binlog事件。这为我们处理和分析数据库操作历史提供了很大的便利。 ### 回答3: 使用Python中的my-replication库可以轻松地读取MySQL的binlog。下面是一个简单的步骤来实现这一点: 1. 首先,确保你已经安装了Python和my-replication库。你可以使用pip命令来安装库:`pip install my-replication`。 2. 导入my-replication库:`from mysql import replication` 3. 创建一个BinlogStreamReader对象来读取binlog文件。需要提供MySQL服务器的相关信息,例如主机名、端口号、用户名和密码。下面是一个示例代码: ``` stream = replication.BinlogStreamReader( connection_settings={ "host": "localhost", "port": 3306, "user": "root", "passwd": "password" }, server_id=100, blocking=True ) ``` 在上述代码中,我们使用了本地主机和默认MySQL端口号3306,同时提供了root用户和相应的密码。 4. 接下来,我们可以使用stream对象来读取binlog事件。可以使用for循环迭代stream对象,获取每个事件,并处理它们。下面是一个简单的示例代码,将事件打印出来: ``` for binlog_event in stream: print(binlog_event) ``` 在这个示例中,我们只是简单地将每个binlog事件打印出来。你可以根据你的需求,在这个循环里处理binlog事件。 5. 最后,记得在结束时关闭stream对象,以释放资源:`stream.close()`。 通过以上步骤,你可以使用Python的my-replication库来读取MySQL的binlog,并且可以根据需要对每个binlog事件进行处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值