<返回更多

一篇文章搞定Python连接mysql数据库模块PyMySQL

2020-06-05    
加入收藏

PyMySQL安装方法

pip install pymysql

连接数据库

注意事项

在进行本文以下内容之前需要注意:

基本使用

# 导入pymysql模块

import pymysql

# 链接库(database)

conn = pymysql.connect(
    host="127.0.0.1",  # host后面填写需要链接的数据库地址
    user="root",  # 用户名
    password="123456",  # 密码
    database="human",  # 数据库名
    charset="utf8"  # 编码方式
)

# 得到一个可以执行的SQL语句的光标

cursor = conn.cursor()

# 定义要执行的SQL语句

sql = 'select * from info;'

# 执行SQL语句

cursor.execute(sql)

# 关闭光标对象

cursor.close()

# 关闭数据库连接

conn.close()

返回字典格式的数据

import pymysql

conn = pymysql.connect(
    host="127.0.0.1",
    user="root",
    password="123456",
    database="human",
    charset="utf8"
)

# 得到一个可以执行SQL语句并且将结果作为字典返回的游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

sql = 'select name from class;'

# 执行sql语句
cursor.execute(sql)

# 返回查询到的所有数据
ret = cursor.fetchall()

# 返回查询到的指定条数数据
# ret = cursor.fetchmany(5)

print(ret)

# 关闭链接
cursor.close()
conn.close()

注意

charset=“utf8”,编码不要写成"utf-8"

增删改查操作

import pymysql

conn = pymysql.connect(
    host="127.0.0.1",
    user="root",
    password="123456",
    database="human",
    charset="utf8"
)

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 注意此处传值全部使用%s做占位符即可
sql = "insert into class(name, age, sex, salary) VALUES(%s,%s,%s,%s)"
name = 'abcd'
age = '33'
sex = '男'
salary = '120.02'

# 执行sql语句
cursor.execute(sql, [name, age, sex, salary])

# 提交事务
conn.commit()

cursor.close()
conn.close()

插入数据失败回滚

import pymysql
conn = pymysql.connect(
    host="127.0.0.1",
    user="root",
    password="123456",
    database="human",
    charset="utf8"
)

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

sql = "INSERT into class(name, age, sex, salary) values(%s,%s,%s,%s);"

name = "ss"
age = "22"
sex = "男22"
salary="1234.2"
try:
    cursor.execute(sql, [name, age, sex, salary])
    # 提交事务
    conn.commit()
except Exception:
    print('出错')
    # 有异常回滚事务
    conn.rollback()

cursor.close()
conn.close()

获取插入数据的ID(关联操作时会用到)

# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()
sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"
username = "run"
age = 18
try:
    # 执行SQL语句
    cursor.execute(sql, [username, age])
    # 提交事务
    conn.commit()
    # 提交之后,获取刚插入的数据的ID
    last_id = cursor.lastrowid
except Exception as e:
    # 有异常,回滚事务
    conn.rollback()
cursor.close()
conn.close()

批量执行

# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()
sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"
data = [("run1", 18), ("run2", 20), ("run3", 21)]
try:
    # 批量执行多条插入SQL语句
    cursor.executemany(sql, data)
    # 提交事务
    conn.commit()
except Exception as e:
    # 有异常,回滚事务
    conn.rollback()
cursor.close()
conn.close()

# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()
sql = "DELETE FROM USER1 WHERE id=%s;"
try:
    cursor.execute(sql, [4])
    # 提交事务
    conn.commit()
except Exception as e:
    # 有异常,回滚事务
    conn.rollback()
cursor.close()
conn.close()

# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()
# 修改数据的SQL语句
sql = "UPDATE USER1 SET age=%s WHERE name=%s;"
username = "run1"
age = 80
try:
    # 执行SQL语句
    cursor.execute(sql, [age, username])
    # 提交事务
    conn.commit()
except Exception as e:
    # 有异常,回滚事务
    conn.rollback()
cursor.close()
conn.close()

查询单条数据

# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()
# 查询数据的SQL语句
sql = "SELECT id,name,age from USER1 WHERE id=1;"
# 执行SQL语句
cursor.execute(sql)
# 获取单条查询数据
ret = cursor.fetchone()
cursor.close()
conn.close()
# 打印下查询结果
print(ret)

查询多条数据

# 导入pymysql模块
import pymysql
# 连接database
conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()
# 查询数据的SQL语句
sql = "SELECT id,name,age from USER1;"
# 执行SQL语句
cursor.execute(sql)
# 获取多条查询数据
ret = cursor.fetchall()
cursor.close()
conn.close()
# 打印下查询结果
print(ret)

进阶用法

# 可以获取指定数量的数据
cursor.fetchmany(3)
# 光标按绝对位置移动1
cursor.scroll(1, mode="absolute")
# 光标按照相对位置(当前位置)向后移动1
cursor.scroll(1, mode="relative")
# 光标按照相对位置(当前位置)向前移动1
cursor.scroll(-1, mode="relative")

#计算机##mysql##数据库##Python##科技新星创作营#

一篇文章搞定Python连接mysql数据库模块PyMySQL
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>