【Python】除了Pandas,还有哪些方法可以连接Mysql数据库?(整理全)

前段时间因为用不了pandas包,但是数据库还是需要连接,于是我整理了一些,不需要pandas还能连接数据库处理的方法。

使用过后,好用是挺好用的,但是还得是pandas包方便些!

(按本人觉得好用的方法,排在前面,前面的优先)

1. 使用pymysql连接MySQL数据库

pymysql是一个纯Python实现的MySQL客户端库,可以用于与MySQL服务器交互。

import pymysql
conn = pymysql.connect(host='hostname', user='username', password='password', db='database',port=0000) 
cursor = conn.cursor()
cursor.execute("SELECT * FROM table_name")
results = cursor.fetchall()
for row in results:
    print(row)
cursor.close()
conn.close()

以下是转换成json格式或者list格式(我的数据最后处理成list了),方便后期做数据处理的:

import pymysql
conn = pymysql.connect(host='hostname', user='username', password='password', db='database',port=0000)
cursor = conn.cursor()
cursor.execute("SELECT * FROM table_name limit 10")
results = cursor.fetchall(
# 获取查询结果
rows = cursor.fetchall()

# 将查询结果转换为字典列表
rows_list = []
for row in rows:
    rows_list.append(dict(zip([col[0] for col in cursor.description], row)))

# 转换为Json/list
json_result = json.loads(json.dumps(rows_list, indent=4,ensure_ascii=False))

# 打印JSON结果
print(json_result)

# 关闭游标和连接
cursor.close()
conn.close()

在这里插入图片描述

2. 使用psycopg2连接PostgreSQL数据库

import psycopg2
conn = psycopg2.connect("dbname='database_name' user='username' host='hostname' password='password'")
cur = conn.cursor()
cur.execute("SELECT * FROM table_name")

cur.close()
conn.close()

数据处理方法同上,具体的写法:

import psycopg2
import json

# 连接到数据库
conn = psycopg2.connect(
    dbname="database_name",
    user="username",
    password="password",
    host="hostname",
    port="port"
)
cursor = conn.cursor()

# 执行查询
cursor.execute("SELECT * FROM table_name")

# 获取查询结果
rows = cursor.fetchall()

# 将查询结果转换为字典列表
rows_list = []
for row in rows:
    rows_list.append(dict(zip([col.name for col in cursor.description], row)))

# 转换为JSON
json_result = json.dumps(rows_list, indent=4)

# 打印JSON结果
print(json_result)

# 关闭游标和连接
cursor.close()
conn.close()

在这里插入图片描述

3. 使用sqlite3连接SQLite数据库

sqlite3是Python标准库的一部分,提供了一个轻量级的磁盘基础数据库,不需要独立的服务器进程。

import sqlite3
conn = sqlite3.connect('database.db')
cursor = conn.cursor()
cursor.execute("SELECT * FROM table_name")
results = cursor.fetchall()
for row in results:
    print(row)
cursor.close()
conn.close()

在这里插入图片描述

4. 使用pyodbc连接多种类型的数据库

pyodbc是一个Python模块,它提供了一个轻量级的接口到ODBC,可以用于连接多种类型的数据库。

import pyodbc
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=hostname;DATABASE=database_name;UID=username;PWD=password')
cursor = conn.cursor()
cursor.execute("SELECT * FROM table_name")
results = cursor.fetchall()
for row in results:
    print(row)
cursor.close()
conn.close()

在这里插入图片描述

5.使用sqlalchemy作为ORM工具

SQLAlchemy是一个SQL工具包和对象关系映射(ORM)系统,可以用于数据库操作。

from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://username:password@hostname:port/database_name')
with engine.connect() as connection:
    result = connection.execute("SELECT * FROM table_name")
    for row in result:
        print(row)

我尝试了这种方法,但是我不喜欢前面的with ……的部分,要全部一起运行才可以,这样对代码连续测试来说,真的太不友好了。

最后呈现的格式,有点像元组的格式,个人比较喜欢上面的写法。
在这里插入图片描述

6. 使用cx_Oracle连接Oracle数据库

cx_Oracle是Oracle官方提供的Python扩展,用于访问Oracle数据库。

import cx_Oracle
conn = cx_Oracle.connect('username/password@hostname:port/service_name')
cursor = conn.cursor()
cursor.execute("SELECT * FROM table_name")
results = cursor.fetchall()
for row in results:
    print(row)
cursor.close()
conn.close()

缺点:不能直接运行,需要安装 cx_Oracle的包
在这里插入图片描述

选择哪种方法取决于您要连接的数据库类型以及您的项目需求。每种方法都有其特定的安装和配置步骤,您需要根据您的数据库服务器和Python环境进行相应的设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值