RelationalDatabase

Listing of Supported Databases »

RelationalDatabase[]

represents schema information about a relational database.

RelationalDatabase[db]

gives the complete schema of the database referenced by db.

RelationalDatabase[{table1 table2,},db]

gives schema information related to the tables tablei.

Details and Options

  • In RelationalDatabase[db] or RelationalDatabase[tables,db], the database can be specified using DatabaseReference[], URL[] or File[].
  • RelationalDatabase[]["prop"] can be used to access database-level properties. These include:
  • "Tables"the list of table names
    "Connection"the DatabaseReference object
  • RelationalDatabase[]["table",prop] can be used to access table-level properties. These include:
  • "Columns"the list of column names
    "PrimaryKey"the primary key constraint as an association
    "ForeignKeys"the list of foreign keys to other tables
    "UniquenessConstraints"the list of uniqueness constraints for values in columns
    "Indexes"the list of indexed columns
    All
  • the association of all table-level properties
  • RelationalDatabase[]["table","PrimaryKey",prop] can be used to access the properties of the primary key:
  • "Columns"the columns that constitute the primary key
    "ConstraintName"the name of the constraint associated with the primary key
  • RelationalDatabase[]["table","ForeignKeys"] gives a list of associations with the following elements:
  • "ToTable"the destination table of the foreign keys
    "FromColumns"the columns in the source table that map to columns in the destination table
    "ToColumns"the columns in the destination table that match the "FromColumns" in the source table
  • RelationalDatabase[]["table","Indexes"] gives a list of associations that include the following elements:
  • "Columns"the columns taken to be unique together
    "IndexName"the name of the index
  • RelationalDatabase[]["table","UniquenessConstraints"] gives a list of associations with the following elements:
  • "Columns"the columns whose combined values are taken to be unique
    "ConstraintName"the name of the uniqueness constraint
  • RelationalDatabase[]["table","column",prop] can be used to access column-level properties. These include:
  • "NativeTypeString"the native type of the data stored in the column
    "Nullable"whether the column can contain Missing values
    Allthe association of all column-level properties
  • RelationalDatabase has the following option:
  • IncludeRelatedTables Falsewhether to include tables referenced by foreign keys

Examples

open allclose all

Basic Examples  (2)

Construct a RelationalDatabase object:

Find out what tables are present in the database:

Construct a RelationalDatabase with a subset of the tables:

Scope  (6)

Construct a RelationalDatabase object:

Extract schema information:

Extract information about a table:

Extract information about a column:

Available properties at each level:

Show the connection used to inspect the database:

Use DatabaseReference to refer to the database:

Use a database URL to refer to the database:

If the database is file based, it can be referenced as a File expression:

Inspect only certain tables:

The resulting object only has three tables:

Construct a RelationalDatabase object:

Get information about foreign keys for a given table:

Get the database descriptor of a column type:

Extract all properties at the table level as an association:

Extract all properties at the column level as an association:

Options  (1)

IncludeRelatedTables  (1)

When inspecting only a subset of the tables, you might find references to other tables in the constraints:

Set IncludeRelatedTables to True to include those in the object:

The resulting object has more tables than you requested:

Applications  (1)

Construct a RelationalDatabase object:

Construct an EntityStore from it:

Register the EntityStore:

Perform a query:

Properties & Relations  (1)

Visualize the structure of the foreign keys of a database:

Possible Issues  (2)

Manually editing a RelationalDatabase might result in an object that does not reflect the state of the database. For this reason, it is currently not allowed:

When inspecting only a subset of the tables, you might find references to other tables in the constraints:

Set IncludeRelatedTables to True to include those in the object:

The resulting object has more tables than you requested:

Wolfram Research (2019), RelationalDatabase, Wolfram Language function, https://reference.wolfram.com/language/ref/RelationalDatabase.html.

Text

Wolfram Research (2019), RelationalDatabase, Wolfram Language function, https://reference.wolfram.com/language/ref/RelationalDatabase.html.

CMS

Wolfram Language. 2019. "RelationalDatabase." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/RelationalDatabase.html.

APA

Wolfram Language. (2019). RelationalDatabase. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/RelationalDatabase.html

BibTeX

@misc{reference.wolfram_2023_relationaldatabase, author="Wolfram Research", title="{RelationalDatabase}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/RelationalDatabase.html}", note=[Accessed: 19-March-2024 ]}

BibLaTeX

@online{reference.wolfram_2023_relationaldatabase, organization={Wolfram Research}, title={RelationalDatabase}, year={2019}, url={https://reference.wolfram.com/language/ref/RelationalDatabase.html}, note=[Accessed: 19-March-2024 ]}