[Python进阶] Python操作MySQL数据库:pymysql

news2024/10/5 20:32:42

7.7 操作MySQL数据库:pymysql

7.7.1 准备工作(创建mysql数据库)

PHPStudy介绍:
phpstudy是一款非常有用的PHP开发工具,旨在帮助开发者更加便捷地进行PHP程序的开发与调试。它提供了一个友好的图形用户界面,使得用户能够方便地进行配置和管理本地的PHP开发环境。
phpstudy还提供了一些实用的功能和工具,帮助开发者更加高效地编写和调试PHP程序。它包含了代码编辑器,用户可以方便地编写和编辑PHP代码。并且,phpstudy还内置了调试工具,可以帮助开发者定位和解决程序中的Bug。此外,phpstudy还提供了数据库管理工具,使得开发者能够方便地管理和操作MySQL数据库。
总之,phpstudy是一款非常有用的PHP开发工具。它提供了快速搭建开发环境的能力,并且提供了许多实用的功能和工具,帮助开发者更加高效地编写和调试PHP程序。
Navicat Premium介绍:
Navicat Premium是一款数据库管理工具,它提供了方便快捷的数据库管理和开发功能,支持多种数据库类型,包括MySQL、PostgreSQL、Oracle等等。
Navicat Premium具有直观的图形用户界面和强大的功能,可以帮助用户轻松地创建、编辑和管理数据库,同时提供了数据导入、导出、同步和备份功能,使得数据的处理更加高效和灵活。
此外,Navicat Premium还支持多种语言,可以轻松适应不同地区和领域的需求。总的来说,Navicat Premium是一款功能强大、易用可靠的数据库管理工具。
下载安装并启动MySQL数据库:
1、进入PHPStudy官网:https://www.xp.cn/download.html
2、下载PHPStudy并安装
3、启动PHPStudy中首页,点击启动MySQL,如下图:
在这里插入图片描述

4、此时,PHPStudy已经自动创建了MySQL数据库,用户和密码可以在数据库页面查看。如下图:
在这里插入图片描述

5、下载并安装Navicat Premium(MySQL数据库可视化操作工具)
6、安装pymysql库:

pip install pymysql

7、通过Navicat Premium连接刚才创建的数据库,创造一些测试表和数据进去。

7.7.2 用Python操作MySQL数据库

7.7.2.1 连接数据库
import pymysql

db = pymysql.connect(host="localhost", user="root", password="root", database="mysql")  # 连接
cursor = db.cursor()  # 创建游标
cursor.execute("SELECT VERSION()")  # 执行查询
# 获取查询结果
print(f"Database version : {cursor.fetchone()[0]}")
db.close()  # 关闭连接
7.7.2.2 创建表
import pymysql

db = pymysql.connect(host="localhost", user="root", password="root", database="mysql")  # 连接
cursor = db.cursor()  # 创建游标
cursor.execute('DROP TABLE IF EXISTS employee')  # 使用execute()方法执行SQL,如果表存在则将其删除
# 使用预处理语句创建表
sql = """CREATE TABLE `employee` (
  `first_name` varchar(255) DEFAULT NULL COMMENT '姓',
  `last_name` varchar(255) DEFAULT NULL COMMENT '名',
  `age` int(11) DEFAULT NULL COMMENT '年龄',
  `sex` varchar(255) DEFAULT NULL COMMENT '性别',
  `income` varchar(255) DEFAULT NULL COMMENT '收入'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
"""
cursor.execute(sql)  # 执行SQL语句
db.close()  # 关闭数据库连接
7.7.2.3 表_插入数据
import pymysql

db = pymysql.connect(host="localhost", user="root", password="root", database="mysql")  # 连接
cursor = db.cursor()  # 创建游标
sql = "INSERT INTO employee(first_name, last_name, age, sex, income) VALUES ('张', '三', 38, '女', 15000)"  # SQL语句:向数据表中插入数据
try:
    cursor.execute(sql)  # 执行SQL语句
    db.commit()  # 提交事务到数据库执行
except:
    db.rollback()  # 如果发生错误则执行回滚操作
db.close()  # 关闭数据库连接
7.7.2.4 表_查询数据
import pymysql

db = pymysql.connect(host="localhost", user="root", password="root", database="mysql")  # 连接
cursor = db.cursor()  # 创建游标
sql = "SELECT * FROM employee WHERE income > 1000 "  # SQL语句:查询
try:
    cursor.execute(sql)  # 执行SQL语句
    results = cursor.fetchall()  # 获取所有的记录列表
    for row in results:
        print(row)  # 打印列表元素
        first_name = row[0]  # 姓
        last_name = row[1]  # 名
        age = row[2]  # 年龄
        sex = row[3]  # 性别
        income = row[4]  # 收入
        print(first_name, last_name, age, sex, income)  # 打印列表元素
