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

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 pymysqldb = 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 pymysqldb = 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 pymysqldb = 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 pymysqldb = 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 pymysqldb = 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 pymysqldb = 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.rhkb.cn/news/238917.html

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

相关文章

Flink 处理函数(1)—— 基本处理函数

在 Flink 的多层 API中,处理函数是最底层的API,是所有转换算子的一个概括性的表达,可以自定义处理逻辑 在处理函数中,我们直面的就是数据流中最基本的元素:数据事件(event)、状态(st…

Unity游戏图形学 Shader结构

shader结构 shader语言 openGL:SLG跨平台 >GLSL:openGL shaderlauguge DX:微软开发,性能很好,但是不能跨平台 >HLSL:high level shader language CG:微软和Nvidia公司联合开发&#xff…

使用ChatGPT对进行论文改写与润色

一、内容改写 关键在于明确改写的具体要求。 例如:[论文内容] 可以指明需要提升该段落的流畅性和逻辑连贯性。 常用指令 细微调整文本 轻微编辑 重写以增强表述清晰度 简化句式 校正语法和拼写错误 提升文本的流畅性和条理性 优化词汇使用 调整文本风格 进行深度编辑…

python-图片文字识别(三):EasyOCR

目录 简单使用 参数 异常处理 OCR,光学文字识别,对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。easyocr是一个比较流行的库,支持超过80种语言。安装的时候注意会附带安装torch库(一个深…

SpringBoot整合Kafka

一、首先下载windows版本的Kafka 官网:Apache Kafka 二、启动Kafka cmd进入到kafka安装目录: 1:cmd启动zookeeer .\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties 2:cmd启动kafka server .\bin\wind…

图解拒付平台:如何应对用户的拒付

这是《百图解码支付系统设计与实现》专栏系列文章中的第(5)篇。 本章主要讲清楚支付系统中拒付涉及的基本概念,产品架构、系统架构,以及一些核心的流程和相关领域模型、状态机设计等。 1. 前言 拒付在中国比较少见,但…

MPP架构和分布式架构的区别

前言:对大数据的数据处理需求,当前技术方向上存在两个不同的发展路线,MPP和分布式处理。两者数据处理的基本思路都是一样的,分布式并行处理再合并结果;但由于二者在处理架构上的差异,最终产品在应用需求性能…

LabVIEW在金属铜大气腐蚀预测评价系统中的应用

为了应对电子设备和仪器中金属铜因大气腐蚀带来的挑战,开发一种基于LabVIEW平台的先进预测评价系统。这个系统的设计宗旨是准确预测并评估在不同室内外环境中金属铜的腐蚀状况。我们团队在LabVIEW的强大数据处理和图形化编程支持下,结合实际的大气腐蚀数…

2024Flutter岗位面试题总结

StatelessWidget和StatefulWidget的区别是什么? StatelessWidget是一个不可变的类,充当UI布局中某些部分的蓝图,当某个组件在显示期间不需要改变,或者说没有状态(State),你可以使用它。 Statef…

免费的域名要不要?

前言 eu.org的免费域名相比于其他免费域名注册服务,eu.org的域名后缀更加独特。同时,eu.org的域名注册也比较简单,只需要填写一些基本信息,就可以获得自己的免费域名。 博客地址 免费的域名要不要?-雪饼前言 eu.org…

AtCoder Beginner Contest 336 G. 16 Integers(图计数 欧拉路径转欧拉回路 矩阵树定理 best定理)

题目 给16个非负整数,x[i∈(0,1)][j∈(0,1)][k∈(0,1)][l∈(0,1)] 求长为n3的01串的方案数,满足长度为4的ijkl(2*2*2*2,16种情况)串恰为x[i][j][k][l]个 答案对998244353取模 思路来源 https://www.cnblogs.com/tz…

深度系统QT 环境搭建

1.QT安装 不折腾最新版直接去商店搜索QT安装。 2.修改su密码,安装需要权限 打开一个终端,然后输入下面的命令:按照提示输入密码按回车就行。 sudo passwd 回车后会出现让你输入现在这个账户的密码: 3.编译环境安装。 安…

生活自来水厂污水处理设备需要哪些

生活自来水厂是确保我们日常用水质量安全的重要设施。在自来水的生产过程中,污水处理设备是不可或缺的环节。那么,生活自来水厂的污水处理设备都有哪些呢?本文将为您详细介绍。 首先,生活自来水厂的污水处理设备主要包括预处理设备…

大语言模型系列-总述

大语言模型发展史 研究人员发现,扩展预训练模型(Pre-training Language Model,PLM),例如扩展模型大小或数据大小,通常会提高下游任务的模型性能,模型大小从几十亿(1 B 10亿&#x…

Linux常用命令大全(三)

系统权限 用户组 1. 创建组groupadd 组名 2. 删除组groupdel 组名 3. 查找系统中的组cat /etc/group | grep -n “组名”说明:系统每个组信息都会被存放在/etc/group的文件中1. 创建用户useradd -g 组名 用户名 2. 设置密码passwd 用户名 3. 查找系统账户说明&am…

MySQL的多表数据记录查询笔记

关系数据操作 合并查询数据记录 在MySQL中通过关键字UNION来实现并操作,即可以通过其将多个SELECT语句的查询结果合并在一起组成新的关系。 两张表,表1 和表2 带有关键字UNION的合并操作 关键字UNION会把查询结果集直接合并在一起,同时将…

力扣每日一题--2088. 统计农场中肥沃金字塔的数目

看到这道题有些人很容易放弃,其实这道题不是很难,主要是题目长,读的容易让人放弃,但是 只要抓住一些性质就可以解决该问题。 本题中的定义放到图像里其实就是个金字塔,下层的那部分比上一层的那部分,长度加…

What does `ResponseEntity` do?

ResponseEntity 作为 Spring MVC controller层 的 HTTP response,包含 status code, headers, body 这三部分。 正常场景 RestController Slf4j public class SearchController {AutowiredUserService userService;RequestMapping(value "/getAllStudents4&…

Androidmanifest文件加固和对抗

前言 恶意软件为了不让我们很容易反编译一个apk,会对androidmanifest文件进行魔改加固,本文探索androidmanifest加固的常见手法以及对抗方法。这里提供一个恶意样本的androidmanifest.xml文件,我们学完之后可以动手实践。 1、Androidmanife…

文心一言 vs. ChatGPT:哪个更胜一筹?

文心一言 vs. ChatGPT:从简洁美到深度思考的文本生成之旅 近年来,文本生成工具的崛起使得人们在表达和沟通方面拥有了更多的选择。在这个领域中,文心一言和ChatGPT作为两个备受瞩目的工具,各自以独特的优势展现在用户面前。本文将…