PyMysql快速上手操作详解

news2024/12/24 10:22:03

pymysql

PyMySQL是从Python连接到MySQL数据库服务器的接口。 它实现了Python数据库API v2.0,并包含一个纯Python的MySQL客户端库

一、PyMysql安装

pip install pymysql 或者
pip3 install pymysql

二、连接数据库

pymysql连接数据库使用的是 pymsql.connect() 函数,其常用参数如下:

在这里插入图片描述

三、数据库常用操作

1、创建数据库
cursor.execute("create database db3 default charset utf8 collate utf8_general_ci")
conn.commit()
2、删除数据库
cursor.execute("drop database db3")
conn.commit()
3、查看数据库
cursor.execute("show databases")
# 获取指令的结果
result = cursor.fetchall()
print(result) # (('information_schema',), ('db3',), ('mysql',), ('performance_schema',), ('sys',))
4、进入数据库、查看表

cursor.execute("use mysql")
cursor.execute("show tables")
result = cursor.fetchall()
print(result) # (('columns_priv',), ('db',), ('engine_cost',), ('event',), ('func',), ('general_log',),..
5、创建数据表
cursor.execute("use db4")
sql = """
create table L4(
    id int not null primary key auto_increment,
    title varchar(128),
    content text,
    ctime datetime
)default charset=utf8;
"""
cursor.execute(sql)
conn.commit()

四、数据表常用操作

连接完数据库后,需要创建一个游标对象,模块会通过游标对象来执行sql语句以及获取查询结果,接下来直接通过代码展示各方法。

# 示例
import pymysql
 db = pymysql.connect(
	host = '127.0.0.1',
	port = 3306,
	user = 'root',
	password = 'admin',
	db = 'students',
	charset = 'utf8'
	)
	
# 获取mysql服务信息(测试连接,会输出MySQL版本号)
print(db.get_server_info())

cursor = db.cursor()  # 创建游标卡尺
# 创建游标(查询数据返回为字典格式)
cursor = db.cursor(pymysql.cursors.DictCursor)
sql = 'show databases'  # sql语句
try:
	cursor.execute(sql) # 执行sql语句
	cursor.commit()  # 提交事务
except:
	db.rollback()  # 若出现错误,则回滚

one = cursor.fetchone() # 获取一条数据
many = cursor.fetchmany(3) # 获取多条数据
all = cursor.fetchall() # 获取所有数据

cursor.close()  # 关闭游标
db.close() # 关闭数据库链接	

# 注意事项:
# 从结果可以看出,fetchone(),fetchmany(size),fetchall() 三个函数返回值都是元组
# 但是fetchone()返回的是单个元组,另外两个返回的都是元组的嵌套。

一旦建立了与数据库的连接,我们就可以执行各种SQL操作,例如插入、更新、删除和查询等。以下是一些常见的SQL操作示例:

1、插入数据
sql = "INSERT INTO mytable (name, age) VALUES ('John', 25)"
cursor.execute(sql)
conn.commit()
2、删除数据
sql = "DELETE FROM mytable WHERE name = 'John'"
cursor.execute(sql)
conn.commit()
3、修改数据/更新数据
sql = "UPDATE mytable SET age = 26 WHERE name = 'John'"
cursor.execute(sql)
conn.commit()
4、查询数据
sql = "SELECT \* FROM mytable"
cursor.execute(sql)
conn.commit()
# 只要不涉及数据的更改,可以不需要调用commit()方法提交更改
result = cursor.fetchall()
for row in result:
    print(row)

# 注意事项:
# 使用cursor.execute()方法来执行SQL语句,当更改表中数据时,必须调用conn.commit()方法来提交更改,否则数据库表中的数据不会发生改变。操作完成后,可以使用cursor.fetchall()方法获取查询结果,该方法返回一个元组。

五、其他

1、 游标对象的方法:

在这里插入图片描述

2、其他方法

在这里插入图片描述

3、【拓展】 :执行sql语句时,sql里面的参数,可能需要动态传参
# 一是采用format函数
# 但是一般情况下不推荐使用format函数,因为format函数里的内容可以比较长,内容比较多,可能造成sql注入等一系列安全问题,比如插入执行了一条删除语句,可能就会造成表的删除
sql = "select * from users where phonenum ={};".format(phone)

