教你如何用Python连接MySQL,增删改查

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 教你如何用Python连接MySQL,增删改查

1. MySQL数据库的下载


官网:https://www.mysql.com/


434660e7c7b34cd1873d737106bec947.png

d76a9c1df3d94b339e3be6167e13400c.png


2. MySQL安装


2.1 安装.NET4


安装包: NDP452-KB2901907-x86-x64-AllOS-ENU.exe

36593dec3856420086591637bab2fdd3.png


bc740bda42cc4316ae6c82538fe1fb1f.png


3. PyMySQL模块安装

3.1 操作MySQL数据库
PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb
3.2 搭建PyMySQL环境
在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装,如果还未安装,我们可以使用以下命令安装最新版的PyMySQL。
pip install PyMySQL

9ec077c007c64ff58ad13e23b9e35b3a.png


如果使用命令无法安装,需要下载PyMySQL-1.0.2-py3-none-any.whl 文件(最新),进行安装。
(1) 进入python官网https://www.python.org 点击菜单PyPI ,如下图:

74bd35ab686d479ba121269057823278.png


(2) 输入pymsql,进行搜索。如下图所示:


e38fbd0fe0b84791ae9a9680a50c4403.png

d99143da8a04416bbf94b8e09d50ff24.png


(3)点击下载


PyMySQL-1.0.2-py3-none-any.whl


364e0290460247a1bf97703f093197db.png


(4)windows+R打开doc窗口,进入PyMySQL-0.9.3-py2.py3-none-any.whl文件所在目录,

##卸载
pip uninstall pymysql
##执行如命令进行安装
pip install PyMySQL-0.9.3-py2.py3-none-any.whl


4. 创建数据库表


在Python程序中,可以使用execute()在数据库中创建一个新表。
下面的实例代码演示了在PyMySQL数据库中创建新表student的过程。


4.1 创建数据库


27fe1480b5664ebf8428ff5b4e59fbfa.png


Python 三引号
Python 中三引号可以将复杂的字符串进行赋值。
Python 三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)。
#导入pymysql
import pymysql
#创建连接
con=pymysql.connect(host='localhost',user='root',password='root',database='python_db',port=3306)
#创建游标对象
cur=con.cursor()
#编写创建表的sql
sql="""
    create table t_student(
     sno int primary key auto_increment,
     sname varchar(30) not null,
     age int(2),
     score float(3,1)
    )
"""
try:
    # 执行创建表的sql
    cur.execute(sql)
    print('创建表成功')
except Exception as e:
    print(e)
    print('创建表失败')
finally:
    #关闭连接
    con.close()


4.2 插入单条数据


#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='localhost',password='root',user='root',port=3306,database='python_db')
#创建游标对象
cur=con.cursor()
#编写插入数据的sql
sql='insert into t_student(sname,age,score) values(%s,%s,%s)'
try:
    # 执行sql
    cur.execute(sql, ('小强', 18, 99.9))
    #提交事务
    con.commit()
    print('插入成功')
except Exception as e:
    print(e)
    con.rollback()
    print('插入失败')
finally:
    #关闭连接
    con.close()

4.3 插入多条数据

#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='localhost',password='root',user='root',port=3306,database='python_db')
#创建游标对象
cur=con.cursor()
#编写插入数据的sql
sql='insert into t_student(sname,age,score) values(%s,%s,%s)'
try:
    # 执行sql
    cur.executemany(sql,[('小明',19,99.8),('小红',18,99.9),('晓丽',18,99.8),('小花',19,99.6)])
    #提交事务
    con.commit()
    print('插入成功')
except Exception as e:
    print(e)
    con.rollback()
    print('插入失败')
finally:
    #关闭连接
    con.close()

5. 数据库查询


Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。
fetchone(): 该方法获取下一个查询结果集,结果集是一个对象。
fetchall(): 接收全部的返回结果行。
rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。

5.1 查询单条数据

