Databricks SQL Namen

Identifiziert verschiedene Arten von Objekten in Databricks SQL.

Datenbankname

Identifiziert eine Datenbank. Eine Datenbank stellt eine Gruppierung von Objekten im Katalog zur Verfügung.

Syntax

database_identifier

Parameter

Beispiele

> use default;

> create database my_db;

Schemaname

Ein Synonym für den Datenbanknamen.

Tabellenname

Identifiziert ein Tabellenobjekt. Die Tabelle kann mit einem Datenbanknamen oder mit einem einfachen Bezeichner nicht qualifiziert werden.

Syntax

{ [ database_name . ] table_identifier |
  { file_format | `file_format` } . `path_to_table` }
  [temporal_specification]

temporal_specification
{
  @ timestamp_encoding |
  @V version |
  TIMESTAMP AS OF expr |
  VERSION AS OF version
}

Parameter

  • database_name:Ein qualifizierter oder nicht qualifizierter Datenbankname, der die Tabelle enthält.

  • table_identifier: Ein Bezeichner, der den Namen der Tabelle oder des Table_alias.

  • file_format: Eines von , , , , , , , csvavroparquetorcbinaryFiletextdelta (ohne Sensitivität der Groß-/Kleinschreibung).

  • path_to_table:Der Speicherort der Tabelle im Dateisystem. Sie müssen über die Berechtigung ANY_FILE verfügen, diese Syntax zu verwenden.

  • temporal_specification: Bei Verwendung verweist auf eine Delta-Tabelle zum angegebenen Zeitpunkt oder zur angegebenen Version.

    Sie können eine temporale Spezifikation nur im Kontext einer Abfrage oder einer MERGE USING verwenden.

    • @ timestamp_encoding: Ein positives BIGINT-Literal, das einen Zeitstempel im Format codiert.
    • @V Version:Ein positives INT-Literal, das die Version der Delta-Tabelle identifiziert.
  • expr:Ein einfacher Ausdruck, der zu einem TIMESTAMP ausgewertet wird. expr muss ein konstanter Ausdruck sein, kann aber oder current_date()current_timestamp() enthalten.

  • timestamp_expression kann eine beliebige der:

    • '2018-10-18T22:15:12.013Z', d. b. eine Zeichenfolge, die in einen Zeitstempel umstrangen werden kann
    • cast('2018-10-18 13:36:32 CEST' as timestamp)
    • '2018-10-18', d. b. eine Datumszeichenfolge
    • current_timestamp() - interval 12 hours
    • date_sub(current_date(), 1)
    • Jeder andere Ausdruck, der ist oder in einen Zeitstempel umformt werden kann
  • version ist ein Long-Wert, der aus der Ausgabe von ermittelt werden DESCRIBE HISTORY table_spec kann.

Weder timestamp_expression noch version können Unterabfragen sein.

Wenn der Name nicht qualifiziert ist und nicht auf einen bekannten Tabellenalias verweist,versucht Databricks SQL zunächst, die Tabelle als Tabelle in der aktuellen Datenbank aufzulösen.

Wenn der Name mit einer Datenbank qualifiziert ist, versucht Databricks SQL, die Tabelle im aktuellen Katalog aufzulösen.

Databricks SQL löst einen Fehler aus, wenn Sie für eine Tabelle verwenden, temporal_specification die nicht im Delta Lake-Format vor liegt.

Beispiele

`Employees`

employees

hr.employees

`hr`.`employees`

delta.`somedir/delta_table`

`csv`.`spreadsheets/data.csv`

Name der Ansicht

Identifiziert eine Ansicht. Die Sicht kann mit einem Datenbanknamen oder nicht qualifiziert werden, indem ein einfacher Bezeichner verwendet wird.

Syntax

[ database_name . ] view_identifier

Parameter

  • database_name: Ein qualifizierter oder nicht qualifizierter Datenbankname, der die Sicht enthält.
  • view_identifier: Ein Bezeichner, der den Namen der Ansicht oder den Ansichtsbezeichner eines CTE angibt.

Beispiele

`items`

items

hr.items

`hr`.`items`

Spaltenname

Identifiziert eine Spalte innerhalb einer Tabelle oder Sicht. Die Spalte kann mit einem Tabellen- oder Sichtnamen oder mit einem einfachen Bezeichner nicht qualifiziert werden.

Syntax

[ { table_name | view_name } . ] column_identifier

Parameter

  • table_name:Ein qualifizierter oder nicht qualifizierter Tabellenname der Tabelle, die die Spalte enthält.
  • view_name:Ein qualifizierter oder nicht qualifizierter Ansichtsname der Sicht, die die Spalte enthält.
  • column_identifier:Ein Bezeichner, der den Namen der Spalte angibt.

Die identifizierte Spalte muss in der Tabelle oder Sicht vorhanden sein.

Beispiele

> SELECT c1 FROM VALUES(1) AS T(c1);
 c1
 1

Feldname

Identifiziert ein Feld innerhalb einer Struktur. Die Spalte kann mit einem Tabellen- oder Sichtnamen oder mit einem einfachen Bezeichner nicht qualifiziert werden.

Syntax

expr { . field_identifier [. ...] }

Parameter

Auf ein tief geschachtelte Feld kann verwiesen werden, indem der Feldbezeichner entlang des Pfads zur Stammstruktur angegeben wird.

Beispiele

> SELECT addr.address.name
    FROM VALUES (named_struct('address', named_struct('number', 5, 'name', 'Main St'),
                              'city', 'Springfield')) as t(addr);
  Main St

Funktionsname

Identifiziert eine Funktion. Die Funktion kann mit einem Datenbanknamen oder mit einem einfachen Bezeichner nicht qualifiziert werden.

Syntax

[ database_name . ] function_identifier

Parameter

  • database_name: Ein qualifizierter oder nicht qualifizierter Datenbankname, der die Funktion enthält.
  • function_identifier: Ein Bezeichner, der den Namen der Funktion angibt.

Beispiele

`math`.myplus

myplus

math.`myplus`

Tabellenalias

Bezeichnet einen Tabellenverweis, eine Abfrage, eine Tabellenfunktion oder eine andere Form einer Beziehung.

Syntax

[ AS ] table_identifier [ ( column_identifier1 [, ...] ) ]

Parameter

Wenn Sie Spaltenbezeichner angeben, muss deren Anzahl mit der Anzahl der Spalten in der übereinstimmenden Beziehung übereinstimmen.

Wenn Sie keine Spaltenbezeichner angeben, werden deren Namen von der bezeichneten Beziehung geerbt.

Beispiele

> SELECT a, b FROM VALUES (1, 2) AS t(a, b);
 a  b
 1  2

> DELETE FROM emp AS e WHERE e.c1 = 5;

Spaltenalias

Bezeichnet das Ergebnis eines Ausdrucks in einer Liste als Verweis.

Wenn der Ausdruck eine Tabellenwertgeneratorfunktion ist,bezeichnet der Alias die Liste der erzeugten Spalten.

Syntax

[AS] column_identifier
[AS] ( column_identifier [, ...] )

Parameter

Spaltenaliase müssen in der Auswahlliste zwar nicht eindeutig sein, aber eindeutig ist eine Voraussetzung für den Verweis auf einen Alias nach Namen.

Beispiele

> SELECT 1 AS a;
 a
 1

> SELECT 1 a, 2 b;
 a b
 1 2

> SELECT 1 AS `a`;
 a
 1

> SELECT posexplode(array(2)) AS (i, a);
 i  a
 0  2

> SELECT a + a FROM (SELECT 1 AS a);
 a
 2