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. learning scala akka tell pattern(二)

    package com.example import akka.actor._ object Tutorial_02_Tell_Pattern extends App { println(" ...

  2. Windows异常分发函数---KiUserExceptionDispatcher

    简介 KiUserExceptionDispatcher 是SEH分发器的用户模式的负责函数.当一个异常发生的时候,该异常将生成一个异常事件,内核检查该异常是否是由于执行用户模式代码导致的.如果是这样 ...

  3. 2019-8-26 LinkedHashMap 转 List [java.util.LinkedHashMap cannot be cast to com.zq.dataservice.bean.Index]

    java.util.LinkedHashMap cannot be cast to com.zq.dataservice.bean.Index 上述错误是在做一个趋势投资demo时遇到的. 说的是链式 ...

  4. If...else 条件判断和If else嵌套

    If(条件表达式){ 如果条件表达式结果为true,执行该处代码. 如果条件表达式结果为false,执行下边代码. }else{ 如果条件表达式结果为false,执行该处代码. } If(条件表达式) ...

  5. tomcat 配置更改 web 目录

    tomcat 虚拟目录:( 编辑  tomcat/conf/server.xml ) <Host name="localhost" appBase="webapps ...

  6. Centos 7 更换为 阿里云 yum 源

    地址: https://opsx.alibaba.com/ 操作步骤: 1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentO ...

  7. element ui 中的时间选择器怎么设置默认值/el-date-picker区间选择器怎么这是默认值

    template代码 <el-date-picker value-format="yyyy-MM-dd" v-model="search.date" ty ...

  8. ICEM-一种网格画法的思考

    原视频下载链接:https://pan.baidu.com/s/1kV4Zj3x 密码: uthc

  9. SpringBoot定时任务@Scheduled

    SpringBoot定时任务主要由两个注解完成. @Scheduled加在方法上面. @EnableScheduling加在类上面.可以是Application类,也可以是@Component类,还可 ...

  10. 第10组 Beta冲刺(4/5)

    链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 将数据分析以可视化形式展示出来 新增数据分析展示等功能API 服务器后端部署, ...