我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【Python3】pymysql模块

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【Python3】pymysql模块

1. 什么是 PyMySQL?

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

PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

2. PyMySQL 安装

pip3 install PyMySQL

3. 使用操作

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql
  
# 创建连接
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1')
# 创建游标
cursor = conn.cursor()
  
# 执行SQL,并返回收影响行数
effect_row = cursor.execute("update hosts set host = '1.1.1.2'")
  
# 执行SQL,并返回受影响行数
#effect_row = cursor.execute("update hosts set host = '1.1.1.2' where nid > %s", (1,))
  
# 执行SQL,并返回受影响行数
#effect_row = cursor.executemany("insert into hosts(host,color_id)values(%s,%s)", [("1.1.1.11",1),("1.1.1.11",2)])
  
  
# 提交,不然无法保存新建或者修改的数据
conn.commit()
  
# 关闭游标
cursor.close()
# 关闭连接
conn.close()

注:当使用字符串格式化时容易引起sql注入

sql = 'select * from userinfo where username="%s" and password="%s" ' %(user,pwd,)      #不推荐使用
sql = 'select * from userinfo where username=%s and password=%s',[user,pwd]    #推荐使用,mysql会自动格式化,避免SQL注入
import pymysql

user = input('请输入用户名:')
pwd = input('请输入密码:')

# 获取数据
conn = pymysql.Connect(host='192.168.12.89',port=3306,user='root',password="123",database="s17day11db",charset='utf8')
cursor = conn.cursor()

v = cursor.execute('select * from userinfo where username=%s and password=%s',[user,pwd])
result = cursor.fetchone()
cursor.close()
conn.close()

print(result)
  • 获取新创建数据自增ID

new_class_id = cursor.lastrowid # 获取新增数据自增ID
复制代码
import pymysql

# 获取数据
conn = pymysql.Connect(host='192.168.12.89',port=3306,user='root',password="123",database="s17day11db",charset='utf8')
cursor = conn.cursor()

cursor.execute('insert into class(caption) values(%s)',['新班级'])
conn.commit()
new_class_id = cursor.lastrowid # 获取新增数据自增ID

cursor.execute('insert into student(sname,gender,class_id) values(%s,%s,%s)',['李杰','男',new_class_id])
conn.commit()

cursor.close()
conn.close()
  • 查询语句

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql
  
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1')
cursor = conn.cursor()
cursor.execute("select * from hosts")
  
# 获取第一行数据
row_1 = cursor.fetchone()
  
# 获取前n行数据
# row_2 = cursor.fetchmany(3)
# 获取所有数据
# row_3 = cursor.fetchall()
  
conn.commit()
cursor.close()
conn.close()

注:
在fetch数据时按照顺序进行,可以使用cursor.scroll(num,mode)来移动游标位置,如:

  • cursor.scroll(1,mode='relative') # 相对当前位置移动

  • cursor.scroll(2,mode='absolute') # 相对绝对位置移动

  • 更改fetch数据类型
    默认获取的数据是元祖类型,如果想要或者字典类型的数据

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

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql
  
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1')
  
# 游标设置为字典类型
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
v = cursor.execute('SELECT * FROM score')
result = cursor.fetchall()
# result = cursor.fetchone()
# result = cursor.fetchmany()
print(result)



cursor.close()
conn.close()

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【Python3】pymysql模块

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

【Python3】pymysql模块

1. 什么是 PyMySQL?PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure
2023-01-31

pymysql模块的使用

pymysql的下载和使用之前我们都是通过MySQL自带的命令行客户端工具mysql来操作数据库,那如何在python程序中操作数据库呢?这就用到了pymysql模块,该模块本质就是一个套接字客户端软件,使用前需要事先安装(1)pymysq
2023-01-30

python3之pymysql

pymsql是Python中操作MySQL的模块并且只有在Python3.0版本中才存在,其使用方法和MySQLdb几乎相同。下载安装pymsql模块pip3 install pymysql操作前准备#1.创建数据库mysql> creat
2023-01-31

