Python之PyMySQL操作详解

一、PyMysql简介

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2.x中则使用mysqldb。

Django中也可以使用PyMySQL连接MySQL数据库。

二、PyMySQL操作详解

2.1 PyMySQL安装

pip install pymysql

2.2 PyMySQL应用

2.2.1 基本使用

# coding=utf8

import sys
import pymysql
import time

# 连接database
conn = pymysql.connect(host="数据服务器IP", user="用户名",password="密码",database="数据库名",charset="utf8")
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()
# 定义要执行的SQL语句
sql = """
CREATE TABLE user (
id INT auto_increment PRIMARY KEY ,
name CHAR(10) NOT NULL UNIQUE,
age TINYINT NOT NULL
)ENGINE=innodb DEFAULT CHARSET=utf8;
"""
# 执行SQL语句
cursor.execute(sql)
# 关闭光标对象
cursor.close()
# 关闭数据库连接
conn.close()

2.2.2 防止SQL注入

# coding=utf8

import sys
import pymysql
import time

name = input("姓名:>>")
age = input("年龄:>>")
# 连接数据库
conn = pymysql.connect(host="数据服务器IP", user="用户名",password="密码",database="数据库名",charset="utf8")
# 获取光标,输入SQL语句并执行
cursor = conn.cursor()

# 自己拼接字符串,容易造成SQL注入问题
sql1 = "select * from user where name='%s' and age='%s';"%(name,age)
ret1 = cursor.execute(sql1)

# 让pymysql来拼接,防止SQL注入
sql2 = "select * from user where name=%s and age=%s;"
ret2 = cursor.execute(sql2,[name,age])

# 关闭光标和连接
cursor.close()
conn.close()
print(ret2)

2.2.3 用事务处理数据库操作

# coding=utf8

import sys
import pymysql
import time

# 连接数据库
conn = pymysql.connect(host="数据服务器IP", user="用户名",password="密码",database="数据库名",charset="utf8")
# 获取光标,输入SQL语句并执行
cursor = conn.cursor()

# 写SQL语句(ignore 忽略已存在的数据,保证批量添加全部执行)
sql = "INSERT IGNORE INTO user(name,age) VALUES(%s,%s);"
name1 = "王芳"
age1 = 29
name2 = "刘广"
age2 = 31
try:
    # 单条添加
    #cursor.execute(sql, [name1, age1])
    # 多条添加
    cursor.executemany(sql, ((name1, age1),(name2, age2)))

    # 把修改提交到数据库
    conn.commit()
except Exception as e:
    conn.rollback()  # 执行SQL语句有问题或提交有异常都回滚

cursor.close()
conn.close()

2.2.4 动态获取数据

# coding=utf8

import sys
import pymysql
import time

# 连接数据库
conn = pymysql.connect(host="数据服务器IP", user="用户名",password="密码",database="数据库名",charset="utf8")
# 获取光标,输入SQL语句并执行
cursor = conn.cursor()

# 查询数据
sql = """ 
SELECT * FROM user LIMIT 2,10; 
"""
cursor.execute(sql)

# 获取所有查询到的结果
ret1 = cursor.fetchall()
print(ret1)

# 从查询语句中获取一条查询结果
# ret2 = cursor.fetchone()
# print(ret2)

# 获取相应的行数
# ret3 = cursor.fetchmany(2)
# print(ret3)

# 返回执行的sql语句
# ret4 = cursor.mogrify(sql)
# print(ret4)

conn.commit()

cursor.close()
conn.close()

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
pymysqlPython 语言操作 MySQL 数据库的一个库,它提供了一系列的方法和函数用于连接、查询、修改、删除等数据库操作。 以下是使用 pymysql 操作数据库的一些常用方法: 1. 连接数据库 ```python import pymysql # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", password="password", database="test") # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() ``` 2. 查询数据 ```python # 编写 SQL 语句 sql = "SELECT * FROM students" # 执行 SQL 语句 cursor.execute(sql) # 获取所有记录列表 results = cursor.fetchall() # 遍历结果并输出 for row in results: print(row[0], row[1], row[2], row[3], row[4]) ``` 3. 插入数据 ```python # 编写 SQL 语句 sql = "INSERT INTO students(name, age, sex) VALUES ('Tom', 18, 'male')" # 执行 SQL 语句 cursor.execute(sql) # 提交到数据库执行 db.commit() ``` 4. 更新数据 ```python # 编写 SQL 语句 sql = "UPDATE students SET age = 20 WHERE name = 'Tom'" # 执行 SQL 语句 cursor.execute(sql) # 提交到数据库执行 db.commit() ``` 5. 删除数据 ```python # 编写 SQL 语句 sql = "DELETE FROM students WHERE name = 'Tom'" # 执行 SQL 语句 cursor.execute(sql) # 提交到数据库执行 db.commit() ``` 6. 关闭数据库连接 ```python # 关闭游标和数据库连接 cursor.close() db.close() ``` 以上就是使用 pymysql 操作数据库的一些常用方法。需要注意的是,在执行增删改操作时,需要使用 `db.commit()` 提交到数据库执行。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

m0_68949064

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值