except:
print('无法获取到数据!')
db.close()  # 关闭数据库连接
7.7.2.5 表_修改数据
import pymysql

db = pymysql.connect(host="localhost", user="root", password="root", database="mysql")  # 连接
cursor = db.cursor()  # 创建游标
sql = 'UPDATE employee SET age = age + 5 WHERE sex = "女"'  # SQL语句,执行更新操作
try:
    cursor.execute(sql)  # 执行SQL语句
    db.commit()  # 提交到数据库执行
except:
    db.rollback()  # 发生错误时回滚
db.close()  # 关闭数据库连接
7.7.2.6 表_删除数据
import pymysql

db = pymysql.connect(host="localhost", user="root", password="root", database="mysql")  # 连接
cursor = db.cursor()  # 创建游标
sql = 'DELETE FROM employee WHERE income > 5000 AND age >35'  # SQL语句,执行删除操作
try:
    cursor.execute(sql)  # 执行SQL语句
    db.commit()  # 提交到数据库执行
except:
    db.rollback()  # 发生错误时回滚
db.close()  # 关闭数据库连接

7.7.3 问题及报错

报错1:使用Navicat连接数据库后发现看不到需要操作的数据库或者使用Python连接数据库的时候报错:Access denied for user ‘root’@‘%’ to database ‘netai_test’
原因:这是由于创建数据库后没有对用户授权,使用户可以访问数据库的原因。但是本地访问可以。
处理:打开Navicat,创建以root用户的连接,然后在要操作的数据库中新建查询,执行如下语句:grant all on (数据库名).* to ‘(用户)’@‘%’ identified by ‘(用户密码)’ with grant option;

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

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

相关文章

Unity 编辑器篇|(五)编辑器拓展GUILayout类 (全面总结 | 建议收藏)

目录 1. 前言2. 参数3. 功能3.1 按钮:Button、RepeatButton3.2 文本:Label、TextArea、TextField、PasswordField3.3 工具栏:Toolbar3.4 切换框:Toggle3.5 滚动条:HorizontalScroll 、VerticalScroll3.6 滑条&#xff…

5G工业路由器专业版(视频监控专用5G路由器)

