MySQL数据库的连接和CRUD操作
- 前言
- Python连接MySQL的五种方式
- 1. 安装mysql-connector-python
- 2. 连接数据库
- 3. 查询数据
- 4. 插入数据
- 5. 更新数据
- 6. 删除数据
前言
本文基于MySQL8.x
版本的学习,python版本基于当前最新的3.x
,windows操作系统下mysql的安装流程,可参考我之前的文章:Windows MySQL8.0免安装版,配置多个安装实例
Python连接MySQL的五种方式
在Python中,您可以使用多种方式来操作MySQL数据库。以下是一些常见的方式:
-
mysql-connector-python
:这是MySQL官方提供的官方驱动程序,可以通过pip安装。它提供了mysql.connector模块,用于连接和操作MySQL数据库。 -
PyMySQL:PyMySQL是一个纯Python编写的MySQL客户端库,可以通过pip安装。它提供了与MySQL数据库交互所需的各种功能。
-
mysqlclient:mysqlclient是Python的MySQL数据库驱动程序,可以通过pip安装。它是基于C语言的MySQL客户端库的绑定,提供了高性能的操作。
-
SQLAlchemy:SQLAlchemy是一个流行的Python SQL工具和对象关系映射(ORM)库,支持多种数据库,包括MySQL。它提供了一种更高级的抽象来操作数据库。
-
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. 连接数据库
- 安装好mysql数据库后,执行创建数据库命令
CREATE DATABASE `py_conn_test` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';
- 执行创建数据表操作
# 书目表
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, # 端口,不写此参数默认3306user="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()