Python之PyMySQL模块

Python之PyMySQL模块

目录

  • Python之PyMySQL模块
    • 安装
    • 连接数据库
      • `connect`拓展
    • 获取游标
    • 操作数据
        • 查找
        • 添加
        • 更新

安装

pip install pymysql

连接数据库

使用connect函数创建连接对象

此对象提供数据库的关闭、事务提交、事务回滚等操作

示例:

import pymysql# 以下为必填参数
conn = pymysql.connect(user='root',			# 用户名password='123456',	# 密码host='127.0.0.1',		# 服务器地址port=3306,			# 数据库端口database='emp'		# 要连接的数据库)		

connect拓展

进入connect函数可以看到更多参数:

def __init__(self,*,user=None,  	# 用户名password="",	# 密码host=None,		# 连接地址database=None,	# 库名unix_socket=None,	# 如果使用Unix套接字连接到数据库,指定套接字文件的路径port=0,			# 数据库端口号charset="",		# 使用的字符集 MySQL中一般是utf8mb4collation=None,	# 指定排序规则sql_mode=None,	# 连接使用的SQL模式read_default_file=None,	# 指定默认连接参数的配置文件路径conv=None,		# 自定义类型转换器use_unicode=True,	# 是否使用Unicode编码client_flag=0,	# 客户端标志位cursorclass=Cursor,	# 游标类,用于处理查询结果init_command=None,	# 建立连接后执行的初始命令connect_timeout=10,	# 连接超时时间read_default_group=None,	# 读取默认连接参数的组名autocommit=False,	# 是否自动提交事务local_infile=False,	# 是否允许本地加载数据文件max_allowed_packet=16 * 1024 * 1024,	# 允许的最大数据包大小defer_connect=False,# 是否延迟连接auth_plugin_map=None,	# 指定认证插件映射read_timeout=None,	# 读取超时时间(秒)write_timeout=None,	# 写入超时时间(秒)bind_address=None,	# 绑定本地地址binary_prefix=False,# 是否启用二进制前缀program_name=None,	#程序名称server_public_key=None,	# 服务器公钥ssl=None,		# 是否使用SSL/TLS加密连接ssl_ca=None,	# 指定CA证书文件的路径ssl_cert=None,	# 指定客户端证书文件的路径ssl_disabled=None,	#是否禁用SSLssl_key=None,	# 指定客户端私钥文件的路径ssl_verify_cert=None,	# 是否验证服务器证书ssl_verify_identity=None,	# 是否验证服务器身份compress=None,  # 不支持named_pipe=None,  # 不支持passwd=None,	# 已弃用db=None,		# 已弃用)

获取游标

conn = pymysql.connect(user='root',  # 用户名password='7997',  # 密码host='127.0.0.1',  # 服务器地址port=3306,  # 数据库端口database='emp',  # 连接的数据库cursorclass=DictCursor  # 返回字典)
cursor = conn.cursor() # 获取游标

操作数据

查找
import pymysql
from pymysql.cursors import DictCursorconn = pymysql.connect(user='root',  # 用户名password='7997',  # 密码host='127.0.0.1',  # 服务器地址port=3306,  # 数据库端口database='emp',  # 连接的数据库cursorclass=DictCursor  # 返回字典)
cursor = conn.cursor()sql = 'select * from emp5'
cursor.execute(sql)
res = cursor.fetchall()
print(res) # 返回一个由列表包裹的字典# 输出:[{'id': 1, 'name': '张三', 'time': datetime.datetime(2024, 1, 25, 15, 24, 19), 'age': 18, 'wages': 2000, 'dep_id': 203}, {'id': 2, 'name': '倪哥', 'time': datetime.datetime(2024, 1, 25, 15, 34, 11), 'age': 20, 'wages': 1000, 'dep_id': 201}]
添加

进行增删改时注意提交事务conn.commit

import pymysql
from pymysql.cursors import DictCursorconn = pymysql.connect(user='root',  # 用户名password='7997',  # 密码host='127.0.0.1',  # 服务器地址port=3306,  # 数据库端口database='emp',  # 连接的数据库cursorclass=DictCursor  # 返回字典)
cursor = conn.cursor()sql_insert = 'insert into emp5 (name) value(%s) '
# 元组形式传参
cursor.execute(sql_insert, ("嗨嗨嗨",))
conn.commit()	# 提交事务
sql_insert = 'insert into emp5 (name) value(%s) '
# 字典形式传参
cursor.execute(sql_insert, {'emp_name': "员工二号"})
conn.commit()

image-20240126215210837

添加成功~

更新
import pymysql
from pymysql.cursors import DictCursor# 以下为必填参数
conn = pymysql.connect(user='root',  # 用户名password='7997',  # 密码host='127.0.0.1',  # 服务器地址port=3306,  # 数据库端口database='emp',  # 连接的数据库cursorclass=DictCursor  # 返回字典)
cursor = conn.cursor()# 列表形式传参
sql_update = 'update emp5 set name=%s where id=%s '
cursor.execute(sql_update, ['员工三号', 11])
conn.commit()

image-20240126215533935

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/442301.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java大文件分片上传

1.效果图 2.前端html <!DOCTYPE html> <html> <head></head> <body> <form><input type"file" id"fileInput" multiple><button type"button" onclick"upload()" >大文件分片上传&l…

【JAVA】Long类型返回到前端,精度丢失

一. 问题阐述 20位long类型的数字&#xff0c;从后端接口返回到前端后【四舍五入】 MYSQL端 &#xff08;1&#xff09;bigint (20) &#xff08;2&#xff09;具体某一条数据 JAVA端 &#xff08;1&#xff09;实体类 &#xff08;2&#xff09;服务类 &#xff08;3&…

【Vue.js设计与实现】第一篇:框架设计概览-阅读笔记(完结)

从高层设计的角度去探讨框架需要关注的问题。 参考&#xff1a;速读《Vue.js 设计与实现》 - 掘金 (juejin.cn) 系列目录&#xff1a; 标题博客第一篇&#xff1a;框架设计概览【Vue.js设计与实现】第一篇&#xff1a;框架设计概览-阅读笔记第二篇&#xff1a;响应系统【Vue.…

注册亚马逊店铺用动态IP可以吗?

注册亚马逊店铺可以用动态IP&#xff0c;只要是独立且干净的网线就没问题&#xff0c;亚马逊规则要求一个IP地址只能出现一个亚马逊店铺&#xff0c;若使用不当会导致关联账户。 固定ip可以给我们的账户带来更多的安全&#xff0c;要知道关联问题是亚马逊上的一个大问题&#…

Leetcode—1265. 逆序打印不可变链表【中等】Plus

2024每日刷题&#xff08;一零三&#xff09; Leetcode—1265. 逆序打印不可变链表 实现代码 /*** // This is the ImmutableListNodes API interface.* // You should not implement it, or speculate about its implementation.* class ImmutableListNode {* public:* v…

KubeSphere 核心实战之四【在kubesphere平台上部署Ruoyi-cloud项目】(实操篇 4/4)

**《KubeSphere 核心实战系列》** KubeSphere 核心实战之一&#xff08;实操篇 1/4&#xff09; KubeSphere 核心实战之二&#xff08;实操篇 2/4&#xff09; KubeSphere 核心实战之三&#xff08;实操篇 3/4&#xff09; KubeSphere 核心实战之四&#xff08;实操篇 4/4&…

.net core 6 集成 elasticsearch 并 使用分词器

1、nuget包安装NEST、安装elasticsearch、kibana、ik分词器、拼音分词器 2、创建操作对象 //索引库 static string indexName "testparticper"; //es 操作对象 ElasticClient elasticClient new ElasticClient(new ConnectionSettings(new Uri("http://192.…

PyCharm安装教程(超详细),零基础小白也能看懂

一、简介 PyCharm是一款Python IDE&#xff0c;其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具&#xff0c;比如&#xff0c; 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等等。此外&#xff0c;该IDE提供了一些高级功…

第5章 python深度学习——波斯美女

第5章 深度学习用于计算机视觉 本章包括以下内容&#xff1a; 理解卷积神经网络&#xff08;convnet&#xff09; 使用数据增强来降低过拟合 使用预训练的卷积神经网络进行特征提取 微调预训练的卷积神经网络 将卷积神经网络学到的内容及其如何做出分类决策可视化 本章将…

软件工程知识梳理4-详细设计

详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统&#xff0c;也就是说.经过这个阶段的设计工作.应该得出对目标系统的精确描述.从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 详细设计的的目标不仅仅是逻辑上正确地实现每个模块地功能&a…

聆听华为云IoT技术布道师讲解,学习如何为物联网设备注入“华为云+鸿蒙DNA”

前言 一、智能化的基础-物联网 1.1 万物互联是智能化的基础 PC时代&#xff0c;让更多的“人”进入互联网的世界&#xff0c;以获取更多的用户为主要目标。 移动互联网时代&#xff0c;移动设备更加受到青睐&#xff0c;各种“应用”如雨后春笋般“诞生”了。 智能时代&am…

基于CVITEK_CV1821+SOI_Q03P的IPC方案

方案概述&#xff1a; 该方案基于主控平台CVITEK_CV1821和sensor SOI_Q03P&#xff0c;运用于智能监控IP摄像头&#xff0c;可用于户外或室内。采用了2304x1296的分辨率&#xff0c;30的帧率&#xff0c;支持HDR。作为3M的监控摄像头&#xff0c;通过ISP图像调校技术&#xff…