#导入pymysql
import pymysql
#创建连接
con=pymysql.connect(host='localhost',database='python_db',user='root',password='root',port=3306)
#创建游标对象
cur=con.cursor()
#编写查询的sql
sql='select * from t_student where age=18'
#执行sql
try:
    cur.execute(sql)
    #处理结果集
    students=cur.fetchall()
    for student in students:
        sno=student[0]
        sname=student[1]
        age=student[2]
        score=student[3]
        print('sno:',sno,'sname:',sname,'age:',age,'score:',score)
except Exception as e:
    print(e)
    print('查询所有数据失败')
finally:
    #关闭连接
    con.close()


5.2 查询多条数据

#导入pymysql
import pymysql
#创建连接
con=pymysql.connect(host='localhost',database='python_db',user='root',password='root',port=3306)
#创建游标对象
cur=con.cursor()
#编写查询的sql
sql='select * from t_student where age=18'
#执行sql
try:
    cur.execute(sql)
    #处理结果集
    students=cur.fetchall()
    for student in students:
        sno=student[0]
        sname=student[1]
        age=student[2]
        score=student[3]
        print('sno:',sno,'sname:',sname,'age:',age,'score:',score)
except Exception as e:
    print(e)
    print('查询所有数据失败')
finally:
    #关闭连接
    con.close()


6. 数据库修改及删除


6.1 修改数据


#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='127.0.0.1',database='python_db',user='root',password='root',port=3306)
#创建游标对象
cur=con.cursor()
#编写修改的sql
sql='update t_student set sname=%s where sno=%s'
#执行sql语句
try:
    cur.execute(sql,('张三丰',1))
    con.commit()
    print('修改成功')
except Exception as e:
    print(e)
    con.rollback()
    print('修改失败')
finally:
    #关闭连接
    con.close()


6.2 删除数据


#导入模块
import pymysql
#创建连接
con=pymysql.connect(host='127.0.0.1',database='python_db',user='root',password='root',port=3306)
#创建游标对象
cur=con.cursor()
#编写删除的sql
sql='delete from t_student where sname=%s'
#执行sql语句
try:
    cur.execute(sql,('张三丰'))
    con.commit()
    print('删除成功')
except Exception as e:
    print(e)
    con.rollback()
    print('删除失败')
finally:
    #关闭连接
    con.close()


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
20天前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
120 68
|
7天前
|
安全 关系型数据库 MySQL
【赵渝强老师】MySQL的连接方式
本文介绍了MySQL数据库服务器启动后的三种连接方式:本地连接、远程连接和安全连接。详细步骤包括使用root用户登录、修改密码、创建新用户、授权及配置SSL等。并附有视频讲解,帮助读者更好地理解和操作。
|
21天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
|
25天前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
1月前
|
Java 关系型数据库 MySQL
【编程基础知识】Eclipse连接MySQL 8.0时的JDK版本和驱动问题全解析
本文详细解析了在使用Eclipse连接MySQL 8.0时常见的JDK版本不兼容、驱动类错误和时区设置问题,并提供了清晰的解决方案。通过正确配置JDK版本、选择合适的驱动类和设置时区,确保Java应用能够顺利连接MySQL 8.0。
130 1
|
1月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
286 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
13天前
|
测试技术 API 数据安全/隐私保护
Python连接到Jira实例、登录、查询、修改和创建bug
通过使用Python和Jira的REST API,可以方便地连接到Jira实例并进行各种操作,包括查询、修改和创建Bug。`jira`库提供了简洁的接口,使得这些操作变得简单易行。无论是自动化测试还是开发工作流的集成,这些方法都可以极大地提高效率和准确性。希望通过本文的介绍,您能够更好地理解和应用这些技术。
54 0
|
1月前
|
SQL Oracle 关系型数据库
Python连接Oracle
Python连接Oracle
18 0
|
8天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
23 4
|
6天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
19 1