USE DATABASE

USE DATABASE

세션의 활성/현재 데이터베이스를 지정하는 명령이에요.

출처: 문서

본문

세션의 활성/현재 데이터베이스를 지정해요:

  • 세션에 데이터베이스가 지정되지 않으면, 세션에서 실행되는 쿼리와 다른 SQL 문에서 참조되는 모든 객체는 객체의 데이터베이스와 스키마(네임스페이스라고도 함)로 정규화되어야 해요(db_name.schema_name.object_name 형태). 정규화된 객체 이름에 대한 자세한 내용은 객체 이름 해석(Object name resolution)을 참고해요.
  • 세션에 데이터베이스가 지정되었지만 스키마가 지정되지 않으면, 세션에서 실행되는 쿼리와 다른 SQL 문에서 참조되는 모든 객체는 객체의 스키마로 정규화되어야 해요(schema_name.object_name 형태).
  • 사용자 세션에 데이터베이스와 스키마가 모두 지정되면, SQL 문과 쿼리에서 정규화되지 않은 객체 이름이 허용돼요.

구문

USE [ DATABASE ] <name>

매개변수

name

세션에서 사용할 데이터베이스의 식별자를 지정해요. 식별자에 공백이나 특수 문자가 포함되면 전체 문자열을 큰따옴표로 묶어야 해요. 큰따옴표로 묶은 식별자는 대소문자를 구분해요.

사용 메모

  • DATABASE 키워드는 지정하지 않아도 돼요.
  • USE DATABASE는 PUBLIC 스키마가 존재하지 않는 경우(예: 드롭된 경우)를 제외하고 자동으로 PUBLIC을 현재 스키마로 지정해요. 세션에 다른 스키마를 지정하려면 USE SCHEMA 명령을 사용해요.

예제

다음 예제는 이후 SQL 명령에 사용할 데이터베이스를 지정해요:

USE DATABASE mydb;

다음 예제는 정규화되지 않은 이름으로 객체를 참조하는 명령이 USE 명령으로 데이터베이스를 전환한 후 다른 출력을 만들어 내는 방법을 보여 줘요. 스키마, 테이블, 테이블 데이터 등은 데이터베이스마다 다를 수 있어요.

database_one 컨텍스트에서 SHOW SCHEMAS 명령을 실행하면 그 데이터베이스의 객체를 반영한 출력이 생성돼요:

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

더 알아보기 (Learn more)