当前位置: 首页 > news >正文

Python酷玩之旅_mysql-connector

前言

Python作为数据科学、机器学习等领域的必选武器,备受各界人士的喜爱。当你面对不同类型、存储于各类介质的数据时,第一时间是不是要让它亮个相?做个统计,画个图表,搞个报表… 等等。

正如Java中的JdbcDriver一样,Python中也有同样角色的库。比如今天博主正要介绍的mysql-connector-python,它是Python中操作数据库的常用工具,我们先从它说起吧,Let’s go~

在这里插入图片描述


一、mysql-connector-python

1. 简介

Python中连接mysql有各种工具支持,博主推荐使用mysql-connector-python,它是MySQL官方提供的标准工具,依赖少,查询方便。

2. 安装

在python中安装mysql-connector-python很简单,只需执行如下命令:

# 使用清华源pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple mysql-connector-python

安装过程:
在这里插入图片描述
安装结果:
在这里插入图片描述

二、数据操作教程(源码)

安装mysql-connector-python完成后,我们可以尽情的玩耍玩耍,先来看看如何连接。

1. 创建连接

我们可通过mysql.connector.connect创建连接,示例代码:

connection = mysql.connector.connect(host=[HOST_NAME],user=[USERNAME],passwd=[PASSWORD],database=[DATABASE]
)

其中,它支持哪些参数,我们来看看:

参数说明
host数据库主机IP
port数据库端口,默认3306
user数据库用户
password数据库密码
database数据库名称
autocommit是否自动提交事务,默认为False
charset字符编码
pool_name连接池名称
pool_size连接池大小

2. 查询

创建连接后,先做一个查询吧(代码已封装,请参考执行):

import mysql.connector
from mysql.connector import Errorclass  MysqlUtil:def __init__(self, host_name, user_name, passwd, db_name):self.host_name = host_nameself.user_name = user_nameself.passwd = passwdself.db_name = db_namedef get_connection(self):connection = Nonetry:connection = mysql.connector.connect(host=self.host_name,user=self.user_name,passwd=self.passwd,database=self.db_name)print("恭喜你,成功连接MySQL")except Error as e:print(f"异常啦,原因: '{e}'")return connectiondef query(self,conn, sql):try:cursor = conn.cursor()cursor.execute(sql)return cursorexcept Error as e:print(f"异常啦,原因: '{e}'")if __name__ == '__main__':# 连接信息host = '127.0.0.1'user = 'root'password = '123456'database = 'mysql'# 创建连接mysql_util = MysqlUtil(host, user, password, database)conn = mysql_util.get_connection()# 查询sql = 'select * from 表名'my_cursor = mysql_util.query(conn, sql)result = my_cursor.fetchall()print(f'查询记录数:{len(result)}')# 关闭游标my_cursor.close()# 关闭连接conn.close()

提示:查询完成后,一定要关闭游标和连接。

3. 新增

新增记录时,可在查询源码的基础上,封装一个insert函数:

# 插入记录
def insert(self, conn, sql, val):try:cursor = conn.cursor()cursor.execute(sql,val)return cursorexcept Error as e:print(f"异常啦,原因: '{e}'")

main函数中,进行测试:

# 创建连接
mysql_util = MysqlUtil(host, user, password, database)
conn = mysql_util.get_connection()# SQL
sql = "INSERT INTO 表名(id,name) VALUES (%s, %s)"
val = ('1','python')
mysql_util.insert(conn,sql, val)# 提交
conn.commit()
# 关闭连接
conn.close()

4. 删除

同理,删除我们也可以封装一个delete函数,因为和insert类似,这里不再呈现。只需调整执行的SQL即可:

# SQL
sql = "delete from 表名 where name=%s"
val = ('python',)

5. 事务

在创建游标前,我们可以主动开启一个事务:

conn = mysql_util.get_connection()
# 开始事务
conn.start_transaction()
""" 数据操作 """

最后一步很重要,一定要提交哦:

# 提交事务
conn.commit()

6. 其他

其他场景比如按条件查询,删除表,清空表等操作,均可通过改变SQL的方式,执行相关数据操作。这里不再一一罗列,是不是很简单?

结语

mysql-connector-python是一款mysql官方支持的数据库工具,博主通过示例呈现了它的能力和优势,希望对你有帮助。

走过的、路过的盆友们,点点赞,收收藏,并加以指导,以备不时之需哈~


在这里插入图片描述

相关文章:

Python酷玩之旅_mysql-connector

前言 Python作为数据科学、机器学习等领域的必选武器,备受各界人士的喜爱。当你面对不同类型、存储于各类介质的数据时,第一时间是不是要让它亮个相?做个统计,画个图表,搞个报表… 等等。 正如Java中的JdbcDriver一样…...

7.搭建个人金融数据库之快速获取股票列表和基本信息!

前边我们提过,免费的数据一般来自于爬虫,获取难度和维护成本都比较高,其实不太适合小白用户。所以非必要情况下,我们尽量不用这种方式来获取数据。 我自己用的比较多的是tushare,一般来说有它也就够了,大…...

Nginx基础详解1(单体部署与集群部署、负载均衡、正反代理、nginx安装)

本阶段的任务 1.学会集群的操作概念 2.完成对Nginx的入门操作 3.使用Nginx实现集群和负载均衡 4.使用Nginx实现高可用的方案 目录 1.单体部署与集群部署 1.1单体部署的概念 1.2单体部署的优缺点 1.3集群部署的概念 1.4集群部署的优缺点 1.5集群部署需要注意的点 1.…...

等保一体机如何帮你应对网络攻击

