USE DATABASE

Especifica o banco de dados ativo/atual para a sessão:

  • Se um banco de dados não for especificado para uma sessão, todos os objetos referenciados em consultas e outras instruções SQL executadas na sessão deverão ser totalmente qualificados com o banco de dados e o esquema, também conhecido como namespace, para o objeto (no formato de db_name.schema_name.object_name). Para obter mais informações sobre nomes de objetos totalmente qualificados, consulte Resolução de nome de objeto.

  • Se um banco de dados for especificado para uma sessão, mas o esquema não for especificado para uma sessão, todos os objetos referenciados em consultas e outras instruções SQL executadas na sessão deverão ser qualificados com o esquema do objeto (no formato de schema_name.object_name).

  • Se o banco de dados e o esquema forem especificados para uma sessão de usuário, nomes de objeto não qualificados serão permitidos em instruções e consultas SQL.

Consulte também:

CREATE DATABASE , ALTER DATABASE , DROP DATABASE , SHOW DATABASES

Sintaxe

USE [ DATABASE ] <name>
Copy

Parâmetros

name

Especifica o identificador do banco de dados a ser utilizado para a sessão. Se o identificador contiver espaços ou caracteres especiais, toda a cadeia de caracteres deverá ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Notas de uso

  • A palavra-chave DATABASE não precisa ser especificada.

  • USE DATABASE especifica automaticamente PUBLIC como o esquema atual, a menos que o esquema PUBLIC não exista (por exemplo, tenha sido descartado). Para especificar um esquema diferente para uma sessão, use o comando USE SCHEMA.

Exemplos

O exemplo a seguir especifica o banco de dados a ser usado para os comandos SQL subsequentes:

USE DATABASE mydb;
Copy

O exemplo a seguir mostra como comandos que se referem a objetos usando nomes não qualificados produzem saídas diferentes após um comando USE para trocar de bancos de dados. Os esquemas, tabelas, dados de tabela e assim por diante podem diferir de um banco de dados para outro.

Quando o comando SHOW SCHEMAS é executado no contexto de database_one, ele produz uma saída refletindo os objetos nesse banco de dados:

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 |
+-------------------------------+--------------------+
Copy

Depois de um comando USE mudar para o banco de dados database_two, o comando SHOW SCHEMAS produzirá uma saída refletindo um conjunto diferente de objetos:

USE DATABASE database_two;
SHOW SCHEMAS ->> SELECT "created_on", "name" FROM $1 ORDER BY "created_on";
Copy
+-------------------------------+--------------------+
| 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 |
+-------------------------------+--------------------+

O exemplo a seguir muda de um banco de dados para outro e depois de volta ao banco de dados original. O nome do banco de dados original é armazenado em uma variável. Execute os seguintes comandos:

SELECT CURRENT_DATABASE();
SET original_database = (SELECT CURRENT_DATABASE());
USE DATABASE database_two;
SELECT CURRENT_DATABASE();
USE DATABASE IDENTIFIER($original_database);
SELECT CURRENT_DATABASE();
Copy

A saída desses comandos mostra como o valor atual do banco de dados muda:

>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 |
+--------------+