Python--PyMySQL补充及内容优化

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: Python--PyMySQL补充及内容优化

下载

pip3 install PyMySQL

前言

在此之前,请确保电脑中下载了MySQL数据库,并连接上了库。数据库中的表以及字段名那就随意了。如下:

连接配置

# 数据库连接,主机host、端口port、用户名user、密码passwd、数据库表database
con = pymysql.connect(host='localhost', port=3306, user='root', passwd='An',
                      database='an')#如果汉字显示不出来就加入charset=‘utf-8'

小例子

import pymysql
# 数据库连接,主机host、端口port、用户名user、密码passwd、数据库表database
con = pymysql.connect(host='localhost', port=3306, user='root', passwd='jiang',
                      database='an')#如果汉字显示不出来就加入charset=‘utf-8'
# h获取一个游标对象
cursor = con.cursor()
# 执行一条SQL语句
cursor.execute("select version()")
# 获取一行数据
data = cursor.fetchone()
print(data)
# 关闭数据库连接,记得关闭游标,后续可以不写
con.close()
"""
('5.7.26-log',)
"""

生成游标是必须的,不然无法进行接下面的操作。

写入并查询数据

import pymysql
# 数据库连接,主机host、端口port、用户名user、密码passwd、数据库表database
con = pymysql.connect(host='localhost', port=3306, user='root', passwd='jiang',
                      database='an')#如果汉字显示不出来就加入charset=‘utf-8'
# h获取一个游标对象
cursor = con.cursor()
# 执行一条插入SQL语句
sql = 'INSERT INTO login_user(username,password) VALUE ("anan",123456); '
cursor.execute(sql)
# 执行一条查询语句
sql1 = "select * from login_user;"
cursor.execute(sql1)
# 获取一行数据
data = cursor.fetchall()
print(data)
# 关闭数据库连接
con.close()
"""
(('admin', '123456'), ('qingan', '123456'), ('anan', '123456'))
"""

上述中的sql以及sql1其实就是数据库中的sql语句。 如数据被覆盖请跳至提交数据标题。

一次写入多条语句

sql = "INSERT INTO login_user(username,password) VALUES (%s,%s);"
list_name = [('QA',123456),('shier',123456),('ershi',123456)]
cur.executemany(sql,list_name)

获取数据

# 获取查询结果,获取一条数据
data=cur.fetchone()
# 获取查询结果,获取全部数据,如果已经使用fetchone取了第一条的数据,游标会自动向下取值
data_ = cur.fetchall()
# 下标获取查询结果,获取第一条数据,可以更改数字来获取值
data_1=cur.fetchmany(1)

在上述小例子中有用到此类的数据查询。

提交数据

import pymysql
# 数据库连接,主机host、端口port、用户名user、密码passwd、数据库表database
con = pymysql.connect(host='localhost', port=3306, user='root', passwd='jiang',
                      database='an')#如果汉字显示不出来就加入charset=‘utf-8'
# h获取一个游标对象
cursor = con.cursor()
# 执行一条SQL语句
sql = 'INSERT INTO login_user(username,password) VALUE ("anan",123456); '
cursor.execute(sql)
# 提交数据库
con.commit()
sql = "select * from login_user;"
cursor.execute(sql)
# 获取一行数据
data = cursor.fetchall()
print(data)
# 关闭数据库连接
con.close()

在上述过程中,提交数据后前面的数据会被覆盖掉,原因就是没有提交到数据库。

回滚

import pymysql
# 数据库连接,主机host、端口port、用户名user、密码passwd、数据库表database
con = pymysql.connect(host='localhost', port=3306, user='root', passwd='jiang',
                      database='an')#如果汉字显示不出来就加入charset=‘utf-8'
# h获取一个游标对象
cursor = con.cursor()
# 执行一条SQL语句
sql = 'INSERT INTO login_user(username,password) VALUE ("anan",123456); '
try:
 cursor.execute(sql)
 # 提交数据库
 con.commit()
except:
 # 发生错误时回滚
 con.rollback()
# 关闭数据库连接
con.close()

with

import pymysql
con = pymysql.connect(host='localhost', port=3306, user='root', passwd='jiang',
                      database='an')
with con:
    cur = con.cursor()
    cur.execute("select *from login_user;")
    data = cur.fetchall()
    print(data)

使用with语法python会自动释放资源

字典游标

import pymysql
import pymysql.cursors
con = pymysql.connect(host='localhost', port=3306, user='root', passwd='jiang',
                      database='an',cursorclass=pymysql.cursors.DictCursor)
with con:
    cur = con.cursor()
    cur.execute("select *from login_user;")
    data = cur.fetchall()
    for da in data:
        print(da['username'],da['password'])
"""
admin 123456
qingan 123456
shier 123456
anan 123456
"""
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
5月前
|
机器学习/深度学习 算法 安全
【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
275 0
|
5月前
|
调度 Python
微电网两阶段鲁棒优化经济调度方法(Python代码实现)
微电网两阶段鲁棒优化经济调度方法(Python代码实现)
161 0
|
4月前
|
机器学习/深度学习 资源调度 算法
一种多尺度协同变异的粒子群优化算法(Python代码实现)
一种多尺度协同变异的粒子群优化算法(Python代码实现)
169 2
|
5月前
|
机器学习/深度学习 算法 Java
基于改进粒子群优化算法的柔性车间调度问题(Python代码实现)
基于改进粒子群优化算法的柔性车间调度问题(Python代码实现)
190 4
|
4月前
|
数据采集 网络协议 API
协程+连接池:高并发Python爬虫的底层优化逻辑
协程+连接池:高并发Python爬虫的底层优化逻辑
|
4月前
|
算法 定位技术 调度
基于蚂蚁优化算法的柔性车间调度研究(Python代码实现)
基于蚂蚁优化算法的柔性车间调度研究(Python代码实现)
222 0
|
4月前
|
算法 安全 新能源
基于DistFlow的含分布式电源配电网优化模型【IEEE39节点】(Python代码实现)
基于DistFlow的含分布式电源配电网优化模型【IEEE39节点】(Python代码实现)
355 0
|
4月前
|
机器学习/深度学习 算法 调度
【column-and-constraint generation method[CCG]】两阶段鲁棒优化(Python代码实现)
【column-and-constraint generation method[CCG]】两阶段鲁棒优化(Python代码实现)
174 0
|
5月前
|
机器学习/深度学习 算法 调度
基于遗传算法GA算法优化BP神经网络(Python代码实现)
基于遗传算法GA算法优化BP神经网络(Python代码实现)
356 0
|
7月前
|
监控 大数据 API
Python 技术员实践指南:从项目落地到技术优化
本内容涵盖Python开发的实战项目、技术攻关与工程化实践,包括自动化脚本(日志分析系统)和Web后端(轻量化API服务)两大项目类型。通过使用正则表达式、Flask框架等技术,解决日志分析效率低与API服务性能优化等问题。同时深入探讨内存泄漏排查、CPU瓶颈优化,并提供团队协作规范与代码审查流程。延伸至AI、大数据及DevOps领域,如商品推荐系统、PySpark数据处理和Airflow任务编排,助力开发者全面提升从编码到架构的能力,积累高并发与大数据场景下的实战经验。
Python 技术员实践指南:从项目落地到技术优化

推荐镜像

更多