execl/python读取数据库( Access、MySQL)

news2024/12/28 20:01:10

目录

 一 、读取access数据库

(一)execl读取数据库

1.搜索ODBC(注意自己的execl是64位还是32位)

2.安装数据源的驱动程序

3.打开execl

4. 补充:选择数据源时,也可以直接在execl中选择数据源

(二)Python读取数据源

1.python读取mdb文件数据

(1)忽略警告userWarning

二 、读取mysql数据库

(一)execl连接MySQL数据库

1.下载 MySQL ODBC

2. 安装数据源的驱动程序

3.打开execl

(二)python读取Mysql数据


 一 、读取access数据库

Microsoft Office Access是专为Windows用户设计的一个桌面数据库系统,它提供了一种简便的方式来创建和管理数据库。

一般文件格式是mdb

(一)execl读取数据库

比如要获取mdb文件的数据源

1.搜索ODBC(注意自己的execl是64位还是32位)

windows电脑搜索ODBC数据源(正常内置都有,没有的话就得自己安装)

2.安装数据源的驱动程序

2.1 Microsoft Access Driver(用于访问mdb文件数据源)

(1)用户DSN--添加--确定--》Microsoft Access Driver--完成

(2)ODBC Microsoft Access安装

数据源名可随意设置,根据自己的需要--“选择”(选择自己mdb文件的存放路径)

3.打开execl

数据--获取数据--自其他源--自Microsoft Query(M)--上一步设置的数据源名

选择上一步设置的数据源名

在选择列的过程中,点击“取消”

 选择需要的表进行添加

选择需要的字段

 保存

导入execl

效果如下:

4. 补充:选择数据源时,也可以直接在execl中选择数据源

数据--获取数据--自其他源--自Microsoft Query(M)--新数据源

(二)Python读取数据源

1.python读取mdb文件数据

# 下面代码为打开和阅读foodmart2000.mdb数据的代码
import pyodbc
import pandas as pd

# 创建连接字符串
conn_str = (
    r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
    r'DBQ=C:\**\foodmart2000.mdb;'  # mdb文件的位置
)

# 创建连接
conn = pyodbc.connect(conn_str)

# 执行 SQL 查询并将结果存储在 DataFrame 中
sql = 'SELECT * FROM customer'  # 替换为你的表名
df = pd.read_sql_query(sql, conn)

# 打印 DataFrame
#print(df)

# 关闭连接
conn.close()
# 打印前5行
df.head(5)


if __name__ == '__main__':
    print('get odbc')

上面的方法有警告

UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy.
  

(1)忽略警告userWarning
import warnings

warnings.filterwarnings("ignore")

再次运行正常

 

二 、读取mysql数据库

(一)execl连接MySQL数据库

1.下载 MySQL ODBC

MySQL :: Download Connector/ODBC

注意根据execcl版本下载(64或32位,很重要!!)

需要先按照Visual Studio 2019 x64,然后再运行下载的应用

在ODBC数据源管理中的驱动程序就可以看到有关MySQL的内容

2. 安装数据源的驱动程序

(1)用户DSN--添加--确定--》MySQL ODBC 8.2 Unicode Driver--完成

3.打开execl

数据--获取数据--自其他源--从ODBC(D)--确定

 选择需要的表

效果如下:弹出Power Query编辑器

根据需要增删数据,然后“关闭并上载”

(二)python读取Mysql数据

启动MySQLf服务(管理员运行cmd)

net start mysql  # 启动服务
net stop mysql  # 停止服务

进入MySQL命令模式

mysql -u root -p

  获取mysql的host和user名

select host,user from mysql.user;

 

#导入包
import pandas as pd
import sqlalchemy as sql


# 建立链接
engine = sql.create_engine('mysql+pymysql://root:***@localhost:3306/mayfood')
# 格式 engine = sql.create_engine('mysql+pymysql://用户名:密码@地址:端口号/数据库名字')

# 查询语句
sql24 = '''select * from customer'''

# 读入到Python
df = pd.read_sql(sql24, engine)

