pymysql 模块简单使用

安装 pymysql 模块

使用 pymysql 连接数据库 并插入数据

  • 数据库的写入数据流程

1.导入模块
from pymysql import connect 2.Connection 对象 目的:用于建立代码与数据库的连接
创建连接对象 conn=connect(参数列表) 参数host:连接的mysql主机,如果本机是'127.0.0.1'#如果不能用可以试下 host=localhost
参数port:连接的mysql主机的端口,默认是3306
参数database:数据库的名称
参数user:连接的用户名
参数password:连接的密码
参数charset:通信采用的编码方式,推荐使用utf8 3.关闭连接 conn.close() 4.提交数据 conn.commit() 5.撤销数据 conn.rollback() 6.通过连接获取游标 cur = conn.cursor()返回Cursor对象,用于执行sql语句并获得结果 7.Cursor游标对象 目的: 执行sql语句 8.获取Cursor对象 cur = conn.cursor() 9.使用游标执行SQL语句 cur.execute(operation , [parameters]) 10.执行SQL语句,返回受影响的行数,主要用于执行insert、update、delete语句 11.获取结果集中的一条 cur.fetchone() 返回一个元组 12.获取结果集中的一条 cur.fetchmany(2) 返回一个元组 13.获取结果集中的所有 cur.fetchall() 执行查询时,获取结果集的所有行,一行构成一个元组,再将这些元组装入一个元组返回 14.关闭游标 cur.close()

使用pymysql 插入数据

import pymysql    #导入模块
conn = pymysql.connect(host='127.0.0.1', user='root', password="318",database ='ftp')
# host=localhost #也可以写,如果127.0.0.1不能用的话# 登录数据库
cur = conn.cursor() # 数据库操作符 游标
cur.execute('insert into employee(emp_name,sex,age,hire_date) values ("凯歌","male",40,20190808)')
#()里填 sql 语句 注意'sql语句中的""引号要与最外为的引号区分开w'
conn.commit() #提交数据
cur.close() #关闭游标
conn.close() #断开数据库,释放资源
  • 通过cmd查询结果

  • 查询并获取结果
#fetchone()
import pymysql
conn = pymysql.connect(host='127.0.0.1', user='root', password="318", database='ftp')
cur = conn.cursor()
cur.execute('select * from employee where id > 10')
ret = cur.fetchone() #获取符合条件的第一个值的所有信息,返回结果类型为元组
print(ret)
cur.close()
conn.close()
##执行结果
(11, '丁丁', 'female', 18, datetime.date(2011, 3, 12), 'sale', None, 1000.37, 402, 2) #cur.fetchmany(数值) #()里的数值是多少,就返回几个符合条件的结果,返回结果类型为元组,
数值如果超过符合条件的的结果数量,返回会全部结果,不会报错
import pymysql
conn = pymysql.connect(host='127.0.0.1', user='root', password="318", database='ftp')
cur = conn.cursor()
cur.execute('select * from employee where id > 10')
ret = cur.fetchmany(2)#获取符合条件的两个结果,返回结果类型为元组
print(ret)
cur.close()
conn.close()
##执行结果
((11, '丁丁', 'female', 18, datetime.date(2011, 3, 12), 'sale', None, 1000.37, 402, 2),
(12, '星星', 'female', 18, datetime.date(2016, 5, 13), 'sale', None, 3000.29, 402, 2)) #cur.fetchall()#找到所有符合条件的结果,返回结果类型为元组
import pymysql
conn = pymysql.connect(host='127.0.0.1', user='root', password="318", database='ftp')
cur = conn.cursor()
cur.execute('select * from employee where id > 10')
ret = cur.fetchall()
print(ret)
cur.close()
conn.close()
##执行结果
((11, '丁丁', 'female', 18, datetime.date(2011, 3, 12), 'sale', None, 1000.37, 402, 2),
(12, '星星', 'female', 18, datetime.date(2016, 5, 13), 'sale', None, 3000.29, 402, 2),
(13, '格格', 'female', 28, datetime.date(2017, 1, 27), 'sale', None, 4000.33, 402, 2),
(14, '张野', 'male', 28, datetime.date(2016, 3, 11), 'operation', None, 10000.13, 403, 3),
(15, '程咬金', 'male', 18, datetime.date(1997, 3, 12), 'operation', None, 20000.0, 403, 3),
(16, '程咬银', 'female', 18, datetime.date(2013, 3, 11), 'operation', None, 19000.0, 403, 3),
(17, '程咬铜', 'male', 18, datetime.date(2015, 4, 11), 'operation', None, 18000.0, 403, 3),
(18, '程咬铁', 'female', 18, datetime.date(2014, 5, 12), 'operation', None, 17000.0, 403, 3),
(20, '凯歌', 'male', 40, datetime.date(2019, 8, 8), None, None, None, None, None))

修改查询显示结果

  • 我们拿到的结果都是元组类型,不能让我们很好的感知数据,有什么方法能让数据更直观呢?
  • cur = conn.cursor(pymysql.cursors.DictCursor)
import pymysql
conn = pymysql.connect(host='127.0.0.1', user='root', password="318", database='ftp')
cur = conn.cursor(pymysql.cursors.DictCursor) #把返回结果改为,字典类型,key是字段,value是数据
cur.execute('select * from employee where id > 10')
ret = cur.fetchone()
print(ret['emp_name'], ret['sex'], ret['age'], ret)
cur.close()
conn.close() #执行结果
丁丁 female 18 {'id': 11, 'emp_name': '丁丁', 'sex': 'female', 'age': 18, 'hire_date': datetime.date(2011, 3, 12),
'post': 'sale', 'post_comment': None, 'salary': 1000.37, 'office': 402, 'depart_id': 2}
作 者:郭楷丰
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角 推荐一下。您的鼓励是博主的最大动力!
自 勉:生活,需要追求;梦想,需要坚持;生命,需要珍惜;但人生的路上,更需要坚强。带着感恩的心启程,学会爱,爱父母,爱自己,爱朋友,爱他人。

