USE DATABASE¶
セッションのアクティブ/現在のデータベースを指定します。
データベースがセッションに指定されていない場合、クエリで参照されるオブジェクトおよびセッションで実行される他の SQL ステートメントは、(
db_name.schema_name.object_name
の形式で)オブジェクトにデータベースおよびスキーマ(名前空間 とも呼ばれる)で完全修飾する必要があります。完全修飾オブジェクト名の詳細については、 オブジェクト名の解決 をご参照ください。セッションにデータベースが指定されているが、セッションにスキーマが指定されていない場合、セッションで実行されるクエリやその他の SQL ステートメントで参照されるオブジェクトは、オブジェクトのスキーマで(
schema_name.object_name
の形式で)修飾する必要があります。データベースとスキーマがユーザー・セッションに指定されている場合、 SQL ステートメントとクエリでは、修飾されていないオブジェクト名が許可されます。
- こちらもご参照ください。
CREATE DATABASE、 ALTER DATABASE、 DROP DATABASE、 SHOW DATABASES
構文¶
USE [ DATABASE ] <name>
パラメーター¶
name
セッションに使用するデータベースの識別子を指定します。識別子にスペースまたは特殊文字が含まれる場合、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。
使用上の注意¶
DATABASE キーワードを指定する必要はありません。
USE DATABASE PUBLIC スキーマが存在しない場合(例えば、ドロップされていない場合)を除き、 PUBLIC を現在のスキーマとして自動的に指定します。セッションに別のスキーマを指定するには、 USE SCHEMA コマンドを使用します。
例¶
次の例では、後続の SQL コマンドに使用するデータベースを指定します。
USE DATABASE mydb;
次の例は、非修飾名を使用してオブジェクトを参照するコマンドが、データベースを切り替える USE コマンドの後に異なる出力を生成する方法を示しています。スキーマ、テーブル、テーブルデータなどは、データベースごとに異なる可能性があります。
SHOW SCHEMAS コマンドが database_one
のコンテキストで実行される場合は、そのデータベースのオブジェクトを反映した出力が生成されます。
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 |
+-------------------------------+--------------------+
USE コマンドが database_two
データベースに切り替えた後、SHOW SCHEMAS コマンドは異なるオブジェクトのセットを反映した出力を生成します。
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 |
+-------------------------------+--------------------+
次の例では、あるデータベースから別のデータベースに変更し、元のデータベースに戻ります。元のデータベースの名前は変数に格納されます。次のコマンドを実行します。
SELECT CURRENT_DATABASE();
SET original_database = (SELECT CURRENT_DATABASE());
USE DATABASE database_two;
SELECT CURRENT_DATABASE();
USE DATABASE IDENTIFIER($original_database);
SELECT CURRENT_DATABASE();
これらのコマンドの出力は、現在のデータベースの値がどのように変化するかを示しています。
>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 |
+--------------+