Python:mysql-connector-python模块对MySQL数据库进行增删改查

简介: Python:mysql-connector-python模块对MySQL数据库进行增删改查

MySQL文档:https://dev.mysql.com/doc/connector-python/en/

PYPI: https://pypi.org/project/mysql-connector-python/


mysql-connector-python 是MySQL官方的Python语言MySQL连接模块


安装

$ pip install mysql-connector-python

代码示例

连接管理

# -*- coding: utf-8 -*-


import mysql.connector

db_config = {
"database": "mydata",
"user": "root",
"password": "123456",
"host": "127.0.0.1",
"port": 3306,
}

# 连接数据库获取游标,可以设置返回数据的格式,元组,命令元组,字典等...
connect = mysql.connector.Connect(**db_config)

cursor = connect.cursor(dictionary=True)

# 关闭游标和连接
cursor.close()
connect.close()

写操作

数据 写入 和 更新 都可以使用 executeexecutemany

删除就使用execute

写操作都需要 commit 才会生效


# 插入元组数据
insert_tuple_sql = "insert into student(name, age) values(%s, %s)"
data = ("Tom", 23)
cursor.execute(insert_tuple_sql, data)
connect.commit()
print(cursor.lastrowid) # 一般插入一条时使用,获取插入id

# 插入多条元组数据
insert_tuple_sql = "insert into student(name, age) values(%s, %s)"
data = [
("Tom", 23),
("Jack", 25),
]
cursor.executemany(insert_tuple_sql, data)
connect.commit()


# 插入字典数据
insert_dict_sql = "insert into student(name, age) values(%(name)s, %(age)s)"
data = {
"name": "Tom",
"age": 25
}

cursor.execute(insert_dict_sql, data)
connect.commit()

# 插入多条字典数据
insert_dict_sql = "insert into student(name, age) values(%(name)s, %(age)s)"
data = [
{
"name": "Tom",
"age": 26
},
{
"name": "Jack",
"age": 27
}
]

cursor.executemany(insert_dict_sql, data)
connect.commit()

读操作


cursor.execute("select * from student where name=%s limit 3", ("Tom",))
rows = cursor.fetchall()
print(rows)

# 因为开始设置的返回数据格式是字典 dictionary ,所以直接返回字典数据
# [
# {'id': 1, 'name': 'Tom', 'age': 23},
# {'id': 2, 'name': 'Tom', 'age': 23},
# {'id': 3, 'name': 'Tom', 'age': 25}
#]

# 获取一些元数据信息
print(cursor.column_names) # ('id', 'name', 'age')

print(cursor.description)
# [
# ('id', 3, None, None, None, None, 0, 16899),
# ('name', 253, None, None, None, None, 1, 0),
# ('age', 3, None, None, None, None, 1, 0)
#]

print(cursor.rowcount) # 3

print(cursor.statement)
# select * from student where name='Tom' limit 3

print(cursor.with_rows)
# True


            </div>
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
机器学习/深度学习 算法 数据挖掘
利用Python进行市场购物篮分析——入门篇
大数据时代,任何事件之间都可能具有一定的相关性。啤酒和尿不湿有关系吗?今天就带你来看一下,如何用Python来分析购物之间那些潜在的规则。
15370 0
|
1月前
|
人工智能 运维 Serverless
Elasticsearch 8.17 智能检索升级全攻略
Elasticsearch 作为一款强大的搜索与分析引擎,支持传统检索、AI 搜索(如语义检索、RAG、多模态检索)及智能运维场景,结合阿里云AI搜索开放平台提供一站式解决方案。 本文介绍了最新发布的 Elasticsearch 8.17 检索增强型应用在性能和功能上的特性。同时本文介绍了利用容量规划工具优化资源分配,特别适合 AI 应用和高弹性场景,为用户提供高性能、低成本、易扩展的搜索服务。
206 8
|
NoSQL MongoDB
MongoDB compact 命令详解
为什么需要 compact 一图胜千言 remove 与 drop 的区别 MongoDB 里删除一个集合里所有文档,有两种方式 db.collection.remove({}, {multi: true}),逐个文档从 btree 里删除,最后所有文档被删除,但文件物理空间不会被回收 db.
|
4月前
|
人工智能 安全 小程序
大模型登记指南—全网最详细解读版,纯干货快收藏!
本文解析了大模型“备案”与“登记”的区别,适用于不同场景的申报要求,并结合实际案例讲解登记流程、材料准备及安全评估要点,帮助企业合规申报,避免因未备案/登记而违规。
|
安全 算法 编译器
.NET 9 AOT的突破 - 支持老旧Win7与XP环境
【10月更文挑战第30天】在.NET 9 中,AOT(Ahead-of-Time)编译技术在支持老旧的 Windows 7 和 XP 系统方面取得了显著进展。主要突破包括:性能提升(启动速度加快、执行效率提高)、部署优化(无需安装.NET 运行时、减小应用程序体积)、兼容性保障(编译策略优化、依赖项管理改进)以及安全性增强(代码保护机制)。这些改进使得应用程序在老旧系统上运行更加流畅、高效和安全。
497 2
|
11月前
|
缓存 JSON 数据格式
harbor2.0安装
harbor2.0安装过程和私有镜像上传
1255 2
harbor2.0安装
|
搜索推荐 容器
containerd环境搭建指南
关于如何搭建containerd环境的详细指南,包括通过yum和二进制方式安装containerd的步骤,以及安装和配置runc的必要性。
2016 3
containerd环境搭建指南
|
存储 SQL 缓存
30个业务场景的SQL优化
这些优化策略和示例可以帮助改善 `SQL` 查询的性能和效率。在实践中,需要综合考虑数据库设计、`SQL` 编写、服务器配置等多方面因素,选择合适的优化方法,并进行充分的测试和验证。以上 30 个经验是 V 哥在实际经验中总结的内容,当然,业务场景不同,具体的优化策略也会不同,按实际情况处理,这不就是程序员要做的事情么。
1085 0
|
前端开发 JavaScript 安全
使用原生JavaScript对网页或窗口进行截图
要使用原生 JavaScript 对整个网页或窗口进行截图,你可以使用 html2canvas 库。 html2canvas 是一个强大的 JavaScript 库,可以将网页的可见部分渲染为 <canvas> 元素,并且可以保存为图像。
948 0
|
消息中间件 缓存 网络协议
使用 Netty+SpringBoot 打造的 TCP 长连接通讯方案 上
使用 Netty+SpringBoot 打造的 TCP 长连接通讯方案 上
使用 Netty+SpringBoot 打造的 TCP 长连接通讯方案 上