首页 > 数据库 >Python连接MySQL

Python连接MySQL

时间:2024-10-24 08:47:50浏览次数:3  
标签:SQLAlchemy database Python pymysql 连接 connection MySQL pandas

要使用Python连接MySQL并操作数据,通常会使用pymysqlmysql-connector-python这样的库。

使用pymysql库来连接MySQL、读取表并按照某个关系将它们连接起来。

1、安装必要的库
pip install pymysql pandas
2、连接MySQL并读取数据:
import pymysql
import pandas as pd

# MySQL连接信息
host = "your_host"
port = 3306  # 默认端口
user = "your_username"
password = "your_password"
database = "your_database"

# 创建连接
connection = pymysql.connect(host=host,
                             port=port,
                             user=user,
                             password=password,
                             database=database)

# 使用pandas读取表
table1 = pd.read_sql("SELECT * FROM table_name1", connection)
table2 = pd.read_sql("SELECT * FROM table_name2", connection)

# 关闭连接
connection.close()
3、按照某个关系连接两个表:
# 假设我们要根据"column_name"这一列来连接两个表
merged_table = pd.merge(table1, table2, on="column_name", how="inner")  # 这里使用的是内连接

运行出错

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.

tables = pd.read_sql(query, connection)

 这个警告是因为pandas在其read_sql函数中更推荐使用SQLAlchemy作为连接方式。虽然pymysql和其他DBAPI2连接通常可以工作,但SQLAlchemy提供了更多的特性和稳定性。

 为了避免这个警告,并使用推荐的方法,可以使用SQLAlchemy来连接MySQL并与pandas一起使用。

1、安装必要的库
pip install SQLAlchemy pymysql pandas
2、使用SQLAlchemy连接MySQL并列出所有的表:
import pandas as pd
from sqlalchemy import create_engine

# MySQL连接信息
host = "your_host"
port = 3306  # 默认端口
user = "your_username"
password = "your_password"
database = "your_database"

# 使用SQLAlchemy创建连接
connection_string = f"mysql+pymysql://{user}:{password}@{host}:{port}/{database}"
engine = create_engine(connection_string)

# 使用pandas查询并获取所有表的列表
query = f"SELECT table_name FROM information_schema.tables WHERE table_schema = '{database}'"
tables = pd.read_sql(query, engine)

# 显示表列表
print(tables)

使用SQLAlchemy的create_engine方法创建了一个连接,并将其传递给pandasread_sql函数。这种方法应该不会产生上述的警告,并且是pandas推荐的方式来从SQL数据库中读取数据。

标签:SQLAlchemy,database,Python,pymysql,连接,connection,MySQL,pandas
From: https://blog.csdn.net/Jay_NanX/article/details/143179947

相关文章

  • 探索 Python 构建新维度:Buildout 库全解析
    探索Python构建新维度:Buildout库全解析背景:为什么选择Buildout?在复杂的软件开发过程中,依赖管理和环境配置常常成为开发效率的瓶颈。Buildout,作为一个自动化构建工具,能够帮助我们解决这些问题。它不仅可以管理项目依赖,还能生成可重复的开发环境,简化部署流程。Buildout......
  • 开启Python包管理新纪元:探索devpi的神奇之处
    开启Python包管理新纪元:探索devpi的神奇之处1.背景介绍:为何选择devpi?在Python开发中,依赖管理是不可或缺的一环。devpi,一个强大的工具,它不仅仅是一个PyPI代理和缓存服务器,更是一个完整的包管理解决方案。它允许开发者构建本地或私有的包索引,极大地简化了依赖管理和包发布......
  • Python数值计算(30)——矩形及复合矩形积分公式
    前面介绍了数值积分的基本背景知识,接下来就介绍各种常见的数值积分算法,本次主要介绍矩形和梯形积分公式。1.矩形积分公式对于一个连续函数,根据中值定理有:现在的关键是如何确定使误差尽可能比较小,一个比较简单的想法是使用该区间中间值,亦即Python中实现代码如下:defRectI......
  • Leetcode刷题Python之3185.构成整天的下标对数目II
    提示:直接暴力求解会超过执行时间,因此要考虑其他方法降低复杂度。文章目录问题描述一、示例:二、解题思路1.找余数2.利用哈希表存储余数3.逐步统计配对数代码实现解释代码复杂度分析问题描述给定一个整数数组hours,表示时间,以小时为单位。我们需要找到数组中满......
  • Python学习的自我理解和想法(20)
    #1024程序员节|征文#学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码!今天是学Python的第20天,学的内容是面向对象中的私有属性,私有方法,多态,单例计模式。开学了,时间不多,写得不多,见谅。目录1.私有属性(1).含义(2).语法(3).演示(4).调用私有属性2.私有方法(1).含义......
  • 12306抢票-python
    写了一整天,代码设置起始站,终点站,出行日期,通过爬虫从12306爬取选择当日的车票信息,保存在csv文件中,随后通过邮箱将包含车次信息的csv文件发送到个人邮箱账号,个人阅读后回发一个邮件,期间包含车次信息,电脑进入邮箱读取邮件,获得所选车次,进行自动化订票,期间需要输入一次验证码,目前是......
  • python基于django的校园论坛交流表白墙系统
    目录项目介绍具体实现截图预期达到的目标技术栈编码规范开发技术介绍系统的稳定性和可维护性论文大纲目录核心代码部分展示详细视频演示源码获取方式项目介绍该校园系统主要是来服务与学校内各个职务人员,不管是学生还是老师还是其他在校职工,都可以通过这个平台来进......
  • AtCoder Beginner Contest 375 C题 (python解)
    PanasonicProgrammingContest2024(AtCoderBeginnerContest375)C-SpiralRotation(python解)**原题链接:[(https://atcoder.jp/contests/abc375/tasks/abc375_c)]题目简述:这道题要求对一个NxN的网格进行特定的螺旋旋转操作,而这个N总是偶数。在这里,网格中的每个单元......
  • MYSQL-SQL-01-DDL(Data Definition Language,数据定义语言)
    DDL(数据定义语言)DDL(DataDefinitionLanguage),数据定义语言,用来定义数据库对象(数据库,表,字段)。一、数据库操作1、查询mysql数据库管理系统的所有数据库语法:showdatabases;示例:2、查询当前所在的数据库语法:selectdatabase();示例:3、创建数据库语法:([]括号......
  • Python多进程学习与使用:全面指南
    Python多进程学习与使用:全面指南目录引言什么是多进程?为什么使用多进程?Python中的多进程模块:multiprocessing创建进程的基本方法进程间通信进程池多进程与多线程的比较常见问题和解决方案最佳实践和性能优化实战项目:多进程文件处理系统总结引言在当今的计算环境中,充分利......