详细讲解Python连接Mysql的基本操作

目录

  • 前言
  • 1. mysql.connector
  • 2. pymysql

前言

连接Mysql一般有几种方法,主要讲解mysql.connector以及pymysql的连接
后续如果用到其他库还会持续总结!

对于数据库中的表格,本人设计如下:(为了配合下面的操作)

在这里插入图片描述

1. mysql.connector

mysql.connector 是一个用于连接 MySQL 数据库的 Python 模块,它提供了一个官方的 MySQL 驱动程序,用于在 Python 中执行与 MySQL 数据库的交互。

概念:

  • 连接器(Connector): mysql.connector 是 MySQL 官方提供的一个 Python 连接器,用于在 Python 程序中连接和操作 MySQL 数据库。
  • 游标(Cursor): 游标是用于执行 SQL 语句并获取结果的对象。通过游标,可以执行查询、插入、更新、删除等数据库操作。
作用基本功能
1.连接数据库: 提供了建立与 MySQL 数据库的连接的功能。

2.执行 SQL 语句: 可以通过游标执行 SQL 查询和操作。

3.事务管理: 支持事务,可以提交或回滚事务。

4.错误处理: 提供了处理数据库操作中的错误的机制。

5.数据转换: 自动进行 Python 数据类型和 MySQL 数据类型之间的转换。

6.连接池管理: 可以使用连接池提高数据库连接的性能和效率。
1.建立连接: 使用 connect() 方法建立与 MySQL 数据库的连接。

2.创建游标: 使用 cursor() 方法创建游标对象,用于执行 SQL 语句。

3.执行 SQL 语句: 使用游标的 execute() 方法执行 SQL 查询或操作。

4.获取结果: 使用游标的 fetchone()、fetchall() 等方法获取查询结果。

5.提交事务: 使用连接的 commit() 方法提交事务。

6.回滚事务: 使用连接的 rollback() 方法回滚事务。

7.关闭连接: 使用连接的 close() 方法关闭与数据库的连接。

执行代码前,需要安装如下包:pip install mysql-connector-python

在这里插入图片描述

示例代码如下:

import datetimeimport mysql.connector# 建立数据库连接
db_connection = mysql.connector.connect(host="your_host",  # 数据库主机地址user="your_username",  # 数据库用户名password="your_password",  # 数据库密码database="your_database"  # 数据库名称
)if "__main__" == __name__:try:# 创建游标对象cursor = db_connection.cursor()# 示例1: 执行插入insert_query = "INSERT INTO test_student (username,delete_flag,time) VALUES (%s, %s, %s)"data = ('manong',0,datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))cursor.execute(insert_query, data)# 提交事务db_connection.commit()# 执行 SQL 查询或操作cursor.execute("SELECT * FROM test_student")# 获取查询结果result = cursor.fetchall()for row in result:print(row)finally:# 关闭游标和连接cursor.close()db_connection.close()

截图如下:
在这里插入图片描述

2. pymysql

pymysql 是一个纯 Python 实现的 MySQL 客户端库,用于在 Python 中连接和操作 MySQL 数据库。

DB-API 2.0 兼容: pymysql 遵循 Python 数据库 API 规范,使得在使用时更容易与其他数据库连接库切换。

对于作用以及API,与上述代码一致,只需要把包名替换即可!

运行前,先安装pymsql:pip install pymysql

在这里插入图片描述

修改的代码如下:

import pymysql# 建立数据库连接
db_connection = pymysql.connect(host="your_host",  # 数据库主机地址user="your_username",  # 数据库用户名password="your_password",  # 数据库密码database="your_database"  # 数据库名称
)

最终截图如下:

在这里插入图片描述
由于pymysqlmysql.connector要更加常用(但两者代码又差不多),所以在此处科普其他的CRUD,现已有插入和查询

如果是删除数据,示例代码:

if "__main__" == __name__:try:# 创建游标对象cursor = db_connection.cursor()# 示例1: 执行删除delete_query = "DELETE FROM test_student WHERE id = 9"cursor.execute(delete_query)# 提交事务db_connection.commit()# 执行 SQL 查询或操作cursor.execute("SELECT * FROM test_student")# 获取查询结果result = cursor.fetchall()for row in result:print(row)except:db_connection.rollback();finally:# 关闭游标和连接cursor.close()db_connection.close()

