Python基础之数据库操作

一、安装第三方库PyMySQL

1、在PyCharm中通过 【File】-【setting】-【Python Interpreter】搜索 PyMySQL进行安装

2、通过PyCharm中的 Terminal 命令行 输入: pip install PyMySQL

注:通过pip安装,可能会提示需要更新pip,这时可执行:pip install --upgrade pip 进行更新pip

二、mysql数据库查询(SELECT)

1、pymysql.connect()连接数据库

import pymysql
connect = pymysql.connect(host='101.37.246.001', # 数据库地址port= 3306,            # 数据库端口,mysql一般默认为3306user='xxxx',       # 用户名password='xxxx',   # 登录密码database='movie_cat',  # 要连接的数据库名charset='utf8')        # 数据库编码,一般默认utf8

 2、使用 cursor( ) 创建游标

import pymysql
connect = pymysql.connect(host='101.37.246.001', # 数据库地址port= 3306,            # 数据库端口,mysql一般默认为3306user='xxxx',       # 用户名password='xxxx',   # 登录密码database='movie_cat',  # 要连接的数据库名charset='utf8')        # 数据库编码,一般默认utf8
with connect.cursor() as cursor: # 创建游标

3、使用 execute( ) 执行sql语句

 

import pymysql
connect = pymysql.connect(host='101.37.246.001', # 数据库地址port= 3306,            # 数据库端口,mysql一般默认为3306user='xxxx',       # 用户名password='xxxx',   # 登录密码database='movie_cat',  # 要连接的数据库名charset='utf8')        # 数据库编码,一般默认utf8
with connect.cursor() as cursor: # 创建游标 # 创建游标sql = 'SELECT * FROM movie2 'cursor.execute(sql) # 执行sql语句

4、执行sql语句后,需要调用 fetchone() 或 fetchall() 方法来获得查询的返回结果

  • fetchone(): 该方法获取第一个查询结果集。结果集是一个对象,连续多次执行将依次取得下一条结果,直到为空;
  • fetchall(): 接收全部的返回结果行
import pymysql
connect = pymysql.connect(host='101.37.246.001', # 数据库地址port= 3306,            # 数据库端口,mysql一般默认为3306user='xxxx',       # 用户名password='xxxx',   # 登录密码database='movie_cat',  # 要连接的数据库名charset='utf8')        # 数据库编码,一般默认utf8# cursorclass=pymysql.cursors.DictCursor 设置游标返回结果为字典
with connect.cursor() as cursor: # 创建游标sql = 'SELECT * FROM movie2 'cursor.execute(sql) # 执行sql语句data = cursor.fetchall() # 接收全部返回的结果,返回一个元祖类型print(f"数据库查询数据:{data}")print(type(data))
connect.close() # 关闭数据库连接数据库查询数据:((1, 'My Neighbor Totoro', '1988'), (2, 'Dead Poets Society', '1989'), (3, 'A Perfect World', '1993'), (4, 'Leon', '1994'), (5, 'Mahjong', '1996'), (6, 'Swallowtail Butterfly', '1996'), (7, 'King of Comedy', '1999'), (8, 'Devils on the Doorstep', '1999'), (9, 'WALL-E', '2008'), (10, 'The Pork of Music', '2012'), (12, 'huawei', '2020'))
<class 'tuple'>

二、mysql数据库更新数据(UPDATE) 

import pymysql
connect = pymysql.connect(host='101.37.246.001', # 数据库地址port= 3306,            # 数据库端口,mysql一般默认为3306user='xxxx',       # 用户名password='xxxx',   # 登录密码database='movie_cat',  # 要连接的数据库名charset='utf8')        # 数据库编码,一般默认utf8
with connect.cursor() as cursor: # 创建游标sql = 'UPDATE movie2 SET year = 1998 WHERE id = 1 'cursor.execute(sql) # 执行sql语句connect.commit() # 提交数据到数据库
connect.close() # 关闭数据库连接

在cursor( ) 创建游标后通过execute( ) 执行sql,需要通过connect实例调用commit( ) 进行数据提交

三、mysql数据库插入数据(INSERT)

import pymysql
connect = pymysql.connect(host='101.37.246.001', # 数据库地址port= 3306,            # 数据库端口,mysql一般默认为3306user='xxxx',       # 用户名password='xxxx',   # 登录密码database='movie_cat',  # 要连接的数据库名charset='utf8')        # 数据库编码,一般默认utf8
with connect.cursor() as cursor: # 创建游标sql = "INSERT INTO movie2(title, year) VALUES ('firstday', '2021');"cursor.execute(sql) # 执行sql语句connect.commit() # 提交数据到数据库
connect.close() # 关闭数据库连接

 四、mysql数据库删除数据(DELETE)

import pymysql
connect = pymysql.connect(host='101.37.246.001', # 数据库地址port= 3306,            # 数据库端口,mysql一般默认为3306user='xxxx',       # 用户名password='xxxx',   # 登录密码database='movie_cat',  # 要连接的数据库名charset='utf8')        # 数据库编码,一般默认utf8
with connect.cursor() as cursor: # 创建游标sql = "DELETE FROM movie2 WHERE id = 13;"cursor.execute(sql) # 执行sql语句connect.commit() # 提交数据到数据库
connect.close() # 关闭数据库连接

注:insert/delete/update后都需要调用commit( )提交数据到数据库,完成事务提交

封装一个数据库操作类

class ConnectDB:config = {"host":'47.103.126.208',"user":'siyuan',"password":'123456',"database":'mall',"charset":'utf8',#"cursorclass":"pymysql.cursors.DictCursor"}def __init__(self):self.connect = pymysql.connect(**self.config)def select_datas(self, sql):with self.connect.cursor(pymysql.cursors.DictCursor) as cur:cur.execute(sql)data = cur.fetchall()print(data)print(type(data))return datadef charge_datas(self, sql):passdef connect_close(self):self.connect.close()def __call__(self, act=None, sql=None, connect=True):if connect:if act == 'select':datas = self.select_datas(sql)return dataselif act in ['update', 'insert', 'delete']:self.charge_datas(sql)return selfelse:self.connect_close()if __name__ == '__main__':connect_db = ConnectDB()sql = "SELECT * FROM ls_user WHERE nickname LIKE '%思源%';"data1 = connect_db('select', sql)data2 = connect_db('select', sql)connect_db(connect=False)

 

 

 

 

 

 

 

 

 

 

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

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

相关文章

15- OpenCV:模板匹配(cv::matchTemplate)

目录 1、模板匹配介绍 2、cv::matchTemplate 3、模板匹配的方法&#xff08;算法&#xff09; 4、代码演示 1、模板匹配介绍 模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域。 它可以在一幅图像中寻找与给定模板最相似的部分。 模板匹配的步骤&#xff1a; &a…

Gradle学习笔记:Gradle的简介、下载与安装

文章目录 一、什么是Gradle二、为什么选择Gradle三、下载并安装Gradle四、Gradle的bin目录添加到环境变量五、测试Gradle是否安装正常 一、什么是Gradle Gradle是一个开源构建自动化工具&#xff0c;专为大型项目设计。它基于DSL&#xff08;领域特定语言&#xff09;编写&…

SpringCloud(二)

Spring Cloud 文章目录 Spring Cloud任务三&#xff1a;Spring Cloud与微服务架构1.Spring Cloud课程内容介绍2.单体应用架构2.1 互联网应用架构演进2.2 单体应用架构 3.垂直应用架构4.SOA应用架构5.微服务应用架构介绍6.微服务架构核心思想及优缺点7.微服务架构的核心概念8.Sp…

如何使用Jellyfin+cpolar搭建私人影音平台实现无公网ip远程访问

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及&#xff0c;各种各样的使用需求也被开发出来&…

3d gaussian splatting介绍整理

3D 高斯分布是用于实时辐射场渲染的 3D 高斯分布中描述的一种光栅化技术&#xff0c;它允许实时渲染从小图像样本中学习到的逼真场景。 paper github 本文翻译整理自&#xff1a; blog: Introduction to 3D Gaussian Splatting DDPMs - Part 2 给出一些2D图片&#xff0c;用…

[实战]加密传输数据解密

前言 下面将分享一些实际的渗透测试经验&#xff0c;帮助你应对在测试中遇到的数据包内容加密的情况。我们将以实战为主&#xff0c;技巧为辅&#xff0c;进入逆向的大门。 技巧 开局先讲一下技巧&#xff0c;掌握好了技巧&#xff0c;方便逆向的时候可以更加快速的找到关键…

【iOS ARKit】人脸检测追踪基础

在计算机人工智能&#xff08;Artificial Inteligence,AI&#xff09;物体检测识别领域&#xff0c;最先研究的是人脸检测识别&#xff0c;目前技术发展最成熟的也是人脸检测识别。人脸检测识别已经广泛应用于安防、机场、车站、闸机、人流控制、安全支付等众多社会领域&#x…

Linux 一键部署grafana

grafana 前言 Grafana 是一款开源的数据可视化和监控仪表盘工具。它提供了丰富的数据查询、可视化和报警功能,可用于实时监控、数据分析和故障排除等领域。 通过 Grafana,您可以连接到各种不同的数据源,包括时序数据库(如 Prometheus、InfluxDB)和关系型数据库(如 MySQ…

UE创建数据资产 UDataAsset

UE创建数据资产 需要一个继承自UDataAsset的子类 在编辑器里创建后的效果 如果在子类中写多个集合 和 其它数据 所以数据资产在我觉得只是该子类的一个实例对象

C#用DateAndTime.DateDiff方法和TimeSpan分别计算时间间隔

目录 一、计算时间间隔的方法 1.用DateAndTime.DateDiff方法计算时间间隔 2.使用TimeSpan获取日期时间间隔 二、实例 1.示例一&#xff1a;用DateAndTime.DateDiff方法计算时间间隔 2.示例二&#xff1a;使用TimeSpan获取日期时间间隔 一、计算时间间隔的方法 1.用Date…

jar手动上传到Nexus私服

jar手动上传到Nexus私服 一简介二上传方法1.登录nexus,打开nexus控制台。upload---maven-release2.上传jar3.验证jar包是否上传成功4、注意事项 一简介 在maven项目中我们可以通过相关配置可以将项目打包成jar&#xff0c;然后deploy上传到私服中。要是别人提供的第三方jar&am…

图像处理------调整色调

什么是色调&#xff1f; 色调&#xff0c;在画面上表现思想、感情所使用的色彩和色彩的浓淡。分为暖色调和冷色调。 from cv2 import destroyAllWindows, imread, imshow, waitKey#创建棕褐色色调 def make_sepia(img, factor: int):pixel_h, pixel_v img.shape[0], img.shap…

【GitHub项目推荐--DiligentEngine: 一个开源跨平台的底层图形库和渲染框架】【转载】

Diligent Engine 一个现代的Cross-PlatformLow-Level三维图形库 Diligent引擎是一个轻量级的cross-platform图形API抽象库和呈现框架。它的设计充分利用了Direct3D12、Vulkan和Metal&#xff0c;同时通过Direct3D11、OpenGL和OpenGLES支持较旧的平台。Diligent引擎公开公共的f…

EtherNet/IP开发:C++开发CIP源代码

① 介绍一下CIP CIP是一种考虑到自动化行业而设计的通用协议。然而&#xff0c;由于其开放性&#xff0c;它可以并且已经应用于更多的领域。CIP网络库包含若干卷&#xff1a; 第1卷介绍了适用于所有网络自适应的CIP的常见方面。本卷包含通用对象库和设备配置文件库&#xff0…

数据采集与预处理01: 项目1 数据采集与预处理准备

数据采集与预处理01&#xff1a; 项目1 数据采集与预处理准备 任务1 认识数据采集技术&#xff0c;熟悉数据采集平台 数据采集&#xff1a;足够的数据量是企业大数据战略建设的基础&#xff0c;因此数据采集成为大数据分析的前站。数据采集是大数据价值挖掘中重要的一环&#…

OpenCV书签 #互信息的原理与相似图片搜索实验

1. 介绍 互信息&#xff08;Mutual Information&#xff09; 是信息论中的一个概念&#xff0c;用于衡量两个随机变量之间的关联程度。在图像处理和计算机视觉中&#xff0c;互信息常被用来度量两幅图像之间的相似性。 互信息可以看成是一个随机变量中包含的关于另一个随机变…

FastDeploy项目简介,使用其进行(图像分类、目标检测、语义分割、文本检测|orc部署)

FastDeploy是一款全场景、易用灵活、极致高效的AI推理部署工具&#xff0c; 支持云边端部署。提供超过 &#x1f525;160 Text&#xff0c;Vision&#xff0c; Speech和跨模态模型&#x1f4e6;开箱即用的部署体验&#xff0c;并实现&#x1f51a;端到端的推理性能优化。包括 物…

win10+elasticsearch8.12 安装教程

Elasticsearch是一种搜索引擎&#xff0c;本地安装完成之后&#xff0c;可使用其他编程语言&#xff08;例如python&#xff09;与elasticsearch建立连接&#xff0c;然后使用python脚本搜索elasticsearch中的数据 1下载 elasticsearch elasticsearch最新版官网下载链接 点击…

如何降低微服务复杂度丨云栖大会微服务主题分享实录

作者&#xff1a;谢吉宝 本文整理自阿里云资深技术专家、中间件负责人谢吉宝在2023云栖大会《极简微服务模式&#xff0c;降低微服务复杂度的最佳实践》的分享 2023 云栖大会现场 当面临复杂的挑战时&#xff0c;"分而治之"的方法往往能取得显著的效果。微服务架构…

HCIA——25FTP 的工作原理、功能、TFTP、控制连接、数据连接的选择、解答

学习目标&#xff1a; 计算机网络 1.掌握计算机网络的基本概念、基本原理和基本方法。 2.掌握计算机网络的体系结构和典型网络协议&#xff0c;了解典型网络设备的组成和特点&#xff0c;理解典型网络设备的工作原理。 3.能够运用计算机网络的基本概念、基本原理和基本方法进行…