Python 进阶(一):Python连接MySQL数据库和CRUD操作

前言

本文基于MySQL8.x版本的学习,python版本基于当前最新的3.x,windows操作系统下mysql的安装流程,可参考我之前的文章:Windows MySQL8.0免安装版,配置多个安装实例

Python连接MySQL的五种方式

在Python中,您可以使用多种方式来操作MySQL数据库。以下是一些常见的方式:

  1. mysql-connector-python:这是MySQL官方提供的官方驱动程序,可以通过pip安装。它提供了mysql.connector模块,用于连接和操作MySQL数据库。

  2. PyMySQL:PyMySQL是一个纯Python编写的MySQL客户端库,可以通过pip安装。它提供了与MySQL数据库交互所需的各种功能。

  3. mysqlclient:mysqlclient是Python的MySQL数据库驱动程序,可以通过pip安装。它是基于C语言的MySQL客户端库的绑定,提供了高性能的操作。

  4. SQLAlchemy:SQLAlchemy是一个流行的Python SQL工具和对象关系映射(ORM)库,支持多种数据库,包括MySQL。它提供了一种更高级的抽象来操作数据库。

  5. peewee
    peewee 是一个流行的 ORM 框架,实现了对象与数据库表的映射,兼容多种数据库,我们无需知道原生 SQL,只要了解面向对象的思想就可以简单、快速的操作相应数据库,支持 Python3。

在Python 3中,可以使用mysql-connector-python库来连接和进行CRUD(创建、读取、更新和删除)操作。以下是Python 3和MySQL 8.x版本的连接和基本操作的示例代码:

1. 安装mysql-connector-python

在使用mysql-connector-python库之前,需要先安装它。可以使用以下命令来安装:

pip install mysql-connector-python

在这里插入图片描述

2. 连接数据库

  1. 安装好mysql数据库后,执行创建数据库命令
CREATE DATABASE `py_conn_test` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';
  1. 执行创建数据表操作
# 书目表
CREATE TABLE `py_conn_test`.`book`  (
  `id` int UNSIGNED NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NULL COMMENT '书名',
  `author` varchar(255) NULL COMMENT '作者',
  `price` float(10, 2) NULL COMMENT '书名价格',
  `edition` int NULL COMMENT '版次',
  PRIMARY KEY (`id`)
);
import mysql.connector

# 创建数据库连接
conn = mysql.connector.connect(
    host="192.168.0.146",# 数据库主机ip,或者localhost表示当前主机
    port=4706, # 端口,不写此参数默认3306
    user="zhouquan", # 数据库账户
    password="zhouquan@123", # 数据库密码
    database="py_conn_test" # 数据库名,上面语句创建的mysql数据库名
)

3. 查询数据

import mysql.connector

# 创建数据库连接
conn = mysql.connector.connect(
    host="192.168.0.146",
    port=4706,
    user="zhouquan",
    password="zhouquan@123",
    database="py_conn_test"

)

# 创建游标对象
cursor = conn.cursor()

# 执行SQL语句
cursor.execute("SELECT * FROM book")

# 获取查询结果
results = cursor.fetchall()

# 打印结果
for row in results:
    print(row)

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

在上述代码中,我们使用mysql.connector库来连接MySQL数据库。需要提供主机名、端口号、用户名、密码和数据库名来建立连接。然后创建一个游标对象,该对象用于执行SQL语句。在示例中,我们执行了一个简单的SELECT语句,并使用fetchall()方法获取查询结果。最后关闭游标和连接对象。
在这里插入图片描述

4. 插入数据

import mysql.connector

# 创建数据库连接
conn = mysql.connector.connect(
    host="192.168.0.146",
    port=4706,
    user="root",
    password="数据库密码",
    database="py_conn_test"

)

# 创建游标对象
cursor = conn.cursor()

# 插入数据
sql = "INSERT INTO `py_conn_test`.`book`( `title`, `author`, `price`, `edition`) VALUES ( %s,%s,%s,%s);"
values = ("动物农场", "乔治.奥威尔", 15.5, 3)
cursor.execute(sql, values)

# 提交事务
conn.commit()

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

在插入数据的示例中,我们使用execute()方法执行INSERT语句,并将要插入的值作为参数传递给execute()方法。然后使用commit()方法提交事务以保存更改。
在这里插入图片描述
在这里插入图片描述

5. 更新数据

在更新的示例中,我们使用execute()方法执行UPDATE语句,并传递相应的参数。最后,使用commit()方法提交事务以保存更改。

import mysql.connector

# 创建数据库连接
conn = mysql.connector.connect(
    host="192.168.0.146",
    port=4706,
    user="zhouquan",
    password="zhouquan@123",
    database="py_conn_test"

)

# 创建游标对象
cursor = conn.cursor()

# 更新数据 当前数据库数据:2	动物农场	乔治.奥威尔	15.50	3
sql = "UPDATE `book` SET title = %s WHERE id = %s"
values = ("1984", 2)
cursor.execute(sql, values)
conn.commit()

# 提交事务
conn.commit()

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

在这里插入图片描述
在这里插入图片描述

6. 删除数据

在删除数据的示例中,我们使用execute()方法执行DELETE语句,并传递相应的参数。最后,使用commit()方法提交事务以保存更改。

import mysql.connector

# 创建数据库连接
conn = mysql.connector.connect(
    host="192.168.0.146",
    port=4706,
    user="zhouquan",
    password="zhouquan@123",
    database="py_conn_test"

)

# 创建游标对象
cursor = conn.cursor()

# 删除数据
sql = "DELETE FROM book WHERE id = %s"
value = (2,)
cursor.execute(sql, value)
conn.commit()

# 提交事务
conn.commit()

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

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐州蔡徐坤

又要到饭了兄弟们

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值