Python 连接 mysql 详解(mysql-connector-python)

文章目录

  • 1 概述
    • 1.1 第三方库:mysql-connector-python
    • 1.2 可视化工具:navicat
    • 1.3 创建测试数据库
  • 2 连接 mysql 数据库
    • 2.1 创建一个连接
    • 2.2 捕获连接异常
    • 2.3 从配置文件中获取连接信息
  • 3 执行 sql 语句
    • 3.1 插入、更新、删除
    • 3.2 查询

1 概述

1.1 第三方库:mysql-connector-python

pip install mysql-connector-python

1.2 可视化工具:navicat

在这里插入图片描述

1.3 创建测试数据库

在这里插入图片描述

-- 创建数据库
create database python_demo DEFAULT CHARSET utf8 COLLATE utf8_general_ci;-- 创建测试表
create table python_demo.student(sno      int unsigned auto_increment comment '学号',sname    varchar(30) not null comment '姓名',age      int comment '年龄',birthday date comment '出生日期',primary key(sno)
) engine=innodb default charset=utf8 comment '学生信息表';

2 连接 mysql 数据库

2.1 创建一个连接

import mysql.connector# 配置连接信息
conn = mysql.connector.connect(host='127.0.0.1',port='3306',user='root',password='12345',database='python_demo'
)
# 当前 mysql 版本号
print(conn.get_server_version())

2.2 捕获连接异常

import mysql.connector
from mysql.connector import errorcodetry:# 配置连接信息conn = mysql.connector.connect(host='127.0.0.1',port='3306',user='root',password='12345',database='python_demo')# 当前 mysql 版本号print(conn.get_server_version())# 捕获异常
except mysql.connector.Error as err:if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:print('账号或密码错误!')elif err.errno == errorcode.ER_BAD_DB_ERROR:print('数据库不存在!')else:print(err)
else:# 关闭连接conn.close()

2.3 从配置文件中获取连接信息

目录结构:
在这里插入图片描述

config.ini:

[mysql]
host = 127.0.0.1
port = 3306
user = root
password = 12345
database = python_demo

m1.py:

import mysql.connector
from mysql.connector import errorcode
import configparser# 创建配置解析器对象
config = configparser.ConfigParser()
# 读取配置文件
config.read('config.ini')try:# 配置连接信息conn = mysql.connector.connect(host=config.get('mysql', 'host'),port=config.get('mysql', 'port'),user=config.get('mysql', 'user'),password=config.get('mysql', 'password'),database=config.get('mysql', 'database'))# 当前 mysql 版本号print(conn.get_server_version())# 捕获异常
except mysql.connector.Error as err:if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:print('账号或密码错误!')elif err.errno == errorcode.ER_BAD_DB_ERROR:print('数据库不存在!')else:print(err)
else:# 关闭连接conn.close()

3 执行 sql 语句

3.1 插入、更新、删除

  • execute():用来执行 sql 语句,如:增删改查,存储过程等
  • commit():用来提交事务
import mysql.connector# 配置连接信息
conn = mysql.connector.connect(host='127.0.0.1',port='3306',user='root',password='12345',database='python_demo'
)# 创建游标对象
cursor = conn.cursor()# 操作数据:插入、修改、删除 同理,注:数据类型均可用 %s
# 操作一条数据
sql = 'insert into student(sname, age, birthday) values(%s, %s, %s);'
param = ('张三', '18', '1994-12-08')
cursor.execute(sql, param)# 操作多条数据
sql = 'insert into student(sname, age, birthday) values(%s, %s, %s);'
param = [('李四', '20', '1992-10-05'),('王五', '16', '1996-05-26'),('赵六', '08', '1994-05-26')]
cursor.executemany(sql, param)# 提交数据
conn.commit()# 关闭游标和数据库连接
cursor.close()
conn.close()

3.2 查询

import mysql.connector# 配置连接信息
conn = mysql.connector.connect(host='127.0.0.1',port='3306',user='root',password='12345',database='python_demo'
)# 创建游标对象
cursor = conn.cursor()# 查询数据
sql = 'select sno, sname, age, birthday from student where sno >= %s'
param = (1,)cursor.execute(sql, param)
result = cursor.fetchall()# 打印结果
for row in result:print(row)# 关闭游标和数据库连接
cursor.close()
conn.close()

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

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

相关文章

深度学习系列56:使用whisper进行语音转文字

1. openai-whisper 这应该是最快的使用方式了。安装pip install -U openai-whisper,接着安装ffmpeg,随后就可以使用了。模型清单如下: 第一种方式,使用命令行: whisper japanese.wav --language Japanese --model…

前端Vue every() 方法

every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。 every() 方法使用指定函数检测数组中的所有元素: 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。如…

网易和腾讯面试题精选---性能和优化面试问题

介绍 在当今快节奏的数字环境中,优化性能对于确保软件系统的效率、可靠性和可扩展性至关重要。随着组织努力提供无缝的用户体验、满足不断增长的需求并保持竞争力,性能调整和优化成为关键学科。本文深入探讨了跨不同领域、技术和应用场景优化系统性能的关键策略、技术和最佳…

Relation-graph关系图/流程图,VUE项目基础使用

一、Relation-graph 是支持Vue2、Vue3、React的关系数据展示组件,支持通过【插槽】让使用者使用"普通HTML元素、Vue组件、React组件"来完全自定义图形元素,并提供实用的API接口让使用者轻松构建可交互的图形应用。 二、网站: Re…

