Listing of Supported Databases »


represents a reference to a local file-based SQL database.


represents a reference to a server-based SQL database.


represents a fully specified reference to any SQL database.


  • DatabaseReference[] includes information on how to connect to a database, but does not actually perform the connection. The connection is automatically performed by functions like RelationalDatabase, as well as by database querying functions such EntityValue.
  • In DatabaseReference[URL["url"]], "url" is typically of the form "backend://user:password@host:port/name".
  • In DatabaseReference[File["path"]], "path" is the path to an SQLite database file.
  • In DatabaseReference[assoc], typical elements of assoc include:
  • "Backend"the type of SQL backend used
    "Name"the name of the database, or path to it
    "Host"the host serving the database
    "Port"the server port through which to access the database
    "Username"the username used to authenticate the database
    "Password"the password used to authenticate the database
  • Possible values for "Backend" include "SQLite", "PostgreSQL", "MySQL", "MicrosoftSQL", "Oracle".
  • For file-based databases such as SQLite, "Name" gives the path to the file containing the database. If "Name" is not provided, an in-memory database is used.
  • For server-based databases, "Name" gives the name of the database at the specified endpoint.
  • For file-based databases, no values need to be specified for "Host" and "Port".
  • For server-based databases, "Host" can be a network host name or an IP address, specified with a string or using an IPAddress object.
  • If no value for "Port" is specified, a default for each type of backend will be used.
  • DatabaseReference[][prop] gives information about the database being referenced.
  • The property prop can be any of the elements that can be supplied in DatabaseReference[assoc].


open allclose all

Basic Examples  (4)

Construct a DatabaseReference from a file:

Construct a DatabaseReference from a URL:

Construct a DatabaseReference from an Association:

Execute SQL commands using ExternalEvaluate:

Scope  (1)

Extract properties from a DatabaseReference:

Multiple properties can be extracted at once:

Applications  (4)

Use in conjunction with RelationalDatabase to extract the schema of a database:

Construct an EntityStore from the RelationalDatabase object:

Register the EntityStore:

Perform a query:

Open a database connection by using StartExternalSession:

Delete the session to disconnect:

Use ExternalEvaluate to open a connection, run a query and close the connection:

DatabaseReference can also represent an in-memory SQLite database:

All operations done over an in-memory session are lost at the end of the ExternalEvaluate call:

Properties & Relations  (1)

Construct a DatabaseReference pointing to a file:

Connect manually to the database:

And disconnect:

Possible Issues  (1)

A DatabaseReference does not guarantee the existence of the database:

Wolfram Research (2019), DatabaseReference, Wolfram Language function,


Wolfram Research (2019), DatabaseReference, Wolfram Language function,


@misc{reference.wolfram_2020_databasereference, author="Wolfram Research", title="{DatabaseReference}", year="2019", howpublished="\url{}", note=[Accessed: 26-January-2021 ]}


@online{reference.wolfram_2020_databasereference, organization={Wolfram Research}, title={DatabaseReference}, year={2019}, url={}, note=[Accessed: 26-January-2021 ]}


Wolfram Language. 2019. "DatabaseReference." Wolfram Language & System Documentation Center. Wolfram Research.


Wolfram Language. (2019). DatabaseReference. Wolfram Language & System Documentation Center. Retrieved from