1001系列之pandas0001如何从Mysql数据库中导入导出数据

一、Pymysql模块简介

    Mysql数据库是数据挖掘任务的数据源之一,通过pymysql模块可以直接连接MySQL数据库,进行增删改查等操作。
Python连接MySQL的流程如下:

在这里插入图片描述

1.1cursor(游标)的作用

    为什么要建立一个cursor(游标)?
    因为当python与数据库连接时并不是一次性读取了所有数据,而是根据SQL语言进行操作。cursor在这里相当于执行SQL查询的货车,在Mysql数据库和Python程序之间传递信息。

在这里插入图片描述

二、实际操作连接数据库

2.1 导入pymysql

#导入数值运算numpy、数据分析pandas、数据库连接pymysql和时间调试模块等模块
import pandas as pd
import numpy as np
import pymysql
import time

2.2 连接Mysql数据库

#连接本地数据库
db = pymysql.connect(host="localhost",
                     user="root",
                     password="********",
                     database="orderinfo",
                     charset='utf8mb4',
                     cursorclass=pymysql.cursors.DictCursor)

2.2.1 pymysql.connect()参数说明

host(str):      MySQL服务器地址,默认为本地主机(localhost)
port(int):      MySQL服务器端口号,默认为当前用户
user(str):      用户名,没有默认值
password(str):  连接密码,没有默认值
db(str):        数据库名称
charset(str):   连接编码
cursorclass(str): cursor()使用的种类,默认值为MySQLdb.cursors.Cursor

2.2.2pymysql.connect()实例对象方法说明

db.close():   可关闭数据库连接,并释放相关资源。
db.cursor([cursorClass]):返回一个指针对象,用于访问和操作数据库中的数据。
db.begin():   用于开始一个事务,如果数据库的AUTOCOMMIT已经开启就关闭它,直到事务调用commit()和rollback()结束。
db.commit():  表示事务提交
db.rollback():表示事务回退

2.3 创建游标

#创建游标
cursor = db.cursor()

2.3.1 db.cursor()指针对象游标的方法

cursor()的类型,括号在中不填默认为元组,还有DictCursor: 字典类型,SSCursor: 无缓冲元组类型,SSDictCursor: 无缓冲字典类型
无缓冲游标类型,适用于数据量很大,一次性返回太慢,或者服务端带宽较小;创建连接时,通过cursorclass 参数指定类型。
cursor.close():            方法,关闭指针并释放相关资源。
cursor.execute(query[,parameters]):执行数据库查询。
cursor.fetchall():         方法,可取出指针结果集中的所有行,返回的结果集一个元组(tuples)。
cursor.fetchmany([size=cursor.arraysize]):方法,从查询结果集中取出多行,我们可利用可选的参数指定取出的行数。
cursor.fetchone():         方法,从查询结果集中返回下一行。
cursor.arraysize:          属性,指定由cursor.fetchmany()方法返回行的数目,影响fetchall()的性能,默认值为1。
cursor.rowcount:           属性,指出上次查询或更新所发生行数。-1表示还没开始查询或没有查询到数据。

2.4 连接的最简全部环节

#连接的全流程
#导入pymysql模块
import pymysql

#创建实例化对象
db = pymysql.connect(host="localhost",
                     user="root",
                     password="*********",
                     database="orderinfo",
                     charset='utf8mb4',
                     cursorclass=pymysql.cursors.DictCursor)
#创建游标
cursor = db.cursor()

#编写SQL语句
sql = "select * from ad limit 5000" 

#执行SQL语句
cursor.execute(sql)  

#取回查询结果集,并将字符串类型结果集转换为列表
result =  cursor.fetchall()
finalresult = list(result) 

#关闭游标
cursor.close() 

#关闭数据库连接
db
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值