截图如下:

在这里插入图片描述


增加一张表:

if "__main__" == __name__:try:# 创建游标对象cursor = db_connection.cursor()# 示例1: 创建一张表create_query = """CREATE TABLE test_student1 (username  CHAR(20) NOT NULL,age INT,sex CHAR(1) )"""cursor.execute(create_query)# 示例1: 执行插入insert_query = "INSERT INTO test_student1 (username,age,sex) VALUES (%s, %s, %s)"data = ('manong', 18, 1)cursor.execute(insert_query, data)# 执行 SQL 查询或操作cursor.execute("SELECT * FROM test_student1")# 获取查询结果result = cursor.fetchall()for row in result:print(row)# 提交事务db_connection.commit()except:db_connection.rollback();finally:# 关闭游标和连接cursor.close()db_connection.close()

截图如下:

在这里插入图片描述
数据库表如下:

在这里插入图片描述

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

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

相关文章

C#,入门教程(19)——循环语句(for,while,foreach)的基础知识

上一篇: C#,入门教程(18)——分支语句(switch-case)的基础知识https://blog.csdn.net/beijinghorn/article/details/124039953 一、for循环 当老师进入教室,从门口开始分别按行、列点名,看看哪位翘课&…

Xcode15 升级问题记录

这里写自定义目录标题 新版本Xcode15升级问题1:rsync error: some files could not be transferred (code 23) at ...参考 新版本Xcode15升级 下载地址:https://developer.apple.com/download/all/ 我目前使用的版本是Xcode15.2 我新创建了一个项目&…

transfomer中Decoder和Encoder的base_layer的源码实现

简介 Encoder和Decoder共同组成transfomer,分别对应图中左右浅绿色框内的部分. Encoder: 目的:将输入的特征图转换为一系列自注意力的输出。 工作原理:首先,通过卷积神经网络(CNN)提取输入图像的特征。然…

开发需求总结9-el-tree获取选中节点,节点全选时返回被全选子级的父节点,未全选则返回被选中的节点

目录 需求描述 代码实现: 需求描述 需要获取树组件选中的节点,假如父节点被选中(该节点全选),即只返回父节点的数据,如父节点未被全选,则正常返回被选中节点的数据。 示例一: 如上图…

Python展示 RGB立方体的二维切面视图

代码实现 import numpy as np import matplotlib.pyplot as plt# 生成 24-bit 全彩 RGB 立方体 def generate_rgb_cube():# 初始化一个 256x256x256 的三维数组rgb_cube np.zeros((256, 256, 256, 3), dtypenp.uint8)# 填充立方体for r in range(256):for g in range(256):fo…

编曲混音FL Studio21.2对电脑有什么配置要求

FL Studio 21是一款非常流行的音乐制作软件,它可以帮助音乐人和制作人创作出高质量的音乐作品。然而,为了保证软件的稳定性和流畅性,用户需要知道FL Studio 21对电脑的配置要求。本文将介绍FL Studio 21的配置要求,以帮助用户选择…

32 二叉树的定义

之前的通用树结构 采用双亲孩子表示法模型 孩子兄弟表示法模型 引出二叉树 二叉树的定义: 满二叉树和完全二叉树 对此图要有印象 满二叉树一定是完全二叉树,但是完全二叉树不一定是满二叉树 小结

RabbitMQ交换机(2)-Direct

1.Direct 直连(路由)交换机,生产者将消息发送到交换机,并指定消息的Routing Key(路由键)。交换机会将Routing Key与队列绑定进行匹配,如果匹配成功,则将该消息路由到对应的队列中。如果没有匹配成功,该消息…

小程序中使用微信同声传译插件实现语音识别、语音合成、文本翻译功能----语音识别(一)