pymysql 模块简单使用的更多相关文章

  1. python之pymysql模块简单应用

    众所周知,想要在python程序中执行SQL语句需要使用第三方模块:pymysql. 下面,我将为大家简述一下pymysql第三方库的安装到使用的大体流程. pymysql的安装 1.windows系 ...

  2. python 存储引擎 mysql(库,表, 行) 单表多表操作 (foreign key) sql_mode pymysql模块讲解

    ##################总结############### mysql 常用数据类型 整型:tinyint  int(42亿条左右)  bigint 小数:float double dec ...

  3. python 全栈开发,Day63(子查询,MySQl创建用户和授权,可视化工具Navicat的使用,pymysql模块的使用)

    昨日内容回顾 外键的变种三种关系: 多对一: 左表的多 对右表一 成立 左边的一 对右表多 不成立 foreign key(从表的id) refreences 主表的(id) 多对多 建立第三张表(f ...

  4. 第八章| 3. MyAQL数据库|Navicat工具与pymysql模块 | 内置功能 | 索引原理

    1.Navicat工具与pymysql模块 在生产环境中操作MySQL数据库还是推荐使用命令行工具mysql,但在我们自己开发测试时,可以使用可视化工具Navicat,以图形界面的形式操作MySQL数 ...

  5. python3使用pymysql模块,连接mysql数据库,实现新增、查询和更新操作

    1.环境数据准备: python3环境.pymysql模块 mysql数据库:本次代码中用到的数据库为本地的testdb数据库,user表(表字段比较简单,只有主键id,手机号mobile,密码pas ...

  6. 第二百八十一节,MySQL数据库-SQL注入和pymysql模块防止SQL注入

    MySQL数据库-SQL注入和pymysql模块防止SQL注入 SQL注入就是通过SQL语句绕开程序判断,获取到数据库的内容 下面以一个简单的程序登录SQL注入举例: 正常登录 1.数据库有一张会员表 ...

  7. Navicat工具、pymysql模块、数据备份

    IDE工具介绍(Navicat) 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具,我们使用Navicat工具,这个工具本质上就是一个socket客户端,可视化的连接mys ...

  8. MySQL 之Navicat Premium 12安装使用、pymysql模块使用、sql注入问题的产生与解决

    本文内容提要: Navicat Premium 12 的介绍.使用. pymysql模块的使用 sql注入问题的产生与解决 -------------------------------------- ...

  9. MySQL:记录的增删改查、单表查询、约束条件、多表查询、连表、子查询、pymysql模块、MySQL内置功能

    数据操作 插入数据(记录): 用insert: 补充:插入查询结果: insert into 表名(字段1,字段2,...字段n) select (字段1,字段2,...字段n) where ...; ...

随机推荐

  1. php web开发——文件的上传和下载

    PHP用超级全局变量数组$_FILES来记录文件上传相关信息的. 1.file_uploads=on/off 是否允许通过http方式上传文件 2.max_execution_time=30 允许脚本 ...

  2. pgloader 学习(六) 加载csv 数据

    关于加载的配置参数都是使用comand file command file 参考格式 LOAD CSV FROM 'GeoLiteCity-Blocks.csv' WITH ENCODING iso- ...

  3. pyqt5 + pyinstaller 制作爬虫小程序

    环境:mac python3.7 pyqt5 pyinstaller ps: 主要是熟悉pyqt5, 加入了单选框 输入框 文本框 文件夹选择框及日历下拉框 效果图: pyqt5 主程序文件 # -* ...

  4. [RN] React Native 常见基本问题归纳总结

    [RN] React Native  常见基本问题归纳总结 本问题总结涉及到版本为: "react": "16.8.3","react-native& ...

  5. java学习笔记(4)运算符

    java中的运算符分为以下几种: 算数运算符 +.-.*./.++.--.% 关系运算符 <.<=.>.>=.==.!= 布尔运算符 &&.||.&.| ...

  6. jmeter待解决55大问题

    客户交付一个性能测试项目,阐述实施流程. 解释5个常用的性能指标的名称与具体含义. 写出5个jmeter中常用函数,并对其中2个举例说明用法. 简述jmeter的工作原理? 什么是集合点?设置集合点有 ...

  7. cnetos6.5安装Varnish

    安装依赖包: tar -zxvf docutils-0.13.1.tar.gz python setup.py install unzip pcre2-10.23.zip ./configure -- ...

  8. OpenFOAM——设置自定义非均匀场区域

    在使用OpenFOAM进行计算的时候,我们需要对计算域设置非均匀场,比如最典型的溃坝算例,在开始计算以前,我们需要首先设定某一区域的水的体积分数为1,就是下面这样的: 有可能我们在计算传热问题的时候, ...

  9. 【2019.11.20】SDN上机第4次作业

    安装OpenDayLight控制器 配置JAVA环境 https://www.opendaylight.org/ 在官网进行下载OpenDayLight控制器 启动OpenDayLight控制器和安装 ...

  10. 移动端 - adb shell常用命令

    一.文件操作相关命令 //进入设备 adb shell //进入指定目录"/data/local/tmp" cd /data/local/tmp //查看目录 ls //进入根目录 ...