USE DATABASE¶
Gibt die aktive/aktuelle Datenbank für die Sitzung an:
Wenn für eine Sitzung keine Datenbank angegeben ist, müssen alle Objekte, die in Abfragen und anderen SQL-Anweisungen, die in der Sitzung ausgeführt werden, referenziert werden, mit der Datenbank und dem Schema, auch bekannt als Namespace, für das Objekt vollständig qualifiziert sein (in Form von
db_name.schema_name.object_name
). Weitere Informationen zu vollständig qualifizierten Objektnamen finden Sie unter Auflösung von Objektnamen.Wenn für eine Sitzung eine Datenbank, aber kein Schema angegeben ist, müssen alle Objekte, die in Abfragen und anderen SQL-Anweisungen referenziert sind, die in der Sitzung ausgeführt werden, mit dem Schema für das Objekt qualifiziert werden (in Form von
schema_name.object_name
).Wenn die Datenbank und das Schema für eine Sitzung des Benutzers angegeben sind, sind unqualifizierte Objektnamen in SQL-Anweisungen und Abfragen erlaubt.
- Siehe auch:
CREATE DATABASE, ALTER DATABASE, DROP DATABASE, SHOW DATABASES
Syntax¶
USE [ DATABASE ] <name>
Parameter¶
name
Gibt den Bezeichner an, den die Datenbank für die Sitzung verwenden soll. Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.
Nutzungshinweise¶
Das Schlüsselwort DATABASE muss nicht angegeben werden.
USE DATABASE gibt automatisch PUBLIC als aktuelles Schema an, es sei denn, das Schema PUBLIC ist nicht vorhanden (z. B. wurde es gelöscht). Verwenden Sie den Befehl USE SCHEMA, um ein anderes Schema für eine Sitzung anzugeben.
Beispiele¶
Das folgende Beispiel gibt die Datenbank an, die für nachfolgende SQL Befehle verwendet werden soll:
USE DATABASE mydb;
Das folgende Beispiel zeigt, wie Befehle, die sich auf Objekte mit unqualifizierten Namen beziehen, nach einem USE-Befehl zum Wechseln der Datenbank unterschiedliche Ausgaben erzeugen. Die Schemata, Tabellen, Tabellendaten usw. können sich von Datenbank zu Datenbank unterscheiden.
Wenn der SHOW SCHEMAS-Befehl im Kontext database_one
von ausgeführt wird, wird eine Ausgabe erzeugt, die die Objekte in dieser Datenbank widerspiegelt:
USE DATABASE database_one;
SHOW SCHEMAS ->> SELECT "created_on", "name" FROM $1 ORDER BY "created_on";
+-------------------------------+--------------------+
| 2025-07-11 14:34:24.386 -0700 | PUBLIC |
| 2025-07-11 14:42:23.509 -0700 | TEST_SCHEMA |
| 2025-07-11 14:42:29.158 -0700 | STAGING_SCHEMA |
| 2025-07-11 14:45:43.124 -0700 | INFORMATION_SCHEMA |
+-------------------------------+--------------------+
Nach einem USE-Befehl zur database_two
-Datenbank wechselt, erzeugt der SHOW SCHEMAS-Befehl eine Ausgabe, die einen anderen Satz von Objekten widerspiegelt:
USE DATABASE database_two;
SHOW SCHEMAS ->> SELECT "created_on", "name" FROM $1 ORDER BY "created_on";
+-------------------------------+--------------------+
| 2025-07-11 14:34:31.496 -0700 | PUBLIC |
| 2025-07-11 14:43:04.394 -0700 | PRODUCTION_SCHEMA |
| 2025-07-11 14:44:23.006 -0700 | DASHBOARDS_SCHEMA |
| 2025-07-11 14:45:54.372 -0700 | INFORMATION_SCHEMA |
+-------------------------------+--------------------+
Im folgenden Beispiel wird von einer Datenbank in eine andere geändert, und dann wieder zurück zur ursprünglichen Datenbank. Der Name der ursprünglichen Datenbank wird in einer -Variablen gespeichert. Führen Sie die folgenden Befehle aus:
SELECT CURRENT_DATABASE();
SET original_database = (SELECT CURRENT_DATABASE());
USE DATABASE database_two;
SELECT CURRENT_DATABASE();
USE DATABASE IDENTIFIER($original_database);
SELECT CURRENT_DATABASE();
Die Ausgabe für diese Befehle zeigt, wie sich der aktuelle Datenbankwert ändert:
>SELECT CURRENT_DATABASE();
+--------------+
| DATABASE_ONE |
+--------------+
>SET original_database = (SELECT CURRENT_DATABASE());
>USE DATABASE database_two;
>SELECT CURRENT_DATABASE();
+--------------+
| DATABASE_TWO |
+--------------+
>USE DATABASE IDENTIFIER($original_database);
>SELECT CURRENT_DATABASE();
+--------------+
| DATABASE_ONE |
+--------------+