python3-sys模块

# Auther: Aaron Fanimport sysprint(sys.path)     #打印环境变量print(sys.argv)     #打印脚本名和脚本所带的所有参数print(sys.argv[2])  #打印脚本所跟的
2023-01-31

Python3: datetime模块

datetime模块定义了以下几个类: datetime.date: 表示日期的类,常用的属性有year, month, day; datetime.time: 表示时间的类,常用的属性有hour, minute, second, micr
2023-01-31

python3-os模块

# Auther: Aaron Fanimport oscmd_res1 = os.system("dir")      #执行命令,但是不保存结果cmd_res2 = os.popen("dir").read()   #执行命令,并保存结
2023-01-31

python使用pymysql模块操作MySQL

目录实例一:插入数据实例二:获取某个表全部数据实例三:根据cName模糊搜索实例四:修改数据实例五:删除数据实例一:插入数据import pymysql import tkinter as tkconn = pymysql.connect(
2022-06-02

python3--协程,greenlet模块,gevent模块

python之路——协程引子之前学习了线程、进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位。按道理来说我们已经算是把cpu的利用率提高很多了。但是我们知道无论是创建多进程还是创建多线程来解决问题,都要消耗
2023-01-30

python3--序列化模块,hashlib模块

内置方法(回顾)__len__ len(obj)的结果依赖于obj.__len__()的结果,计算对象的长度__hash__ hash(obj)的结果依赖于obj.__hash__()的结果,计算对象的hash值__eq__ obj
2023-01-30

Python3 日志模块

Python3 日志模块python3 日志模块官网说明python中日志等级从高到低依次为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET 默认的日志等级为:WARNING,即在显示日
2023-01-31

python3:常用模块

calendartimedatetimetimeitosshutilzipmathstring上述所有模块使用理论上都应该先导入,string是特例calendar,time,datetime的区别参考中文意思关于log模块请参考:log模
2023-01-31

Python3之模块、包

一、模块1.模块的导入方式import random,time#导入多个模块#使用,如:random.randint(1,10)#使用,如:time.sleep(1)from random import randint#使用,如:randi
2023-01-31

Python3 中 random模块

Python中的random模块用于生成随机数。下面具体介绍random模块的功能:#用于生成一个0到1的随机浮点数:0<= n < 1.0import random a = random.random()print (a) #用于生成一
2023-01-31

python3 时间模块 random模

话不多说,一个是算时间的,还有一个是生成验证码的  1 #!usr/bin/env/ python 2 # -*- coding:utf-8 -*- 3 # Author: XiaoFeng 4 import time 5 start_ti
2023-01-31

调用pymysql模块操作数据库

1、创建数据库表: 1 def create_table(tb_name): 2 import pymysql#导入模块 3 #连接数据库 4 db = pymysql.Connect('localhost','ro
2023-01-31

python3--os模块,模块和包(import... , from..import...)

os模块是与操作系统交互的一个接口使用前需要 import osos.getcwd()获取当前工作目录,即当前python脚本工作的目录路径os.chdir("dirname")改变当前脚本工作目录;相当于shell下cdos.curdir
2023-01-30

Python中操作mysql的pymysql模块详解

前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。 本文测试python版本:2.7.11。mysql版本:5.6.24 一、安装p
2022-06-04

python3 time模块解释

time() 模块继承自 Object 类,datetime() 模块继承自 Object 下面的 Date() 模块。time 提供的功能更加接近于操作系统层面,其所能表述的日期范围被限定在 1970 - 2038 之间,如果要处理更广的
2023-01-31

python3--threading模块(线程)

上章节内容总结:队列 队列:先进先出,数据进程安全 管道+锁 可实现队列 生产者消费者模型:解决数据供需不平衡管道 双向通信 数据进程不安全 EOFError: 管道是由操作系统进行引用计数的 必须在所有进程中
2023-01-30

编程热搜

目录