官方文档链接:https://mp.weixin.qq.com/wxopen/plugindevdoc?appidwx069ba97219f66d99&token370941954&langzh_CN#- 要使用插件需要先在小程序管理后台的设置->第三方设置->插件管理中添加插件,目前该插件仅认证后的小程序。 语音识别…

JS | JS调用EXE

JS | JS调用EXE 网上洋洋洒洒一大堆文章提供,然我还是没找打合适的方案: 注册表方案做了如下测试(可行但是不推荐?): 先,键入文件名为 myprotocal.reg 的注册表,并键入一下信息: Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\openExe] //协议名…

Redis相关命令详解及其原理

Redis概念 Redis,英文全称是remote dictionary service,也就是远程字典服务。这是kv存储数据库。Redis,包括所有的数据库,都是请求-回应模式,通俗来说就是数据库不会主动地要给前台推送数据,只有前台发送了…

MySQL/Oracle 的 字符串拼接

目录 MySQL、Oracle 的 字符串拼接1、MySQL 的字符串拼接1.1 CONCAT(str1,str2,...) : 可以拼接多个字符串1.2 CONCAT_WS(separator,str1,str2,...) : 指定分隔符拼接多个字符串1.3 GROUP_CONCAT(expr) : 聚合函数,用于将多行的值连接成一个字符串。 2、Oracle 的字…

广州市生物医药及高端医疗器械产业链大会暨联盟会员大会召开,天空卫士数据安全备受关注

12月20日,广州市生物医药及高端医疗器械产业链大会暨联盟会员大会在广州举办。在本次会议上,作为大会唯一受邀参加主题分享的技术供应商,天空卫士南区技术总监黄军发表《生物制药企业如何保护数据安全》的主题演讲。 做好承上启下“连心桥”…

C++设计模式-- 2.代理模式 和 外观模式

文章目录 代理模式外观模式角色和职责代码演示一:代码演示二:外观模式适用场景 代理模式 代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合 或不能直接引用另一个对象,而代…

【实战记录】 vagrant+virtualbox+docker 轻松用虚拟机集成组件

用途 最近要学一大堆组件,不想直接安装本机上,然后gpt说:你可以用vagrant起个虚拟机(然后docker拉取各种组件的镜像);或者k8s 实战的整体思路 首先安装virtualbox和vagrant。然后cmd依次键入三条命令 安…

无需编程,简单易上手的家具小程序搭建方法分享

想要开设一家家具店的小程序吗?现在,我将为大家介绍如何使用乔拓云平台搭建一个家具小程序,帮助您方便快捷地开展线上家具销售业务。 第一步,登录乔拓云平台进入商城后台管理页面。 第二步,在乔拓云平台的后台管理页面…

云畅科技技术中心被认定为湖南省省级企业技术中心

近日,湖南省工业和信息化厅公布《2023年第二批湖南省省级企业技术中心(第29批)》,云畅科技技术中心作为研发设计型代表入选。 省级企业技术中心是强化企业技术创新主体地位,增强企业自主创新能力,推动工业企业高质量发展的一个重要…

深圳三维扫描分析/偏差检测模具型腔三维尺寸及形位偏差测量公司

CASAIM中科广电三维扫描模具型腔深圳案例: 模具型腔的三维扫描分析/偏差检测是一项重要的质量控制过程,旨在确保模具制造过程中的精确度和一致性。 CASAIM中科广电通过使用高精度的三维扫描设备,可以获取模具型腔的实际形状和尺寸数据&…

使用vue快速开发一个带弹窗的Chrome插件

vue-chrome-extension-quickstart 说在前面 🎈平时我们使用Chrome插件通常都只是用来编写简单的js注入脚本,大家有没有遇到过需要插件在页面上注入一个弹窗呢?比如我们希望可以通过快捷键快速唤起ChatGPT面板或者快速唤起一个翻译面板&#x…

案例:应用内字体大小调节

文章目录 介绍相关概念完整实例 代码结构解读保存默认大小获取字体大小修改字体大小 介绍 本篇Codelab将介绍如何使用基础组件Slider,通过拖动滑块调节应用内字体大小。要求完成以下功能: 实现两个页面的UX:主页面和字体大小调节页面。拖动…