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. openstack--部暑

    ##1.Centos7环境准备-- openstack pike ##1.Centos7环境准备-- openstack pike [https://blog.csdn.net/shiyu115775 ...

  2. object-c中疑问

    *一般是加在方法的返回值类型声明部分的,比如:-(NSString *)executeSomeThing;+(NSString *)executeAnotherThing; -(int)addOne; ...

  3. 甘特图 (Gantt )的优缺点

    时间管理 - 甘特图 (Gantt ) 优点:甘特图直观.简单.容易制作,便于理解,能很清晰地标识出直到每一项任务的起始与结束时间,一般适用比较简单的小型项目,可用于WBS的任何层次.进度控制.资源优 ...

  4. 判断np.array里面为空字符串的方法

    #多在编译器里尝试新操作 import numpy as np for i range(100): eval1 = {"A": ''"} eval2 = {"A ...

  5. iscroll4升级到iscroll5全攻略笔记

    前段时间在搞移动终端(移动web)的项目,其中需要用到滚动的功能(html的滚动效果不好,且在低版本上不支持).后面上网找了下资料,发现大部分人都在用iscroll4(下面简称v4),下载下来试了下确 ...

  6. SV class

    SV中的class通过new来创建实例,new函数可以传递多个参数: packet P1:  P1 = new:创建一个P1的对象: P2 = P1:P2也指向同一个对象: P2 = new P1:P ...

  7. 【Spark-core学习之四】 Spark任务提交

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...

  8. 查看 chrome 浏览器中的 Headers

    查看 chrome 浏览器中的 Headers, Response 信息:

  9. vue解决启动报错cjs loader.js Error: Cannot find module '../config'问题

    vue解决启动报错cjs loader.js Error: Cannot find module '../config'问题 今天下载了一个开源项目一直运行不了,折腾了半天才找到问题所在,config ...

  10. 创建servlet程序知识点详解---servlet-day01

    方法调用完后,其中的所有局部变量都会消失 ###网络架构 -CS:Client Server  客户端服务器 特点:每种平台都需要开发相对应的app, 开发成本高  功能升级需要下载最新的客户端,用户 ...