​大家好,今天给大家推荐一款强大的5G工业级路由器——SR510 5G工业级路由器系列产品。这款路由器集4G/5G网络、虚拟专网等多种技术于一体,提供稳定的工业级网络解决方案,非常适合部署在需要高速传输、低延时的视频监控场景中。 x更多详情:(key-iot.com…

pytorch12:GPU加速模型训练

目录 1、CPU与GPU2、数据迁移至GPU2.1 to函数使用方法 3、torch.cuda常用方法4、多GPU并行运算4.1 torch.nn.DataParallel4.2 torch.distributed加速并行训练 5、gpu总结 往期回顾 pytorch01:概念、张量操作、线性回归与逻辑回归 pytorch02:数据读取Data…

.NET 反射的介绍和简单应用

什么是反射? 反射就是动态发现类型信息的能力。它帮助程序设计人员在程序运行时利用一些信息去动态地使用类型,这些信息在设计时是未知的,这种能力类似于后期绑定。反射还支持的更高级的行为,能在运行时动态创建新类型&#xff0…

云原生微服务之分布式锁框架 Redisson

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 系列专栏目录 [Java项目…

倒F天线设计经验分享

一、IFA天线理论分析 为了改善ILA天线难以使用的缺点,在ILA天线的基础上再增加一个倒L结构,形成IFA天线,此种天线体积小、易于匹配并具有双极化的特点,而在蓝…

「JavaSE」类和对象2

🎇个人主页:Ice_Sugar_7 🎇所属专栏:快来卷Java啦 🎇欢迎点赞收藏加关注哦! 类和对象2 🍉匿名对象🍉关键字static🍌static修饰成员变量🍌static修饰成员方法&…

springboot项目创建及采用本地tomcat打包发布

springboot项目发布 maven使用 解压maven安装包 修改配置文件settings.xml 更改镜像(使用maven添加依赖时&#xff0c;选择下载的地址&#xff0c;百度云已提供) <mirror><id>nexus-aliyun</id><mirrorOf>*</mirrorOf><name>Nexus aliyu…

天津Java开发培训哪家好?选Java培训班要考虑

在当今社会&#xff0c;Java语言在软件开发领域具有举足轻重的地位&#xff0c;Java是一门面向对象编程语言&#xff0c;Java语言集合了C的优点&#xff0c;丢弃了缺点&#xff0c;所以Java语言表现的功能强大而简单易用&#xff0c;已经得到越来越多的应届毕业生和职场新人的认…

Vue Axios——前端技术栈

文章目录 基本介绍Vue是什么&#xff1f; MVVMVue的使用快速入门注意事项和使用细节 Vue 数据绑定机制分析数据单向渲染注意事项和细节 双向数据绑定事件绑定示例&#xff1a;注意事项和使用细节课后作业1课后作业2 修饰符示例 条件渲染/控制: v-if v-showv-if VS v-show课后作…

ART-Adversarial Robustness Toolbox检测AI模型及对抗攻击的工具

一、工具简介 Adversarial Robustness Toolbox 是 IBM 研究团队开源的用于检测模型及对抗攻击的工具箱&#xff0c;为开发人员加强 AI模型被误导的防御性&#xff0c;让 AI 系统变得更加安全&#xff0c;ART支持所有流行的机器学习框架 &#xff08;TensorFlow&#xff0c;Ker…

外贸建站是什么意思?海洋建站需要多少钱?

外贸建站与独立站的区别&#xff1f;新人如何玩转外贸自建站&#xff1f; 在当今数字化时代&#xff0c;随着全球市场的不断融合&#xff0c;外贸建站成为了许多企业扩大业务的关键一环。那么&#xff0c;究竟什么是外贸建站&#xff1f;海洋建站将深入探讨这个问题&#xff0…

AIGC ChatGPT 4 Prompt 万能提示词公式

最近大家都在使用ChatGPT来帮助自己完成相应的工作。很多时候大家提出的问题得不到很清晰,很明确的答案。 我们应该怎么样来和ChatGPT进行有效的沟通呢? 例如我们先来问一问ChatGPT: 要获得最准确的回复,请确保遵循以下建议: 明确性:请尽量明确描述您的问题。确保提供足…

leetcode 17 电话号码字母组合

题目 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入&#xff1a;digits “23” 输出&#xf…

目标检测应用场景—数据集【NO.25】牛行为检测数据集

写在前面&#xff1a;数据集对应应用场景&#xff0c;不同的应用场景有不同的检测难点以及对应改进方法&#xff0c;本系列整理汇总领域内的数据集&#xff0c;方便大家下载数据集&#xff0c;若无法下载可关注后私信领取。关注免费领取整理好的数据集资料&#xff01;今天分享…

【AIGC】美丽自然风光的一组绝美高清图提示词解析

好的&#xff0c;我可以帮你提取关键信息并整理到表格中。以下是根据你提供的描述&#xff0c;整理的表格&#xff1a; 关键信息描述场景夜晚的海滩风格奇幻色彩蓝色和绿色的荧光光源巨大的月亮、精灵般的光芒、星星、星斑海面泛着荧光沙滩金色&#xff0c;闪烁着光芒夜空繁星…

Odrive 学习系列二:将烧录工具从ST-Link V2修改为JLink

一、背景: 通过观察odrive解压后的内容,可以看到在下面配置文件及makefile文件中的配置设置的均为openOCD + stlink v2,例如makefile中: # This is only a stub for various commands. # Tup is used for the actual compilation.BUILD_DIR = build FIRMWARE = $(BUILD_DI…

Camtasia2024最新版本如何进行电脑录制屏幕?

在现在的网络互联网时代&#xff0c;越来越多的人走上了自媒体的道路。有些自媒体人会自己在网络上录制精彩视频&#xff0c;也有一些人会将精彩、热门的电影剪辑出来再加上自己给它的配音&#xff0c;做成大家喜欢看的电影剪辑片段。相信不管大家是自己平时有独特的爱好也好、…

酷开系统 | 酷开科技挖掘与消费者深度链接的价值共鸣

市场的变化更迭速度日新月异&#xff0c;随着OTT行业的迅速发展&#xff0c;以及品牌方对于营销水准要求的逐步提高&#xff0c;以大屏为主的营销方向已成为目前营销发展的主要趋势。在互联网信息化发展的大趋势下&#xff0c;酷开科技不拘泥于现有格局&#xff0c;不断提升自身…

LeetCode 589. N 叉树的前序遍历

589. N 叉树的前序遍历 给定一个 n 叉树的根节点 root &#xff0c;返回 其节点值的 前序遍历 。 n 叉树 在输入中按层序遍历进行序列化表示&#xff0c;每组子节点由空值 null 分隔&#xff08;请参见示例&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [1,nul…