# 2、二是通过%s占位符
sql = "select * FROM users  WHERE birth_year < %s and birth_month > %s "
cursor.execute(sql=sql,args=[2000,4])

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库设计笔记3-事务管理,冲突串行化,锁定协议,死锁测试

#1.指令冲突 注&#xff1a;读读操作不冲突&#xff0c;剩下的冲突。 #2.冲突串行化 <1理解 如果一个调度可以在不改变冲突操作顺序的情况转换为任意串行调度&#xff0c;那么两个调度的结果是相同的&#xff0c;也就是说这个调度是可冲突串行化的 <2正反举例 <3测…

【教师秘籍】AI预测学生未来?职场规划大揭秘!

​声明&#xff1a;此篇为 ai123.cn 原创文章&#xff0c;转载请标明出处链接&#xff1a;https://ai123.cn/2150.html 嘿老师们&#xff0c;你们有没有和我一样的烦恼&#xff1a;学生各有千秋&#xff0c;家长各有各的操心&#xff0c;信息一箩筐却总是不够用&#xff1f;&am…

基于JAVA的校园跑腿网站的设计与实现

摘要 随着计算机技术&#xff0c;网络技术的迅猛发展&#xff0c;Internet 的不断普及&#xff0c;网络在各个领域里发挥了越来越重要的作用。特别是随着近年人民生活水平不断提高&#xff0c;校园跑腿网站给学校的业务带来了更大的发展机遇。 在经济快速发展的带动下&#xff…

[NPUCTF2020]ReadlezPHP1

打开题目&#xff0c;看到信息 ctrlu查看源代码 看到php代码&#xff0c;打开 代码审计看一下&#xff0c;进行代码审计&#xff0c;发现存在反序列化语句&#xff1a;$ppp unserialize($_GET["data"]);和执行漏洞&#xff1a;echo $b($a);&#xff0c;此处未想到fl…

荟萃科技:海外问卷调查项目可以长期做不?

当然可以&#xff01; 我已经做了两年多的海外问卷调查了&#xff0c;我觉得还是蛮有发言权的。 现在网络飞速发展&#xff0c;实体的生意也越来越来越不好做了&#xff0c;有人就把目标转移到了网络上&#xff0c;想知道一些其他的网络项目能不能做&#xff0c;如果能找到一…

【可控图像生成系列论文(六)】ECCV24-Glyph-ByT5 微软亚研院、清华、北大合作工作(上)

系列文章目录 【可控图像生成系列论文&#xff08;一&#xff09;】 简要介绍了 MimicBrush 的整体流程和方法&#xff1b;【可控图像生成系列论文&#xff08;二&#xff09;】 就 MimicBrush 的具体模型结构、训练数据和纹理迁移进行了更详细的介绍。【可控图像生成系列论文…

提示词工程学的前世今生:Generative Pre-trained Transformer 到AIGC,再到Prompt Engineering

人工智能&#xff08;Artificial intelligence&#xff0c;AI&#xff09;的演进已然变革了我们对于技术的理解以及应用方式。自最初的规则系统直至当下的深度学习&#xff0c;AI 在众多领域均彰显出了极为巨大的潜力。当中&#xff0c;生成式预训练模型&#xff08;Generative…

浮毛烦恼不复存在!不容错过的养宠好物——宠物空气净化器

猫咪一年有两次换毛季&#xff0c;多集中在春夏和秋冬&#xff0c;尤其是在春季&#xff0c;换毛时长可以达到一个月之久。在此期间。猫咪会疯狂掉毛&#xff0c;需要铲屎官们在此期间做好相关措施&#xff0c;让猫咪顺利度过换毛季。其中&#xff0c;最重要的就是猫毛清理&…

PLC远程控制网关再也不用劳累出差

在当今快速发展的工业4.0时代&#xff0c;随着智能制造与物联网技术的深度融合&#xff0c;工厂自动化系统的远程监控与管理已成为提高生产效率、优化资源配置的关键。其中&#xff0c;可编程逻辑控制器&#xff08;PLC&#xff09;作为工业控制的核心部件&#xff0c;其远程控…

Retrofit 自定义注解 实现可选择性的打印接口日志

序言 有时候我们需要打印okhttp的日志&#xff0c;但是现在的日志拦截器&#xff0c;不能做到接口级别的日志输出控制。要么就是全部打印。这样很影响调试效率。所以我在这块做了一些探索。 使用效果 普通输出 只需要在要打印日志的接口上添加 PrintLog 注解就可以打印&…

