jupyter notebooks连接数据库
时间: 2025-05-15 10:59:19 浏览: 26
### 如何在 Jupyter Notebook 中连接各种类型的数据库
#### 使用 SQLAlchemy 进行通用数据库连接
为了简化不同数据库之间的连接操作,推荐使用 SQLAlchemy 库。SQLAlchemy 提供了一种抽象层,使得开发者能够以统一的方式访问多种关系型数据库管理系统 (RDBMS),如 MySQL、PostgreSQL 和 SQLite 等。
要建立与特定 RDBMS 的连接,通常需要指定相应的驱动程序以及完整的 URI 字符串。对于 SQLite 数据库而言,由于其轻量化特性,可以直接通过文件路径完成连接配置[^3]。
```python
from sqlalchemy import create_engine
# 创建引擎实例
engine = create_engine('sqlite:///example.db')
connection = engine.connect()
```
上述代码展示了如何利用 `create_engine` 函数创建一个新的 Engine 对象,并传入目标数据库 URL 来初始化它;随后调用 connect 方法获取 Connection 实例用于执行后续命令。
#### PostgreSQL 数据库连接示例
当涉及到更复杂的企业级应用时,则可能需要用到像 PostgreSQL 这样的高级别 RDBMS。此时除了基本的身份验证参数外,还需要额外指明主机名、端口号等信息:
```python
import psycopg2
from sqlalchemy import create_engine
postgresql_url = 'postgresql://username:password@localhost:5432/mydatabase'
engine_postgresql = create_engine(postgresql_url)
with engine_postgresql.connect() as conn:
result = conn.execute("SELECT * FROM my_table LIMIT 5;")
for row in result:
print(row)
```
这段脚本说明了怎样构建指向远程服务器上的 Postgres DB 的链接字符串,并读取表中的部分记录进行打印输出[^1]。
#### MySQL 数据库连接方法
针对 MySQL 数据库的操作方式与此类似,只需更改对应的 DSN 即可适配不同的后台存储服务提供商:
```python
mysql_url = 'mysql+pymysql://root:@localhost/testdb?charset=utf8mb4'
engine_mysql = create_engine(mysql_url, echo=True)
try:
with engine_mysql.begin() as connection:
query_result = connection.execute(
"""SELECT id,name FROM users WHERE age > %s""",
('20',)
)
finally:
engine_mysql.dispose()
```
这里采用 pymysql 作为底层通信协议,并设置了字符集编码选项确保兼容性良好。
#### MongoDB NoSQL 数据库集成方案
虽然大多数情况下讨论的是传统的关系型数据库,但对于某些应用场景来说,NoSQL 解决方案可能是更好的选择。比如 MongoDB 就是一种广泛使用的文档导向型非结构化数据管理平台,在 Python 生态圈内可通过 PyMongo 或者 Pandas 配合 pymongo[srv] 方式轻松接入:
```python
from pymongo import MongoClient
client = MongoClient('mongodb://localhost:27017/')
db = client['test_database']
collection = db.test_collection
documents = collection.find({"status": "A"})
for doc in documents:
print(doc)
```
此片段体现了基于对象模型的设计理念,允许应用程序直接操纵 JSON/BSON 文档集合而不必受限于固定的表格模式定义。
阅读全文
相关推荐


















