pymysql使用案例
时间: 2024-09-07 08:03:37 浏览: 45
pymysql是一个Python的MySQL数据库连接模块,它提供了一个类似SQLAlchemy的API,方便开发者在Python项目中操作MySQL数据库。下面是一个简单的使用pymysql进行数据查询和插入的案例:
```python
import pymysql
# 连接到数据库
conn = pymysql.connect(host='localhost', user='username', password='password', db='database_name')
try:
# 创建游标
cursor = conn.cursor()
# 查询数据
query = "SELECT * FROM table_name"
cursor.execute(query)
results = cursor.fetchall()
for row in results:
print(row)
# 插入数据
insert_query = "INSERT INTO table_name (column1, column2) VALUES (%s, %s)"
data = ('value1', 'value2')
cursor.execute(insert_query, data)
conn.commit() # 提交事务
finally:
# 关闭游标和连接
cursor.close()
conn.close()
相关问题
pymysql 使用相关案例及异常处理
案例:
连接数据库:
```python
import pymysql
# 连接数据库
db = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='test', charset='utf8')
# 获取游标
cursor = db.cursor()
# 执行SQL语句
sql = 'SELECT * FROM student'
cursor.execute(sql)
# 获取查询结果
result = cursor.fetchall()
# 关闭游标和数据库连接
cursor.close()
db.close()
print(result)
```
插入数据:
```python
import pymysql
# 连接数据库
db = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='test', charset='utf8')
# 获取游标
cursor = db.cursor()
# 执行SQL语句
sql = "INSERT INTO student(name, age, sex) VALUES ('小明', 18, '男')"
try:
cursor.execute(sql)
db.commit()
print("插入数据成功")
except:
db.rollback()
print("插入数据失败")
# 关闭游标和数据库连接
cursor.close()
db.close()
```
更新数据:
```python
import pymysql
# 连接数据库
db = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='test', charset='utf8')
# 获取游标
cursor = db.cursor()
# 执行SQL语句
sql = "UPDATE student SET age = 20 WHERE name = '小明'"
try:
cursor.execute(sql)
db.commit()
print("更新数据成功")
except:
db.rollback()
print("更新数据失败")
# 关闭游标和数据库连接
cursor.close()
db.close()
```
删除数据:
```python
import pymysql
# 连接数据库
db = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='test', charset='utf8')
# 获取游标
cursor = db.cursor()
# 执行SQL语句
sql = "DELETE FROM student WHERE name = '小明'"
try:
cursor.execute(sql)
db.commit()
print("删除数据成功")
except:
db.rollback()
print("删除数据失败")
# 关闭游标和数据库连接
cursor.close()
db.close()
```
异常处理:
在 pymysql 操作中,常见的异常有:
- `pymysql.err.IntegrityError`:违反了完整性约束条件(例如,主键或唯一键约束)
- `pymysql.err.InternalError`:MySQL 服务器内部错误
- `pymysql.err.ProgrammingError`:SQL 语法错误或参数错误
- `pymysql.err.Warning`:MySQL 服务器产生警告
我们可以使用 try-except 块来捕获这些异常。例如:
```python
import pymysql
# 连接数据库
db = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='test', charset='utf8')
# 获取游标
cursor = db.cursor()
# 执行SQL语句
sql = "INSERT INTO student(name, age, sex) VALUES ('小明', 18, '男')"
try:
cursor.execute(sql)
db.commit()
print("插入数据成功")
except pymysql.err.IntegrityError:
db.rollback()
print("插入数据失败,违反了完整性约束条件")
except pymysql.err.InternalError:
db.rollback()
print("插入数据失败,MySQL 服务器内部错误")
except pymysql.err.ProgrammingError:
db.rollback()
print("插入数据失败,SQL 语法错误或参数错误")
except pymysql.err.Warning:
print("MySQL 服务器产生警告")
# 关闭游标和数据库连接
cursor.close()
db.close()
```
写pymysql基础知识实例教程
好的,下面是一个简单的Pymysql实例教程:
1. 安装Pymysql
在终端(或者命令行)中输入以下命令来安装Pymysql:
```
pip install pymysql
```
2. 连接数据库
在Python脚本中,使用以下代码来连接数据库:
```python
import pymysql
# 连接数据库
conn = pymysql.connect(
host='localhost', # 数据库地址
port=3306, # 数据库端口
user='root', # 数据库用户名
password='123456', # 数据库密码
db='test', # 数据库名称
charset='utf8mb4' # 数据库编码
)
# 创建游标
cursor = conn.cursor()
```
其中,`host`、`port`、`user`、`password`、`db`、`charset`分别对应数据库的地址、端口、用户名、密码、数据库名称和编码方式。`pymysql.connect()` 函数返回一个连接对象,用于后续的数据库操作。
3. 执行SQL语句
可以使用游标对象 `cursor` 来执行SQL语句,例如:
```python
# 插入数据
sql = "INSERT INTO students(name, age, gender) VALUES(%s, %s, %s)"
cursor.execute(sql, ('张三', 18, '男'))
# 查询数据
sql = "SELECT * FROM students WHERE age > %s"
cursor.execute(sql, (20,))
result = cursor.fetchall()
for row in result:
print(row)
```
其中,`execute()` 方法接收两个参数:SQL语句和参数。在插入数据时,可以使用 `%s` 占位符来表示参数,然后在 `execute()` 方法的第二个参数中传入实际的参数。在查询数据时,可以使用 `%s` 占位符来表示条件参数,然后在 `execute()` 方法的第二个参数中传入实际的参数,最后使用 `fetchall()` 方法获取所有查询结果。
4. 提交和回滚
在执行INSERT、UPDATE、DELETE等修改数据库的操作时,需要调用 `conn.commit()` 方法来提交事务。如果出现错误,可以调用 `conn.rollback()` 方法来回滚事务,例如:
```python
try:
# 执行SQL语句
...
# 提交事务
conn.commit()
except Exception as e:
# 回滚事务
conn.rollback()
print(e)
finally:
# 关闭游标和连接
cursor.close()
conn.close()
```
在执行SQL语句时,可以使用try-except语句来捕获异常,如果出现异常,则调用 `conn.rollback()` 方法来回滚事务,最后关闭游标和连接。
这就是一个简单的Pymysql实例教程,希望对你有所帮助。
阅读全文