Class SqlDatabase

Class that represents a SQL database in the LangChain framework.

Security

Security Notice This class generates SQL queries for the given database. The SQLDatabase class provides a getTableInfo method that can be used to get column information as well as sample data from the table. To mitigate risk of leaking sensitive data, limit permissions to read and scope to the tables that are needed. Optionally, use the includesTables or ignoreTables class parameters to limit which tables can/cannot be accessed.

Link

See https://js.langchain.com/docs/security for more information.

Hierarchy

Implements

Constructors

Properties

allTables: SqlTable[] = []
appDataSource: DataSource
appDataSourceOptions: DataSourceOptions
ignoreTables: string[] = []
includesTables: string[] = []
lc_kwargs: SerializedFields
lc_namespace: string[] = ...

A path to the module that contains the class, eg. ["langchain", "llms"] Usually should be the same as the entrypoint the class is exported from.

lc_serializable: boolean = false
sampleRowsInTableInfo: number = 3
customDescription?: Record<string, string>

Accessors

  • get lc_aliases(): undefined | {
        [key: string]: string;
    }
  • A map of aliases for constructor args. Keys are the attribute names, e.g. "foo". Values are the alias that will replace the key in serialization. This is used to eg. make argument names match Python.

    Returns undefined | {
        [key: string]: string;
    }

  • get lc_attributes(): undefined | SerializedFields
  • A map of additional attributes to merge with constructor args. Keys are the attribute names, e.g. "foo". Values are the attribute values, which will be serialized. These attributes need to be accepted by the constructor as arguments.

    Returns undefined | SerializedFields

  • get lc_secrets(): undefined | {
        [key: string]: string;
    }
  • A map of secrets, which will be omitted from serialization. Keys are paths to the secret in constructor args, e.g. "foo.bar.baz". Values are the secret ids, which will be used when deserializing.

    Returns undefined | {
        [key: string]: string;
    }

Methods

  • Get information about specified tables.

    Follows best practices as specified in: Rajkumar et al, 2022 (https://arxiv.org/abs/2204.00498)

    If sample_rows_in_table_info, the specified number of sample rows will be appended to each table description. This can increase performance as demonstrated in the paper.

    Parameters

    • Optional targetTables: string[]

    Returns Promise<string>

  • Execute a SQL command and return a string representing the results. If the statement returns rows, a string of the results is returned. If the statement returns no rows, an empty string is returned.

    Parameters

    • command: string
    • fetch: "all" | "one" = "all"

    Returns Promise<string>

  • The name of the serializable. Override to provide an alias or to preserve the serialized module name in minified environments.

    Implemented as a static method to support loading logic.

    Returns string

Generated using TypeDoc