langchain_community.utilities.sql_database
.SQLDatabase¶
- class langchain_community.utilities.sql_database.SQLDatabase(engine: Engine, schema: Optional[str] = None, metadata: Optional[MetaData] = None, ignore_tables: Optional[List[str]] = None, include_tables: Optional[List[str]] = None, sample_rows_in_table_info: int = 3, indexes_in_table_info: bool = False, custom_table_info: Optional[dict] = None, view_support: bool = False, max_string_length: int = 300, lazy_table_reflection: bool = False)[source]¶
SQLAlchemy对数据库的封装。
从数据库URI创建引擎。
Attributes
dialect
返回要使用的方言的字符串表示。
table_info
数据库中所有表的信息。
Methods
__init__
(engine[, schema, metadata, ...])从数据库URI创建引擎。
from_cnosdb
([url, user, password, tenant, ...])用于从CnosDB连接创建SQLDatabase实例的类方法。 此方法需要'cnos-connector'包。如果未安装,可以使用`pip install cnos-connector`添加。
from_databricks
(catalog, schema[, host, ...])用于从Databricks连接创建SQLDatabase实例的类方法。 此方法需要'databricks-sql-connector'包。如果未安装, 可以使用`pip install databricks-sql-connector`进行添加。
from_uri
(database_uri[, engine_args])从URI构建一个SQLAlchemy引擎。
返回可能在代理提示中需要的数据库上下文。
get_table_info
([table_names])获取指定表的信息。
get_table_info_no_throw
([table_names])获取指定表的信息。
[Deprecated] 获取可用表的名称。
获取可用表的名称。
run
(command[, fetch, include_columns, ...])执行一个SQL命令并返回表示结果的字符串。
run_no_throw
(command[, fetch, ...])执行一个SQL命令并返回表示结果的字符串。
- Parameters
engine (Engine) –
schema (Optional[str]) –
metadata (Optional[MetaData]) –
ignore_tables (Optional[List[str]]) –
include_tables (Optional[List[str]]) –
sample_rows_in_table_info (int) –
indexes_in_table_info (bool) –
custom_table_info (Optional[dict]) –
view_support (bool) –
max_string_length (int) –
lazy_table_reflection (bool) –
- __init__(engine: Engine, schema: Optional[str] = None, metadata: Optional[MetaData] = None, ignore_tables: Optional[List[str]] = None, include_tables: Optional[List[str]] = None, sample_rows_in_table_info: int = 3, indexes_in_table_info: bool = False, custom_table_info: Optional[dict] = None, view_support: bool = False, max_string_length: int = 300, lazy_table_reflection: bool = False)[source]¶
从数据库URI创建引擎。
- Parameters
engine (Engine) –
schema (Optional[str]) –
metadata (Optional[MetaData]) –
ignore_tables (Optional[List[str]]) –
include_tables (Optional[List[str]]) –
sample_rows_in_table_info (int) –
indexes_in_table_info (bool) –
custom_table_info (Optional[dict]) –
view_support (bool) –
max_string_length (int) –
lazy_table_reflection (bool) –
- classmethod from_cnosdb(url: str = '127.0.0.1:8902', user: str = 'root', password: str = '', tenant: str = 'cnosdb', database: str = 'public') SQLDatabase [source]¶
用于从CnosDB连接创建SQLDatabase实例的类方法。 此方法需要’cnos-connector’包。如果未安装,可以使用`pip install cnos-connector`添加。
- 参数:
url(str):CnosDB服务的HTTP连接主机名和端口号,不包括”http://”或”https://”,默认值为”127.0.0.1:8902”。 user(str):用于连接到CnosDB服务的用户名,默认值为”root”。 password(str):连接到CnosDB服务的用户的密码,默认值为””。 tenant(str):用于连接到CnosDB服务的租户名称,默认值为”cnosdb”。 database(str):CnosDB租户中数据库的名称。
- 返回:
SQLDatabase:使用提供的CnosDB连接详细信息配置的SQLDatabase实例。
- Parameters
url (str) –
user (str) –
password (str) –
tenant (str) –
database (str) –
- Return type
- classmethod from_databricks(catalog: str, schema: str, host: Optional[str] = None, api_token: Optional[str] = None, warehouse_id: Optional[str] = None, cluster_id: Optional[str] = None, engine_args: Optional[dict] = None, **kwargs: Any) SQLDatabase [source]¶
用于从Databricks连接创建SQLDatabase实例的类方法。 此方法需要’databricks-sql-connector’包。如果未安装, 可以使用`pip install databricks-sql-connector`进行添加。
- 参数:
catalog(str):Databricks数据库中的目录名称。 schema(str):目录中的模式名称。 host(可选[str]):Databricks工作区主机名,不包括
‘https://’部分。如果未提供,则尝试从 环境变量’DATABRICKS_HOST’中获取。如果仍然不可用且 在Databricks笔记本中运行,则默认为当前工作区 主机名。默认为None。
- api_token(可选[str]):用于
访问Databricks SQL仓库或集群的Databricks个人访问令牌。如果未提供, 尝试从’DATABRICKS_TOKEN’中获取。如果仍然不可用 并在Databricks笔记本中运行,则为当前用户生成临时令牌。 默认为None。
- warehouse_id(可选[str]):Databricks SQL中的仓库ID。如果
提供,则该方法配置连接以使用此仓库。 不能与’cluster_id’一起使用。默认为None。
- cluster_id(可选[str]):Databricks Runtime中的集群ID。如果
提供,则该方法配置连接以使用此集群。 不能与’warehouse_id’一起使用。如果在Databricks笔记本中运行 并且’warehouse_id’和’cluster_id’都为None,则使用笔记本所附加的 集群的ID。默认为None。
- engine_args(可选[dict]):连接时要使用的参数
Databricks。默认为None。
- 返回:
- SQLDatabase:使用提供的Databricks连接详细信息配置的
SQLDatabase实例。
- 引发:
- ValueError:如果未找到’databricks-sql-connector’,或者如果
提供了’warehouse_id’和’cluster_id’,或者如果既没有 提供’warehouse_id’也没有提供’cluster_id’且未在 Databricks笔记本中执行。
- Parameters
catalog (str) –
schema (str) –
host (Optional[str]) –
api_token (Optional[str]) –
warehouse_id (Optional[str]) –
cluster_id (Optional[str]) –
engine_args (Optional[dict]) –
kwargs (Any) –
- Return type
- classmethod from_uri(database_uri: str, engine_args: Optional[dict] = None, **kwargs: Any) SQLDatabase [source]¶
从URI构建一个SQLAlchemy引擎。
- Parameters
database_uri (str) –
engine_args (Optional[dict]) –
kwargs (Any) –
- Return type
- get_table_info(table_names: Optional[List[str]] = None) str [source]¶
获取指定表的信息。
遵循Rajkumar等人在2022年指定的最佳实践(https://arxiv.org/abs/2204.00498)。
如果`sample_rows_in_table_info`,则将指定数量的样本行附加到每个表描述中。 正如论文中所示,这可以提高性能。
- Parameters
table_names (Optional[List[str]]) –
- Return type
str
- get_table_info_no_throw(table_names: Optional[List[str]] = None) str [source]¶
获取指定表的信息。
遵循Rajkumar等人在2022年指定的最佳实践(https://arxiv.org/abs/2204.00498)。
如果`sample_rows_in_table_info`,则将指定数量的样本行附加到每个表描述中。 正如论文中所示,这可以提高性能。
- Parameters
table_names (Optional[List[str]]) –
- Return type
str
- get_table_names() Iterable[str] [source]¶
[Deprecated] 获取可用表的名称。
Notes
Deprecated since version langchain-community==0.0.1: Use get_usable_table_names instead.
- Return type
Iterable[str]
- run(command: Union[str, Executable], fetch: Literal['all', 'one', 'cursor'] = 'all', include_columns: bool = False, *, parameters: Optional[Dict[str, Any]] = None, execution_options: Optional[Dict[str, Any]] = None) Union[str, Sequence[Dict[str, Any]], Result[Any]] [source]¶
执行一个SQL命令并返回表示结果的字符串。
如果语句返回行,则返回结果的字符串。 如果语句没有返回行,则返回空字符串。
- Parameters
command (Union[str, Executable]) –
fetch (Literal['all', 'one', 'cursor']) –
include_columns (bool) –
parameters (Optional[Dict[str, Any]]) –
execution_options (Optional[Dict[str, Any]]) –
- Return type
Union[str, Sequence[Dict[str, Any]], Result[Any]]
- run_no_throw(command: str, fetch: Literal['all', 'one'] = 'all', include_columns: bool = False, *, parameters: Optional[Dict[str, Any]] = None, execution_options: Optional[Dict[str, Any]] = None) Union[str, Sequence[Dict[str, Any]], Result[Any]] [source]¶
执行一个SQL命令并返回表示结果的字符串。
如果语句返回行,则返回结果的字符串。 如果语句未返回行,则返回空字符串。
如果语句抛出错误,则返回错误消息。
- Parameters
command (str) –
fetch (Literal['all', 'one']) –
include_columns (bool) –
parameters (Optional[Dict[str, Any]]) –
execution_options (Optional[Dict[str, Any]]) –
- Return type
Union[str, Sequence[Dict[str, Any]], Result[Any]]