奥运足球背后的中国小公司

有一家中国的小公司叫做顶碁运动&#xff0c;居然打败了耐克和阿迪达斯这样的巨头&#xff0c;成功地成为了现在巴黎奥运会的足球供应商。 顶碁运动研发的足球&#xff0c;最大的优点就是能够在一秒钟之内精准地识别500次。因为他们在足球的内胆里面装置了芯片和传感器&#xf…

【Linux】:进程控制1(创建、终止、等待)

目录 1.进程创建 2.进程终止&#xff08;退出&#xff09; 2.1 什么是进程终止 2.2 进程退出的场景&#xff08;原因&#xff09; 2.3 进程退出码 2.4 错误码errno 2.5 进程常见的退出方法 正常终止 从main函数返回 调用库函数exit 系统接口_exit 3.进程等待 3.1 …

[qt] 多线程应用02

源码: 点击此处 一 UI 1.1 效果 1.2 代码 首先定义一系列的控件和按钮&#xff0c;用来显示Tcp连接数据信息。 QLabel *m_serverNameLabel;QLineEdit *m_serverLineEdit;QLabel *m_portLabel;QLineEdit *m_portLineEdit;QDateTimeEdit *m_d…

【书生大模型实战营第三期】基础岛 第3关 浦语提示词工程实践

欢迎大家参与第三期书生大模型实战营&#xff01;&#xff01;&#xff01; 1. 基础任务 背景问题&#xff1a;近期相关研究发现&#xff0c;LLM 在对比浮点数字时表现不佳&#xff0c;经验证&#xff0c;internlm2-chat-1.8b&#xff08;internlm2-chat-7b&#xff09;也存在这…

数据结构——排序(2):选择排序+交换排序

目录 一、选择排序 &#xff08;1&#xff09;直接选择排序 ①思路 ②过程图示 ③代码实现 ④代码解释 ⑤优化 1.代码实现 2.过程图示 3.代码解释 4.注意 ⑥直接选择排序的复杂度 &#xff08;2&#xff09;堆排序 ①注意 ②代码实现 二、交换排序 &#xff08…

一键生成!AI绘画、视频制作与写作神助攻

市面上有各种各样的AI助手&#xff0c;它们覆盖了文字处理、图像编辑、视频制作到语音识别等众多领域。这些工具设计得既实用又友好&#xff0c;几乎每个人都能找到适合自己的那一款。 1. 文字处理助手 文本生成&#xff1a;帮你快速创作文章、博客等内容。 内容优化&#xff…

操作ArkTS页面跳转及路由相关心得

本文为JS老狗原创。 当前端不得不关注的点&#xff1a;路由&#xff0c;今天聊一聊鸿蒙相关的一点心得。 总体上套路不意外&#xff0c;基本就是&#xff08;尤其是Web&#xff09;前端那些事&#xff1a;维护路由表、跳转带参数、历史堆栈操作&#xff0c;等等。 历史原因&…

越秀·星汇城|大城好生活

建筑&#xff0c;是美好生活的载体。而户型则是住宅的灵魂&#xff0c;一处好的居所&#xff0c;承载理想生活盛放。 细腻的美好藏在生活各个角落&#xff0c;星汇城以24小时贯穿的细节享受&#xff0c;重新定义幸福该有的舒适。诉说生活的达观&#xff0c;臻藏岁月静好。 8:…

windows系统获取网卡信息

在抓包或者使用socket&#xff0c;或者监听端口时&#xff0c;如果使用的是pcap4j类库&#xff0c;就会用到网卡信息&#xff0c;那么怎么查看本机的网卡信息呢&#xff0c;Linux的比较方便&#xff0c;直接通过ifconfig命令就能看到&#xff0c; windows的比较麻烦一点&#x…

【名单】山东省2024年度第一批DCMM贯标试点企业名单

​各市工业和信息化局&#xff1a; 为深入贯彻全省工业经济头号工程推进会议有关部署&#xff0c;全面落实《关于加快数字经济高质量发展的意见》《2024年“促进经济巩固向好、加快绿色低碳高质量发展”政策清单&#xff08;第一批&#xff09;》等文件要求&#xff0c;充分发…