# f = df.head(20)  # 获取前20条数据
# print(f)
# 如果还需要导出到xlsx或csv
df.to_excel("food_e.xlsx", index=False)
df.to_csv("food_c.csv", index=False, encoding="utf_8_sig")

if __name__ == '__main__':
    print('get odbc')

补充:

pd.read_sql( )完整函数

read_sql(sql,con,index_col='None',coerce_float='True',params='None',parse_dates='None',columns='None',chunksize:None='None')

ead_sql方法是pandas中用来在数据库中执行指定的SQL语句查询或对指定的整张表进行查询,以DataFrame 的类型返回查询结果.

其中各参数意义如下:

sql:需要执行的sql语句

con:连接数据库所需的engine,用其他数据库连接的包建立,例如SQLalchemy和pymysql

index_col: 选择哪列作为index

coerce_float:将数字形字符串转为float

parse_dates:将某列日期型字符串转换为datetime型数据

columns:选择想要保留的列

chunksize:每次输出多少行数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1512423.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOv5涨点优化:backbone改进 | TransXNet:聚合全局和局部信息的全新CNN-Transformer视觉主干| CVPR2024

💡💡💡本文独家改进:CVPR2024 TransXNet助力检测,代替YOLOv5 Backbone 改进结构图如下: 收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/category_12511931.html 💡💡💡全网独家首发创新(原创),适合paper !!! 💡💡💡 2024年计算…

最优学习率寻找

https://github.com/vmbbc/pytorch-lr-finderhttps://github.com/vmbbc/pytorch-lr-finder Keras 实现最优学习率寻找(LR Range Test) - 知乎深度神经网络使用随机梯度下降和可微分的误差向后传递更新神经网络中所有的可训参数 (trainable parameters \theta ),从而学到一个…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的自动驾驶目标检测系统详解(深度学习+Python代码+PySide6界面+训练数据集)

摘要:开发自动驾驶目标检测系统对于提高车辆的安全性和智能化水平具有至关重要的作用。本篇博客详细介绍了如何运用深度学习构建一个自动驾驶目标检测系统,并提供了完整的实现代码。该系统基于强大的YOLOv8算法,并对比了YOLOv7、YOLOv6、YOLO…

Trust Region Policy Optimization (TRPO)

Trust Region Policy Optimization (TRPO) 是一种强化学习算法,专门设计来改善策略梯度方法在稳定性和效率方面的表现。由 John Schulman 等人在 2015 年提出,TRPO 的核心思想是在策略优化过程中引入一个信任区域(trust region)&a…

探索TikTok云手机在社交媒体营销的作用

近年来,TikTok作为全球短视频平台之一,其用户基数呈现持续增长的趋势。伴随社交媒体的蓬勃发展,企业和个人纷纷涌入TikTok平台,追求更广泛的曝光和用户互动。为满足这一需求,TikTok云手机应运而生。本文将深度剖析TikT…

13、设计模式之模板模式(Template)

一、什么是模板模式 模板模式是一种基于继承实现的设计模式,它是行为型的模式。 主要思想是将定义的算法抽象成一组步骤,在抽象类种定义算法的骨架,把具体的操作留给子类来实现。 通俗地说,模板模式就是将某一行为制定一个框架&…

Selenium操作浏览器,弹出文件选择框,实现自动选定“目标文件”

前言 本文是该专栏的第20篇,后面会持续分享python爬虫干货知识,记得关注。 我们在使用selenium操作目标页面的时候,可能会遇到如下图所示的情景。 在用selenium操作并点击页面元素的时候,会弹出一个文件选择框,需要我们选择目标文件,并点击确认按钮,目标文件才能上传成…

三防手机与普通手机的区别在哪里?

一、三防手机和普通手机主要的区别在于其防护性能,它们是针对不同环境和使用场景设计的。三防手机一般包括防水、防尘和防摔三个方面的特点,而普通手机则往往没有这些特点。 防水性能。三防手机的防水性能通常比普通手机更强大。三防手机可以在一定程度上…

