python中有MySQLdb、pymysql,psycopg2(连接postgresql)等数据库模块,本文用pymysql模块连接mysql数据库,并且读取数据库表

看过其他博文的介绍,把程序和数据库比作两个目的地,将游标比喻成运输货车

很是形象生动!

我用的是Anaconda的编辑器spyder,首先要先下载pymysql模块到本地才能导入

导入pymysql模块

import pymysql as pysql

建立连接和准备sql

连接mysql数据库,将数据库名db,主机 host ,端口port,用户user,密码password,字符集编码charset,   指定游标类型:cursorclass    模块自带的游标类型为 pymysql.cursors.DictCursor,其他模块的游标像MySQLdb.cursors.Cursor,就看你用什么模块了。

connection = pysql.connect(host='', port=, user='',password='',db='',charset='utf8mb4', cursorclass = pysql.cursors.DictCursor)

参数参考:https://blog.csdn.net/qq_41432935/article/details/83001381

host – 数据库服务器所在的主机。
user – 登录用户名。
password – 登录用户密码。
database – 连接的数据库。
port – 数据库开放的端口。(默认: 3306)
bind_address – 当客户端有多个网络接口时,请指定连接到主机的接口,参数可以是主机名或IP地址。
unix_socket – 使用unix套接字而不是tcp/ip。
charset – 连接字符集。
sql_mode – 默认SQL模式。
read_default_file – 指定my.cnf文件路径,以便从[client]部分读取参数。
conv – 要使用的转换字典,而不是默认值。
use_unicode – 是否默认为unicode字符串,对于Py3k,此选项默认为true。
client_flag – 发送到MySQL的自定义标志。
cursorclass – 使用自定义的游标类。
init_command – 建立连接时要运行的初始SQL语句。
connect_timeout – 建立连接超时时间。(默认: 10,最小: 1,最大: 31536000)
read_default_group – 从配置文件中读取组。
compress – 不支持
named_pipe – 不支持
autocommit – 设置自动提交模式,不设置意味着使用数据库默认。(默认值: False)
local_infile – 是否启用“LOAD LOCAL INFILE”命令的使用。(默认值: False)
max_allowed_packet – 发送到服务器的数据包的最大大小 (以字节为单位,默认值: 16MB),仅用于限制小于默认值 (16KB) 的 “LOAD LOCAL INFILE” 数据包的大小。
defer_connect – 不要显式连接建设,等待连接调用。(默认值: False)
db – 连接数据库别名(兼容MySQLdb)
passwd – 密码输入别名(兼容MySQLdb)
binary_prefix – 在bytes和bytearray上添加_binary前缀(默认: False)

可以根据上述的参数来设置mysql连接,接下来准备sql语句

select  * from table

数据库连接成功,且sql也准备好之后,开始执行在数据库中执行sql语句 以达到我们的查询目的

pymysql是利用游标来执行sql语句的,游标就相当于是一辆货车,把程序中的sql语句运送到数据库中执行,所以要先叫一辆货车,即创建游标cursor

cursor = connection.cursor()

然后往货车上搬货物,让游标带上sql 执行语句

cursor.execute("sql语句")

返回的是执行语句后获得的表长度

当执行完sql语句后,现在这辆货车(游标cursor)已经满载货物(数据)了,怎么取货呢?

想从货车(游标cursor)上取一件货物看看

dataOne = cursor.fetchone()

fetchone()是取下一行的意思,还有

dataMany = cursor.fetchmany()

dataMany = cursor.fetchmany(5)

dataAll = cursor.fetchall()
.fetchmany() 是取几行,可以带参数,准确取出几行 .fetchall()是取全部数据
取完数据记得把数据库大门关了
connection.close()  #关闭数据库连接

利用 pymysql连接数据库,读取表内容的功能已实现。

关于提交到数据库操作

connection.commit

只有在插入、更新、删除数据库表时,才需要将sql语句提交到数据库中操作,这时,只需要在sql语句执行(cursor.execute("sql语句"))后,添加上面这句“提交到数据库操作”,即可。