等保一体机如何帮你应对网络攻击 在当今信息化时代,网络安全已成为企业和组织面临的重要挑战。随着网络攻击手段的不断升级,传统的安全防护措施已难以应对复杂多变的威胁。等保一体机作为一种集成化的安全防护解决方案,能够有效帮助企业应对…...

CVE-2024-1112 Resource Hacker 缓冲区溢出分析

漏洞简述 CVE-2024-1112 是 Resource Hacker 软件的一个缓冲区溢出漏洞。该漏洞存在于版本 3.6.0.92 中。由于软件在处理命令行中的文件路径时未对文件字符串长度进行限制,过长的字符串参数导致内存被过度写入,从而引发缓冲区溢出。 漏洞复现 构造长度…...

WebGL渲染与创建2D内容

目录 创建画布2D渲染修改顶点着色器光照深度测试混合模式WebGL是一个强大的工具,可以用来在Web浏览器中创建复杂的3D图形。虽然它的设计初衷是为了3D渲染,但也可以用于创建2D内容。通过巧妙地利用几何、投影和纹理,我们可以构建出各种2D图形。 创建画布 首先,我们需要在H…...

ArcGIS Desktop使用入门(三)图层右键工具——拓扑(下篇:地理数据库拓扑)

系列文章目录 ArcGIS Desktop使用入门(一)软件初认识 ArcGIS Desktop使用入门(二)常用工具条——标准工具 ArcGIS Desktop使用入门(二)常用工具条——编辑器 ArcGIS Desktop使用入门(二&#x…...

LeetCode题练习与总结:二叉树的最近公共祖先--236

一、题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也…...

uni-app 多环境配置

前后端分离模式下,不同的环境如开发环境(dev)、测试环境(test)、生产环境(prod)等,不同环境后端数据库、api地址等可能都不同 。 uni-app中只有development和production两个环境 以配…...

【d48】【Java】【力扣】LCR 123. 图书整理 I

思路 方法1:放进list,将list倒置,利用stream,将list改为int类型 方法2:递归:递归通用思路;明确每一层做什么确定返回值确定什么地方接收下层的返回值 每一层:调用下层,然后把自己…...

【MySQL】InnoDB 索引为什么使用B+树而不用跳表?

在MySQL中,为了加速查询,使用B树来构建索引,将查询性能从O(n)优化到O(log n)。虽然跳表同样提供O(log n)的查询效率并且实现相对简单,但B树更适合MySQL的索引使用,原因包括: B树和跳表的区别 B树和跳表的…...

【学习笔记】TLS/SSL握手之Records

TLS / SSL会话是由记录(Records)所组成,有4种records HandshakeAlertChange Cipher SpecApplication DataHandshake和Alert Records被分为子类型(Subtypes): Handshake:Client HelloHandshake&a…...

【MySQL】创建新账号新数据库并授权

在 MySQL 中创建一个名为 new_user 的用户,并设置密码为 new_pass,然后创建一个名为 new_db 的数据库,并将该数据库的所有权限授予 new_user 用户。 登录 MySQL: mysql -u root -p创建用户: CREATE USER new_userlo…...

Nginx反向代理简介,作用及配置;Nginx负载均衡简介,作用及配置;

一,Nginx反向代理 1.1简介 反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的…...

SAP MIGO M7146不支持移动原因

移动类型 Z91 查看配置:Z91 匹配的原因没有921 倒是Z92的原因里面有921 那解决方案有2种,但是要根据具体业务要求来 1、审视一下是否移动原因用错了 ?换一个移动原因 2、确实是这个移动类型 要用到这个移动原因 ,那就在上图 移…...

vue使用PDF.JS踩的坑--部署到服务器上显示pdf.mjs viewer.mjs找不到资源

之前项目使用的pdf.js 是2.15.349版本,最近换了一个4.6.82的版本,在本地上浏览文件运行的好好的,但是发布到服务器(IIS)上打不开文件,控制台提示找不到pdf.mjs viewer.mjs。 之前使用的2.15.349pdf和viewer…...

重型工程车辆数据集

重型工程车辆数据集,内含Bull_dozer(推土机), Dumb_truck(卡车), Excavator(挖掘机), Grader(平地机), Loader(转载机), Mobile_crane&#xff08…...

【Kubernetes】常见面试题汇总(三十三)

目录 85.简述 kube-proxy 的三种工作模式和原理。 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 题目 69-113 属于【Kubernetes】的生产应用题。 85.简述 kub…...

ubuntu安装无线网卡驱动(非虚拟机版)

本文不是基于虚拟机,是双系统 太夸张了 实验室居然没网线 只有一个师兄留下来的无线网卡 装完了ubuntu结果没网 make都用不了 然后搜了下大概发现是没有预装gcc和make 参考如下 https://zhuanlan.zhihu.com/p/466440088 https://wwsk.lanzouj.com/iAj4t2ao46zc…...

保障电气安全的电气火灾监控系统主要组成有哪些?

电气火灾是什么? 电气火灾一般是指由于电气线路、用电设备、器具以及供配电设备出现故障性释放的热能:如高温、电弧、电火花以及非故障性释放的能量;如电热器具的炽热表面,在具备燃烧条件下引燃本体或其他可燃物而造成的火灾&…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

从面试角度回答Android中ContentProvider启动原理

Android中ContentProvider原理的面试角度解析&#xff0c;分为​​已启动​​和​​未启动​​两种场景&#xff1a; 一、ContentProvider已启动的情况 1. ​​核心流程​​ ​​触发条件​​&#xff1a;当其他组件&#xff08;如Activity、Service&#xff09;通过ContentR…...

rknn toolkit2搭建和推理

安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 &#xff0c;不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源&#xff08;最常用&#xff09; conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...

Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解

文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一&#xff1a;HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二&#xff1a;Floyd 快慢指针法&#xff08;…...