C#四部曲(知识补充)

Unity跨平台原理 .Net相关 只要编写的时候遵循.NET的这些规则,就能在.NET平台下通用 各种源码→根据.NET规范编写→(虚拟机)生成CIL中间码(保存在程序集中)→转成操作系统原代码 跨语言← 跨平台↓ Unity跨平台原理(Mono) c#脚本→MonoC#编…

Stream-JDK8

Stream概念 代码示例 package com.zz.stream;import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.stream.Collectors;/*** 使用Stream流* 找出姓张并且是三个字的名字*/ public class Test {public static void main(Stri…

《向量数据库指南》——Milvus Cloud BYOC:为数据安全而生?

最近,整个硅谷都在关注 OpenAI 和 Anthropic 的动态。先是 Anthropic 发布了 Claude 3,剑指 GPT-4,被媒体认为“打破了 OpenAI 不可战胜的神话”。这也点燃了整个科技圈的热情,纷纷期待 OpenAI 放出 GPT-5 应战。随后(美东时间 3 月 5 日),OpenAI 发布一则官方公告,主题…

Linux认识与学习BASH

Linux认识与学习BASH 认识BASH这个Shellshell是什么系统的合法shell与/etc/shells功能Bash Shell的功能查询命令是否为Bash shell 的内置命令(type)命令的执行与快速编辑按钮 shell的变量功能什么是变量?变量的使用与设置:echo、变量设置规则、unset环境…

1.6数组

一.序言 数组是一组类型相同类型元素的集合,数组的定长的(数组的长度一旦被定义,长度不可改变)。 数组在内存当中是一块连续的空间,可以保存相同类型的多个元素。 二.一维数组 2.1.数组的创建 int arr1[10]; …

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的吸烟检测系统(深度学习+Python代码+PySide6界面+训练数据集)

摘要:本文详细说明了如何利用深度学习开发一个用于监测吸烟行为的系统,并分享了完整的代码实现。该系统采用了先进的YOLOv8算法,同时还使用YOLOv7、YOLOv6、YOLOv5算法,并对它们进行了性能比较,呈现了不同模型的性能指…

bpmn-js系列之Palette

前边写了四篇文章介绍了bpmn.js的基本使用,最近陆续有小伙伴加我催更,感谢对我这个半吊子前端的信任,接着更新bpmn.js的一些高级用法,本篇介绍对左侧工具栏Palette的隐藏和自定义修改 隐藏shape 左侧工具栏Palette有些图标我用不…

NIFI从Oracle11G同步数据到Mysql_亲测可用_解决数据重复_数据跟源表不一致的问题---大数据之Nifi工作笔记0065

首先来看一下整体的流程: 可以看到了用到了上面的这些处理器,然后我们主要看看,这里之前 同步的时候,总是出现重复的数据,奇怪. 比如源表中只有166条数据,但是同步过去以后变成了11万条数据了. ${db.table.name:equals(table1):or(${db.table.name:equals(table2)})} 可以看…

LeetCode169. 多数元素(Java)

给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入:nums [3,2,3] 输出:3 示例 …

C++(3/12)

自己封装一个矩形类(Rect)&#xff0c;拥有私有属性:宽度(width)、高度(height)&#xff0c; 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和 #include <iostream>using name…

设计模式-行为型模式-模版方法模式

模板方法模式&#xff0c;定义一个操作中的算法的骨架&#xff0c;而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。[DP] 模板方法模式是通过把不变行为搬移到超类&#xff0c;去除子类中的重复代码来体现它的优势。 //首…

MinIO权限提升漏洞CVE-2024-24747详细解决办法

漏洞名称&#xff1a; MinIO权限提升漏洞(CVE-2024-24747) 漏洞简介 2024年2月2日&#xff0c;深瞳漏洞实验室监测到一则MinIO 存在权限提升漏洞的信息&#xff0c;漏洞编号&#xff1a;CVE-2024-24747&#xff0c;漏洞威胁等级&#xff1a;高危。 该漏洞是由于用户创建的访…