pymysql连接数据库,读取表内容的更多相关文章

  1. express连接数据库 读取表

    connection 连接数据库    connection.query 查询表   1.依赖 const mysql = require('mysql'); 连接数据库代码 var connecti ...

  2. Node.js读取文件内容

    原文链接:http://blog.csdn.net/zk437092645/article/details/9231787 Node.js读取文件内容包括同步和异步两种方式. 1.同步读取,调用的是r ...

  3. Java 读取Excel内容并保存进数据库

    读取Excel中内容,并保存进数据库 步骤 建立数据库连接 读取文件内容 (fileInputStream 放进POI的对应Excel读取接口,实现Excel文件读取) 获取文件各种内容(总列数,总行 ...

  4. PYTHON读取EXCEL内容再转变成HTML添加到OUTLOOK中

    需求 读取excel里的表格里的内容,然后打开本机的outlook.把excel里的内容添加到正文里,注意.这里是要添加到正文!正文!正文!而不是添加到附件里 设计思路 1.excel处理 打开exc ...

  5. java poi 读取excel内容

    import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Row; import or ...

  6. Brophp框架开发时连接数据库读取UTF8乱码的解决(转)

    Brophp框架开发时连接数据库读取UTF8乱码的解决办法 (2012-09-15 10:41:22) 转载▼ 标签: 杂谈 it php 分类: 建站技术 Brophp框架开发时连接数据库读取UTF ...

  7. oracle表结构和表内容差异比对

    oracle表结构和表内容差异比对 oracle中有三种集合操作,他们会把左边和右边的select 结果集进行集合操作. union 并集 intersect 交集 minus 差集 假设有如下两张表 ...

  8. POI读取Excel内容格式化

    在用POI读取Excel内容时,经常会遇到数据格式化的问题. 比如:数字12365会变为12365.0;字符串数字123也会变为123.0,甚至会被变为科学计数法.另外日期格式化也是一个头疼的问题.其 ...

  9. shell读取文件内容

           Shell脚本,执行解释速度快.代码简单易于理解.在shell代码编写过程中,经常会用到读取文件内容. 写法一: ------------------------------------ ...

随机推荐

  1. Mybatis tinyint(1)自动转boolean

    使用Mybatis查询tinyint(1)字段数据,返回值为Map类型,那么tinyint(1)的数据默认会转化为boolean类型数据.解决方案:  1.使用ifnull(column, 0)处理该 ...

  2. vue.js 之 watch 详解

    接我上篇博客的例子: 在上面代码中,当我们修改 firstName 或 lastName 后,watch 监听每次修改变化的新值,然后计算输出 fullName:此时 watch 的一个缺点是,最初绑 ...

  3. 2018-2019-1 20189203《Linux内核原理与分析》第三周作业

    一.课程学习 计算机的三个法宝:存储程序计算机.函数调用堆栈.中断. 堆栈相关的寄存器:ESP(堆栈指针).EBP(基址指针). 堆栈操作:push:栈顶地址减少4个字节,并将操作数放入栈顶存储单元. ...

  4. vue中使用scss

    之前项目里我一般是使用less的,朋友问到如何引入scss,于是我就简单的跑了一下,以下主要供自己学习,如有更好的方法可以一起交流讨论一下 第一步,安装依赖 cnpm install node-sas ...

  5. spring boot + vue + element-ui全栈开发入门——主页面开发

    目的 开发一个后台管理的前端,顶部是标题,左侧是菜单导航栏,中间是要显示的内容.而内容可以是各种图表,也可以是数据列表. 一.准备工作 1..修改App.vue文件 代码如下: <templat ...

  6. WebForm复合控件RadioButtonList、CheckBoxList、DropDownList

    1.RadioButtonList     单选集合 -属性:RepeatDirection:Vertical (垂直排布)/Horizontal (横向排布) RepeatLayout:Table ...

  7. 字典 hash

    字典是按照hash存的,他会映射一个hash表,所以查找的时候根据一些算法会很快: 参考: https://harveyqing.gitbooks.io/python-read-and-write/c ...

  8. (TIP 2018)Technology details of FFDNet

    前言 论文地址:见researchgate, 方法继续更新. 解决的问题: 1.discriminative learning methods 用于denoising 任务学习到的是一个对于每种 噪声 ...

  9. spring boot 整合freemarker(好用!!!!)

    springboot整合freemarker 1.pom依赖 <!-- 引入freeMarker的依赖包. --> <dependency> <groupId>or ...

  10. css根据子元素多少类设置子元素的属性--九宫格

    .moment-image-div:nth-child(n+1):nth-last-child(-n+9){ width: 33.33%; float: left; } .moment-image-d ...