pymysql连接数据库,读取表内容
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连接数据库,读取表内容的更多相关文章
- express连接数据库 读取表
connection 连接数据库 connection.query 查询表 1.依赖 const mysql = require('mysql'); 连接数据库代码 var connecti ...
- Node.js读取文件内容
原文链接:http://blog.csdn.net/zk437092645/article/details/9231787 Node.js读取文件内容包括同步和异步两种方式. 1.同步读取,调用的是r ...
- Java 读取Excel内容并保存进数据库
读取Excel中内容,并保存进数据库 步骤 建立数据库连接 读取文件内容 (fileInputStream 放进POI的对应Excel读取接口,实现Excel文件读取) 获取文件各种内容(总列数,总行 ...
- PYTHON读取EXCEL内容再转变成HTML添加到OUTLOOK中
需求 读取excel里的表格里的内容,然后打开本机的outlook.把excel里的内容添加到正文里,注意.这里是要添加到正文!正文!正文!而不是添加到附件里 设计思路 1.excel处理 打开exc ...
- java poi 读取excel内容
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Row; import or ...
- Brophp框架开发时连接数据库读取UTF8乱码的解决(转)
Brophp框架开发时连接数据库读取UTF8乱码的解决办法 (2012-09-15 10:41:22) 转载▼ 标签: 杂谈 it php 分类: 建站技术 Brophp框架开发时连接数据库读取UTF ...
- oracle表结构和表内容差异比对
oracle表结构和表内容差异比对 oracle中有三种集合操作,他们会把左边和右边的select 结果集进行集合操作. union 并集 intersect 交集 minus 差集 假设有如下两张表 ...
- POI读取Excel内容格式化
在用POI读取Excel内容时,经常会遇到数据格式化的问题. 比如:数字12365会变为12365.0;字符串数字123也会变为123.0,甚至会被变为科学计数法.另外日期格式化也是一个头疼的问题.其 ...
- shell读取文件内容
Shell脚本,执行解释速度快.代码简单易于理解.在shell代码编写过程中,经常会用到读取文件内容. 写法一: ------------------------------------ ...
随机推荐
- Ubuntu上Qt之简单图片浏览器
>>主要功能: (1)图片切换浏览,上一张/下一张. (2)图片放大.缩小.包括两种机制:鼠标滚轮和按钮放大/缩小. (3)图片自动循环播放,间隔2s.点击播放后,其他操作均无效,直至点 ...
- 1、vue 笔记之 组件
1.组件个人理解: <组件>是页面的一部分,将界面切分成部分,每部分称为 <组件> 2.组件化思想: //2.1.定义一个全局的组件,组件支持‘驼峰命名 ...
- Redis入门到高可用(十三)—— 发布订阅
一.模型 二.主要API 1.publish(发布命令) 2.subcribe(订阅) 3.取消订阅(unsubcribe) 4.其他API 三.消息队列功能 redis实现消息队列功能 应用场景:抢 ...
- c++赋值构造函数为什么返回引用类型?
目录 0 前言 1 内置类型 2 自定义类型 3 结论 4 源码 0. 前言 c++默认赋值构造函数的返回值是引用类型,c++赋值运算符=的本意是返回左值的引用,我们重载赋值构造函数的时候,返回值是否 ...
- UVA 11582 Colossal Fibonacci Numbers(数学)
Colossal Fibonacci Numbers 想先说下最近的状态吧,已经考完试了,这个暑假也应该是最后刷题的暑假了,打完今年acm就应该会退了,但是还什么都不会呢? +_+ 所以这个暑假,一定 ...
- poj 1164 深度优先搜索模板题
#include<iostream> //用栈进行的解决: #include<cstdio> #include<algorithm> #include<cst ...
- Jumpserver(跳板机、堡垒机)启动jms Django连接mysql数据库报错
解决办法 根据报错信息 , 去查看官方手册 在settings.py文件夹加入DATABASES['OPTIONS']['init_command'] = "SET sql_mode='ST ...
- python扩展包的升级
检查更新:pip list --outdated 更新: pip install --upgrade xxxx
- swapper_pg_dir主内核页表、init和kthreadd、do_fork时新建子进程页表、vmalloc与kmalloc
都是以前看到一个点扯出的很多东西,当时做的总结,有问题欢迎讨论,现在来源难寻,侵删! 1.Init_task.idle.init和kthreadd的区别和联系 idle进程其pid=0,其前身是系统创 ...
- 51Nod 1058 N的阶乘的长度
输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3. Input 输入N(1 <= N <= 10^6) Output 输出N的阶乘的长度 Input示例 6 Out ...