PyMySQL安装方法

pip install pymysql

连接数据库

注意事项

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

  • 你有一个MySQL数据库,并且已经启动。
  • 你有可以连接该数据库的用户名和密码
  • 你有一个有权限操作的database

基本使用

# 导入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 pymysqlconn = 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 pymysqlconn = 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 = "Alex"
age = 18
try:# 执行SQL语句
    cursor.execute(sql, [username, age])# 提交事务
    conn.commit()# 提交之后,获取刚插入的数据的IDlast_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 = [("Alex", 18), ("Egon", 20), ("Yuan", 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 = "Alex"
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")

转载于:https://www.cnblogs.com/L5251/articles/8617440.html

Python基础44(PyMySQL模块)相关推荐

  1. Python全栈开发之路 【第六篇】:Python基础之常用模块

    本节内容 模块分类:好处:标准库:help("modules") 查看所有python自带模块列表第三方开源模块:自定义模块:模块调用: import modulefrom os ...

  2. python中的pymysql模块

    文章目录 一.安装pymysql模块 二.通过python操作数据库 1.连接数据库 2.创建游标对象 3.对数据库操作 三.查询数据库 1.查询数据记录数 2.获取下一条查询结果集 3.获取指定个数 ...

  3. Python基础之pyautogui模块(详细总结鼠标键盘操作)

    Python基础之鼠标操作 文章目录 Python基础之鼠标操作 1. GUI 控制功能 1.1 自动 防故障功能 1.2 停顿功能 2. 鼠标操作 2.1 控制鼠标移动 2.2 控制鼠标点击 2.3 ...

  4. Python基础概念_6_模块

    模块 7 模块 7.1 简介 在上一章里我们知道了如何创建和使用函数.如果你想要在其它程序中重用很多函数,那么你该如何实现呢?你可能已经猜到了,答案是使用本章要讲的模块. 模块可以让你能够有逻辑的组织 ...

  5. python mysql倒序_day40:MySQL:python操作mysql:pymysql模块SQL注入攻击

    目录 part1:用python连接mysql 1.用python连接mysql的基本语法 创建连接conn→创建游标对象cursor→执行sql语句execute→获取数据fetchone→释放游标 ...

  6. 【python】之pymysql模块,操作mysql数据库!

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBM ...

  7. python基础之heapq模块(堆模块)

    堆是一种数据结构,本质上是一种二叉树.在python中可以使用heapq模块实现,heapq可以实现一个简单的优先级队列. 一.堆的性质 堆分为小根堆与大根堆,小根堆的第一个元素可以理解为数值最小的元 ...

  8. 5、python基础了解:模块、dir()函数、包

    文章目录 前言 一.模块 1.1.模块介绍 1.2.模块详解 二. 标准模块 三.dir() 函数 四.包 python官方文档链接 python官方标准库链接 前言 余生平,怎一个懒字了得. 一.模 ...

  9. python 自定义模块加密_Python开发【第一篇】Python基础之自定义模块和内置模块...

    为什么要有模块,将代码归类.模块,用一砣代码实现了某个功能的代码集合. Python中叫模块,其他语言叫类库. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代 ...

最新文章

  1. AT91RM9200+pcf8563在linux2.6.20下的调试心得
  2. Git 查看提交历史
  3. 如何从Java EE无状态应用程序连接到MongoDB
  4. Java Web实训项目:西蒙购物网(下)
  5. asp.net关于页面不回发,不生成__doPostBack方法问题的完美解决方案--ZT
  6. $, $, $$, $$, $$a (Run Script File)
  7. springboot redisTemplate 外部反序列化
  8. php获取qq空间,使用php进行批量抓取QQ空间相册链接
  9. 史上最完整的《指环王》魔戒战争大事记(编年体长文)
  10. QScrollArea 动态添加控件问题
  11. javascript操作div中的marginTop
  12. 在线绘制网络拓扑图操作方法分享
  13. windows下AV1的编译
  14. matlab仿真中pv,PV的matlab仿真
  15. 【报告分享】2021快手内容生态半年报-快手(附下载)
  16. 【合天网安】FCKeditor 2.4.3文件上传漏洞
  17. 关于lvm扩容的方式
  18. 沃尔玛积极助农,2月全国范围直采滞销蔬菜近500吨
  19. 1404 数根(函数专题)
  20. 【 同 余 定 理 (补充)】

热门文章

  1. 2019年最流行的10个前端框架
  2. Vue面试题汇总目录
  3. [react] 怎样动态导入组件?
  4. 前端学习(2972):使用mock假数据
  5. 前端学习(2480):接口文档使用2
  6. “约见”面试官系列之常见面试题第三十一篇之vue-router得守卫(建议收藏)
  7. 前端学习(2110):组件化得开发和实现步骤
  8. 前端学习(1977)vue之电商管理系统电商系统之按钮与文本框的切换
  9. 前端学习(1496):watch使用场景
  10. 前端学习(355):小练习