MySQL运维实战(5.3) MySQL数据乱码的一些情况

作者:俊达 表数据乱码 表数据出现乱码的情况通常是由于数据的真实编码与相关参数不一致引起的,其中包括常见的参数如character_set_client、character_set_results、字段编码以及终端编码等。确保这些参数保持一致,可以有效预防和解决乱码问…

歌声悠扬如往昔

有一首歌 - 朱晓琳(网易云单曲) 作词 : 陈彼得作曲 : 陈彼得有一首歌我想起你那时候微风轻轻有一首歌我想起你你的感觉温馨有多少的欢笑就有多少的忧伤 愿时光在这里停住(好景不常在)歌声悠扬如往昔哦哦哦咿咿咿有一首歌我和你词意朦胧旋律依稀唱一首歌…

【数据结构 09】哈希

哈希算法:哈希也叫散列、映射,将任意长度的输入通过散列运算转化为固定长度的输出,该输出就是哈希值(散列值)。 哈希映射是一种压缩映射,通常情况下,散列值的空间远小于输入值的空间。 哈希运…

如何在个人PC的桌面创建一个类似网吧的游戏菜单并分类?

GGTools 免费的桌面图标管理器、软件菜单、游戏菜单 单机版游戏菜单、个人/家用/家庭版游戏菜单、轻量级图标收纳软件

GPT用来润色论文\生成完整长篇论文\进行AI绘图,真的太香了!

详情点击公众号:技术科研吧 链接:GPT用来润色论文\生成完整长篇论文\进行AI绘图,真的太香了! 第一:2024年AI领域最新技术 1.OpenAI新模型-GPT-5 2.谷歌新模型-Gemini Ultra 3.Meta新模型-LLama3 4.科大讯飞-星火认…

Jenkins(三):自动化部署SpringBoot项目

前言 在软件开发过程中,自动化部署已经成为不可或缺的一环。Jenkins是一个广泛使用的开源自动化部署工具,它提供了强大的功能和灵活的配置选项,可以帮助开发团队实现高效的持续集成和持续部署。本文将详细介绍如何使用Jenkins自动化部署Spri…

6-树-二叉树的层序遍历 II

这是树的第7篇算法,力扣链接。 给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 示例 1: 输入:root [3,9,20,null,nu…

gpt今日最新新闻:gpts的广泛应用

最近,OpenAI给ChatGPT带来了一个备受期待的更新——“GPT提及(mentions)”功能。这项创新不仅增强了ChatGPT的实用性,也为AI在日常业务中的运用开辟了新路径。在本文中,我将分享我对这项新功能的初步体验,并…

SpringBoot整理-性能优化

Spring Boot性能优化通常涉及到多个方面,包括代码优化、数据库交互、资源使用和系统配置等。下面是一些常见的优化建议: 代码层面的优化:使用合适的数据结构和算法。减少不必要的对象创建,避免内存泄漏。对于重复使用的对象,考虑使用对象池。数据库优化:优化SQL查询,避免复…

前端JavaScript篇之常用的正则表达式有哪些?

目录 常用的正则表达式有哪些? 常用的正则表达式有哪些? 常用的正则表达式包括以下几个方面: 匹配16进制颜色值:#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})可以用于匹配16进制颜色值,如"#ff0000"或"#f00"…

【MySQL】——数据定义

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

IDEA插件ChatGPT - Easycode安装使用

IDEA插件ChatGPT - Easycode简介 ChatGPT - Easycode 是一个由 OpenAI 开发的 IntelliJ IDEA 插件,它可以利用 ChatGPT 的强大语言生成能力,帮助开发人员提高编码效率。 主要功能: 代码生成:可以根据自然语言描述生成代码,支持多种编程语言,包括 Java、Python、JavaSc…

【漏洞复现】MDVR数字视频录像机认证绕过漏洞

Nx01 产品简介 MDVR(Mobile Digital Video Recorders)硬盘录像机是一种使用先进的视音频编解码技术将车内外的视频进行数模转换,进行压缩存储的设备。 Nx02 漏洞描述 阿根廷研究员发现,通过使用“Cookie: uid admin”…

MySQL存储引擎特点一览表——存储引擎如何选择

面试会问嘀嘀嘀 1、MySQL存储引擎特点三大区别已经在下表里面标红 MySQL存储引擎特点 特点InnoDBMyISAMMemory存储限制64TB有有事务安全支持——锁机制行锁表锁表锁Btree索引支持支持支持Hash索引——支持全文索引支持(5.6以后)支持—空间使用高低N/A内…

深入理解网络通信和TCP/IP协议

目录 计算机网络是什么? 定义和分类 计算机网络发展简史 计算机网络体系结构 OSI 七层模型 TCP/IP 模型 TCP/IP 协议族 TCP/IP 网络传输中的数据 地址和端口号 MAC地址 IP 地址 端口号 为什么端口号有65535个? 综述 TCP 特性 TCP 三次握…

[SWPUCTF 2021 新生赛]Do_you_know_http

我们看到它让我们用WLLM浏览器登录 那我们修改User-Agent的值即可 发现有一个a.php的我们进入该目录 它提示我们不在本地服务器上 发现有一个/secretttt.php的目录 我进入即可获得flag