Python 3 介绍(二十三)--Python3 MySQL 数据库连接 - PyMySQL 驱动介绍

目录

安装 PyMySQL

基本使用示例

1. 连接到数据库

2. 插入数据

3. 更新数据

4. 删除数据

进阶功能

1. 使用事务

2. 批量插入数据

3. 使用字典游标

错误处理

总结


 

PyMySQL 是一个纯 Python 实现的 MySQL 数据库驱动程序,它完全由 Python 编写,不需要任何外部依赖,可以在任何支持 Python 的平台上使用。PyMySQL 支持 Python 3,并且提供了一个类似于 MySQLdb 的 API,使得迁移现有的使用 MySQLdb 的代码变得相对容易。

安装 PyMySQL

在开始使用 PyMySQL 之前,你需要先安装它。可以使用 pip 来安装:

 

bash

深色版本

1pip install pymysql

基本使用示例

下面是一个简单的示例,展示如何使用 PyMySQL 连接到 MySQL 数据库,并执行一些基本操作。

1. 连接到数据库

 

python

深色版本

1import pymysql
2
3# 创建连接
4connection = pymysql.connect(
5    host='localhost',
6    user='your_username',
7    password='your_password',
8    database='your_database',
9    charset='utf8mb4',
10    cursorclass=pymysql.cursors.DictCursor
11)
12
13# 创建游标对象
14with connection.cursor() as cursor:
15    # 执行 SQL 查询
16    sql = "SELECT * FROM your_table"
17    cursor.execute(sql)
18    
19    # 获取查询结果
20    result = cursor.fetchall()
21    
22    # 打印结果
23    for row in result:
24        print(row)
25
26# 关闭连接
27connection.close()

2. 插入数据

 

python

深色版本

1import pymysql
2
3# 创建连接
4connection = pymysql.connect(
5    host='localhost',
6    user='your_username',
7    password='your_password',
8    database='your_database',
9    charset='utf8mb4',
10    cursorclass=pymysql.cursors.DictCursor
11)
12
13# 创建游标对象
14with connection.cursor() as cursor:
15    # 插入数据
16    sql = "INSERT INTO your_table (`column1`, `column2`) VALUES (%s, %s)"
17    cursor.execute(sql, ('value1', 'value2'))
18    
19    # 提交事务
20    connection.commit()
21
22# 关闭连接
23connection.close()

3. 更新数据

 

python

深色版本

1import pymysql
2
3# 创建连接
4connection = pymysql.connect(
5    host='localhost',
6    user='your_username',
7    password='your_password',
8    database='your_database',
9    charset='utf8mb4',
10    cursorclass=pymysql.cursors.DictCursor
11)
12
13# 创建游标对象
14with connection.cursor() as cursor:
15    # 更新数据
16    sql = "UPDATE your_table SET column1=%s WHERE column2=%s"
17    cursor.execute(sql, ('new_value', 'value_to_match'))
18    
19    # 提交事务
20    connection.commit()
21
22# 关闭连接
23connection.close()

4. 删除数据

 

python

深色版本

1import pymysql
2
3# 创建连接
4connection = pymysql.connect(
5    host='localhost',
6    user='your_username',
7    password='your_password',
8    database='your_database',
9    charset='utf8mb4',
10    cursorclass=pymysql.cursors.DictCursor
11)
12
13# 创建游标对象
14with connection.cursor() as cursor:
15    # 删除数据
16    sql = "DELETE FROM your_table WHERE column2=%s"
17    cursor.execute(sql, ('value_to_delete',))
18    
19    # 提交事务
20    connection.commit()
21
22# 关闭连接
23connection.close()

进阶功能

1. 使用事务

在执行需要保证数据完整性的操作时,可以使用事务来保证数据的一致性。

 

python

深色版本

1import pymysql
2
3try:
4    # 创建连接
5    connection = pymysql.connect(
6        host='localhost',
7        user='your_username',
8        password='your_password',
9        database='your_database',
10        charset='utf8mb4',
11        cursorclass=pymysql.cursors.DictCursor
12    )
13
14    # 创建游标对象
15    with connection.cursor() as cursor:
16        # 开始事务
17        connection.begin()
18        
19        # 执行多个SQL语句
20        sql_insert = "INSERT INTO your_table (`column1`, `column2`) VALUES (%s, %s)"
21        cursor.execute(sql_insert, ('value1', 'value2'))
22        
23        sql_update = "UPDATE your_table SET column1=%s WHERE column2=%s"
24        cursor.execute(sql_update, ('new_value', 'value_to_match'))
25        
26        # 提交事务
27        connection.commit()
28
29except pymysql.MySQLError as e:
30    # 如果发生错误,则回滚事务
31    connection.rollback()
32    print(f"Error: {e}")
33
34finally:
35    # 关闭连接
36    connection.close()

2. 批量插入数据

批量插入数据可以提高性能。

 

python

深色版本

1import pymysql
2
3# 创建连接
4connection = pymysql.connect(
5    host='localhost',
6    user='your_username',
7    password='your_password',
8    database='your_database',
9    charset='utf8mb4',
10    cursorclass=pymysql.cursors.DictCursor
11)
12
13# 数据集
14data = [
15    ('value1', 'value2'),
16    ('value3', 'value4'),
17    ('value5', 'value6')
18]
19
20# 创建游标对象
21with connection.cursor() as cursor:
22    # 批量插入数据
23    sql = "INSERT INTO your_table (`column1`, `column2`) VALUES (%s, %s)"
24    cursor.executemany(sql, data)
25    
26    # 提交事务
27    connection.commit()
28
29# 关闭连接
30connection.close()

3. 使用字典游标

字典游标可以让你以键值对的形式访问查询结果。

 

python

深色版本

1import pymysql
2
3# 创建连接
4connection = pymysql.connect(
5    host='localhost',
6    user='your_username',
7    password='your_password',
8    database='your_database',
9    charset='utf8mb4',
10    cursorclass=pymysql.cursors.DictCursor
11)
12
13# 创建游标对象
14with connection.cursor() as cursor:
15    # 执行 SQL 查询
16    sql = "SELECT * FROM your_table"
17    cursor.execute(sql)
18    
19    # 获取查询结果
20    result = cursor.fetchall()
21    
22    # 打印结果
23    for row in result:
24        print(row['column1'], row['column2'])
25
26# 关闭连接
27connection.close()

错误处理

在使用 PyMySQL 时,可能会遇到一些错误,例如连接失败、查询错误等。通常需要使用 try-except 语句来处理这些错误。

 

python

深色版本

1import pymysql
2
3try:
4    # 创建连接
5    connection = pymysql.connect(
6        host='localhost',
7        user='your_username',
8        password='your_password',
9        database='your_database',
10        charset='utf8mb4',
11        cursorclass=pymysql.cursors.DictCursor
12    )
13
14    # 创建游标对象
15    with connection.cursor() as cursor:
16        # 执行 SQL 查询
17        sql = "SELECT * FROM your_table"
18        cursor.execute(sql)
19        
20        # 获取查询结果
21        result = cursor.fetchall()
22        
23        # 打印结果
24        for row in result:
25            print(row)
26
27except pymysql.MySQLError as e:
28    print(f"Error: {e}")
29
30finally:
31    # 关闭连接
32    connection.close()

总结

PyMySQL 是一个功能强大且易于使用的 MySQL 数据库驱动程序,支持 Python 3。通过上述示例,你应该能够掌握如何使用 PyMySQL 连接到 MySQL 数据库,并执行基本的 CRUD 操作。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值