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 키워드를 지정할 필요가 없습니다.
PUBLIC 스키마가 존재하지 않는 한(예: 삭제된 경우), USE DATABASE는 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 |
+--------------+