汪图南
  • RAG

    • RAG
  • 快速入门
  • 高级技巧
前端面试之道
  • 打包工具

    • Webpack
    • Rollup
  • TypeScript

    • TypeScript基础
    • TypeScript类型挑战
  • CSS预编译器

    • SASS
  • 自动化测试

    • Vue应用测试
  • Vue2.0源码分析
  • Vue3.0源码分析
  • 数据结构和算法(基础)
  • LeetCode(刷题)
  • JavaScript书籍

    • 你不知道的JavaScript(上)
    • 你不知道的JavaScript(中下)
    • JavaScript数据结构和算法
    • JavaScript设计模式与开发实践
    • 深入理解ES6
  • Git书籍

    • 精通Git
Github
  • RAG

    • RAG
  • 快速入门
  • 高级技巧
前端面试之道
  • 打包工具

    • Webpack
    • Rollup
  • TypeScript

    • TypeScript基础
    • TypeScript类型挑战
  • CSS预编译器

    • SASS
  • 自动化测试

    • Vue应用测试
  • Vue2.0源码分析
  • Vue3.0源码分析
  • 数据结构和算法(基础)
  • LeetCode(刷题)
  • JavaScript书籍

    • 你不知道的JavaScript(上)
    • 你不知道的JavaScript(中下)
    • JavaScript数据结构和算法
    • JavaScript设计模式与开发实践
    • 深入理解ES6
  • Git书籍

    • 精通Git
Github
  • RAG基础

    • 介绍
  • 简易RAG

    • 前置准备
    • LangChain实现RAG
    • LangGraph实现RAG
    • LangChain vs LangGraph
  • 数据导入(Loader)

    • 介绍
    • Document类型
    • 简单文本导入
    • JSON
    • HTML网页数据
    • Markdown
    • CSV
    • OCR
    • PDF
    • DataBase
      • 数据准备
      • 加载数据
  • 文本切块(Chunking)

    • 介绍
    • 分块方法
  • 数据嵌入(Embedding)

    • 介绍
    • 向量相似度计算
    • 稀疏嵌入
    • 密集嵌入
    • 混合嵌入
  • 向量存储(VectorStore)

    • 介绍
    • Chroma
    • Milvus

DataBase

提示

SQLDatabaseLoader 文档

使用SQLDatabaseLoader加载数据库数据时,我们以SQLite数据库为例。

数据准备

import sqlite3

# 创建测试数据库
def create_sample_db(db_path: str):
  conn = sqlite3.connect(db_path)
  cursor = conn.cursor()
  
  # 创建users表
  cursor.execute("""
  CREATE TABLE IF NOT EXISTS users (
      id INTEGER PRIMARY KEY,
      name TEXT NOT NULL,
      email TEXT UNIQUE,
      active INTEGER DEFAULT 1
  )
  """)
  
  # 插入测试数据
  cursor.executemany(
      "INSERT INTO users (name, email) VALUES (?, ?)",
      [
        ("张三", "zhang@example.com"),
        ("李四", "li@example.com"),
        ("王五", "wang@example.com"),
        ("赵六", "zhao@example.com"),
        ("钱七", "qian@example.com")
      ]
  )

  
  conn.commit()
  conn.close()

if __name__ == "__main__":
  create_sample_db("example.db")
  print("测试数据库已创建")

加载数据

from langchain_community.document_loaders import SQLDatabaseLoader
from langchain_community.utilities import SQLDatabase

db = SQLDatabase.from_uri(f"sqlite:///example.db")
    
data_loader = SQLDatabaseLoader(
  db=db,
  query="SELECT id, name FROM users WHERE active = 1"
)

documents = data_loader.load()

for document in documents:
  print(document.page_content)
  print("=" * 50)

输出结果:

id: 1
name: 张三
==================================================
id: 2
name: 李四
==================================================
id: 3
name: 王五
==================================================
id: 4
name: 赵六
==================================================
id: 5
name: 钱七
==================================================
最后更新时间: 2025/5/31 05:05
贡献者: wangtunan
Prev
PDF