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

매개 변수

name

세션에 사용할 데이터베이스의 식별자를 지정합니다. 식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

사용법 노트

  • DATABASE 키워드를 지정할 필요가 없습니다.

  • PUBLIC 스키마가 존재하지 않는 한(예: 삭제된 경우), USE DATABASE는 PUBLIC을 현재 스키마로 자동으로 지정합니다. 세션에 대해 다른 스키마를 지정하려면 USE SCHEMA 명령을 사용하십시오.

다음 예제에서는 후속 SQL 명령에 사용할 데이터베이스를 지정합니다.

USE DATABASE mydb;
Copy

다음 예제에서는 정규화되지 않은 이름을 사용하여 오브젝트를 참조하는 명령이 데이터베이스를 전환하기 위한 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 |
+-------------------------------+--------------------+
Copy

USE 명령이 database_two 데이터베이스로 전환된 후에 SHOW SCHEMAS 명령은 다른 오브젝트 세트를 반영하는 출력을 생성합니다.

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

다음 예제에서는 한 데이터베이스에서 다른 데이터베이스로 변경한 다음, 다시 원래 스키마로 변경합니다. 원래 데이터베이스의 이름은 변수에 저장됩니다. 그러면 다음 명령을 실행하십시오.

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

이러한 명령의 출력은 현재 데이터베이스 값이 어떻게 변경되는지 보여줍니다.

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