要在 Python 中使用 MySQL 数据库进行增删改查(CRUD)操作,你可以使用 `pymysql` 库。以下是一些示例代码,展示如何实现这些操作。
首先,确保你已经安装了 `pymysql`。如果没有安装,可以通过以下命令安装:
```bash
pip install pymysql
```
1. 连接数据库
```python
import pymysql
连接数据库
conn = pymysql.connect(host='localhost', user='your_username', password='your_password', db='your_db', charset='utf8mb4')
```
2. 创建(Create)
```python
创建游标对象
cursor = conn.cursor()
插入数据
sql = "INSERT INTO patient (name, age, time) VALUES (%s, %s, %s)"
try:
cursor.execute(sql, ('John Doe', 30, '2024-07-27 10:00:00'))
conn.commit() # 提交事务
except pymysql.Error as e:
print(e)
conn.rollback() # 回滚事务
关闭游标和连接
cursor.close()
conn.close()
```
3. 读取(Read)
```python
创建游标对象
cursor = conn.cursor(pymysql.cursors.DictCursor)
查询所有数据
sql = "SELECT * FROM patient"
try:
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
print(row)
except pymysql.Error as e:
print(e)
关闭游标和连接
cursor.close()
conn.close()
```
4. 更新(Update)
```python
创建游标对象
cursor = conn.cursor()
更新数据
sql = "UPDATE patient SET age = %s WHERE name = %s"
try:
cursor.execute(sql, (31, 'John Doe'))
conn.commit() # 提交事务
except pymysql.Error as e:
print(e)
conn.rollback() # 回滚事务
关闭游标和连接
cursor.close()
conn.close()
```
5. 删除(Delete)
```python
创建游标对象
cursor = conn.cursor()
删除数据
sql = "DELETE FROM patient WHERE name = %s"
try:
cursor.execute(sql, ('John Doe',))
conn.commit() # 提交事务
except pymysql.Error as e:
print(e)
conn.rollback() # 回滚事务
关闭游标和连接
cursor.close()
conn.close()
```
完整示例
```python
import pymysql
连接数据库
conn = pymysql.connect(host='localhost', user='your_username', password='your_password', db='your_db', charset='utf8mb4')
创建游标对象
cursor = conn.cursor()
插入数据
sql_insert = "INSERT INTO patient (name, age, time) VALUES (%s, %s, %s)"
try:
cursor.execute(sql_insert, ('John Doe', 30, '2024-07-27 10:00:00'))
conn.commit()
except pymysql.Error as e:
print(e)
conn.rollback()
查询数据
sql_select = "SELECT * FROM patient"
try:
cursor.execute(sql_select)
results = cursor.fetchall()
for row in results:
print(row)
except pymysql.Error as e:
print(e)
更新数据
sql_update = "UPDATE patient SET age = %s WHERE name = %s"
try:
cursor.execute(sql_update, (31, 'John Doe'))
conn.commit()
except pymysql.Error as e:
print(e)
conn.rollback()
删除数据
sql_delete = "DELETE FROM patient WHERE name = %s"
try:
cursor.execute(sql_delete, ('John Doe',))
conn.commit()
except pymysql.Error as e:
print(e)
conn.rollback()
关闭游标和连接
cursor.close()
conn.close()
```
确保替换 `your_username`, `your_password`, `your_db` 为你的 MySQL 数据库的实际用户名、密码和数据库名。同时,确保你的数据库服务器正在运行,并且你有足够的权限执行这些操作。