首页 > 数据库 >爬虫-Python操作MySQL数据库

爬虫-Python操作MySQL数据库

时间:2024-05-25 15:45:14浏览次数:27  
标签:Python commit MySQL 爬虫 cursor sql test close conn

Python操作MySQL数据库

1、安装

pip install pymysql

2、连接数据库

使用connect函数创建连接对象,此连接对象提供关闭数据库、事务提交、事物回滚等操作。

import pymysql
conn = pymysql.connect(
    host='127.0.0.1',
    user='xxx',
    password='xxxx',
    port=3306,
    database='test'
)

3、主要方法

方法 功能
cursor() 获取游标对象,操作数据库
commit() 提交事务
rollback() 回滚事务
close() 关闭数据库连接

4、操作数据库

查询操作

# 创建游标,查询数据以元组形式返回
cursor = conn.cursor()
# 创建游标,查询数据以字典形式返回
cursor = conn.cursor(pymysql.cursors.DictCursor)

# 查询的SQL语句
sql = 'select * from player_info_test limit 10'
cursor.execute(sql)
result = cursor.fetchall()  # 返回所有数据
result = cursor.fetchone()  # 返回一行数据
result = ccursor.fetchmany(2)  # fetchmany(size) 获取查询结果数据集中指定数量的记录,默认为1
print(result)
# 关闭游标
cursor.close()
# 关闭连接
conn.close()

插入操作

插入操作中参数可以以元组、列表和字典形式传入,需要用到占位符"%s",注意这个只是占位符,不同于python中的转换说明符。

# 元组、列表形式传参
sql = 'insert into test(ID,NAME,AGE) VALUES(%s,%s,%s)'
cursor.execute(sql,("999","lili",23))
conn.commit()
cursor.close()
conn.close()

# 字典形式传参
sql = 'insert into test(ID,NAME,AGE) VALUES(%(id)s,%(name)s,%(age)s)'
cursor.execute(sql,{"id":"111","name":"Mike","age":28})
conn.commit()
cursor.close()
conn.close()

批量插入操作

sql='insert into test(ID,NAME,AGE) VALUES(%s,%s,%s)'
val=[
    (4,'李四',20),
    (5,'Jack',22),
    (6,'Tom',21)
]
cursor.executemany(sql,val)
conn.commit()
print(mycursor.rowcount,'记录插入成功')

更新操作

sql = 'updata test set NAME=%s where ID = %s'
cursor.execute(sql, ['liu', '999998'])
conn.commit()
cursor.close()
conn.close()

删除操作

sql = 'delete from  test where ID = %s'
try:
    cursor.execute(sql, ['999999'])
    conn.commit()
except Exception as e:
    conn.rollback()
    print(e)
finally:
    cursor.close()
    conn.close()

image-20240525114040969

标签:Python,commit,MySQL,爬虫,cursor,sql,test,close,conn
From: https://www.cnblogs.com/dxmstudy/p/18212496

相关文章

  • 在excel中使用python 快速作图示例
    前言Excel中可以使用python算是一个旧闻了,是python之父GuidovanRossum加入微软的重要产品。刚出来的第一时间我也尝鲜了,最近作图的时候,再次使用了这个功能,感觉非常方便,推荐大家也用一下。优点:Python在云端运行,无需部署环境。可以编写脚本来自动化日常的Excel任务......
  • 图书管理系统(二)--用户模块--Python版
    本课题要求编写Python程序实现对图书信息录入、图书信息查询、图书借阅等方面的管理。一个综合的图书借阅管理系统,要求能够管理图书的基本信息(包含新图书入库、读者图书查询借阅等),需要实现以下功能:读取以数据文件形式存储的图书信息;管理员可以增加、修改、删除图书的信息;读者可......
  • mysql多实例创建
    mysql数据库(DBMS+数据库)系统:rock8.8mysql:mariabd-server10.3前提:关闭SElinux关闭防火墙时间同步安装mariabdyum-yinstallmariadb-server准备三个实例的目录mkdir-pv/mysql/{3306,3307,3308}/{data,etc,socket,log,bin,pid}生成数据文件mysql_install_db--user=......
  • pyinstaller 打包无窗口python http.server无法启动
    最近在写一个简单的文件服务器用来访问静态文件,遇到在pyinstaller无窗口模式下无法启动的问题,记录一下解决方案。原因:http.server需要将记录输出到窗口,而pyinstaller打包无窗口模式没有地方输出classBaseHTTPRequestHandler(socketserver.StreamRequestHandler):.........
  • docker安装MySQL8.0.35主从复制(实战保姆级)
    很久没有记录了,今天有时间就记录一下最近安装遇到的问题 liunx安装docker这个是前提,就不多过述1准备两台服务器10.104.13.13910.104.13.1402确保liunx安装的docker正常运行的ps:最好提前关闭防火墙或者提前开放对应端口不然同步会失败的关闭防火墙后记得重启docker......
  • python多线程
    1、当程序中有耗时操作时,我们应该使用多线程来进行操作。多线程就像是多辆火车,可以在不同的轨道上同时运行。而进程就像是火车站,正在运行的一个程序的实例。python中多线程可以提供threading模块来实现。简单的多线程案例:importthreadingimporttime#定义线程执行的......
  • Python中动态调用C#的dll动态链接库中方法
    在Python中调用C#的dll库_哔哩哔哩_bilibili 环境准备: 安装pythonnetpipinstallpythonnet 在Python中调用C#动态链接库(DLL),可以使用pythonnet库,它允许直接使用.NET的程序集。以下是一个示例,展示如何使用pythonnet调用C#动态链接库中的方法。【pythonnet详解】—......
  • wxPython==4.2.1 aui.AuiToolBar 如何去掉烦人的抓手?
    aui.AuiToolBar如何去掉烦人的抓手?最近在用wxPython做一些GUI小应用,发现工具栏总有几个点(抓手),很影响美观,如下:目前官方没有提供隐藏抓手的功能,需要更改源码的auibar.py文件注释掉对应代码。如下:#注释这句,大致在auibar.py+3480(不同版本可能有差异)#self._art.DrawGrip......
  • 使用网络爬虫爬取省市区县的经纬度
    我们从阿里云的数字可视化平台获取数据 http://datav.aliyun.com/tools/atlas爬取的链接如下:湖北省(不包含子区域):https://geo.datav.aliyun.com/areas_v3/bound/420000.json湖北地级市(包含子区域):https://geo.datav.aliyun.com/areas_v3/bound/420100_full.json(武汉市为例)湖北......
  • 等保三级-MySQL 加固
    1、身份鉴别要求:建议身份密码登录,身份标识具有唯一性,身份鉴别信息具有复杂度要求,密码长度最少为8位,密码由数字、字母大小写、特殊符号组成、并设置定期更换,更换时间最长位90天(1)查看所有用户:selectuser,hostfrommysql.user;(2)查看密码复杂度插件select*frommysql......