USE SCHEMA

세션의 활성/현재 스키마를 지정합니다.

  • 세션에 대해 데이터베이스가 지정되지 않은 경우 세션에서 실행되는 쿼리와 기타 SQL 문에서 참조되는 모든 오브젝트는 (db_name.schema_name.object_name 의 형식으로) 오브젝트의 네임스페이스 라고도 알려진 데이터베이스와 스키마로 정규화되어야 합니다. 정규화된 오브젝트 이름에 대한 자세한 내용은 오브젝트 이름 확인 을 참조하십시오.

  • 세션에 대해 데이터베이스가 지정되었지만 세션에 대한 스키마는 지정되지 않은 경우, 세션에서 실행되는 쿼리나 기타 SQL 문에서 참조되는 모든 오브젝트는 오브젝트의 스키마(schema_name.object_name 형식)로 정규화되어야 합니다.

  • 사용자 세션에 대해 데이터베이스와 스키마가 지정된 경우 SQL 문과 쿼리에서 정규화되지 않은 오브젝트 이름이 허용됩니다.

참고 항목:

CREATE SCHEMA , ALTER SCHEMA , DROP SCHEMA , SHOW SCHEMAS

구문

USE [ SCHEMA ] [<db_name>.]<name>
Copy

매개 변수

[db_name.]name

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

스키마 이름이 (db_name.schema_name 형식으로) 정규화된 경우 SCHEMA 키워드는 선택 사항입니다.

데이터베이스가 사용자 세션에 지정되고 SCHEMA 키워드가 포함된 경우 데이터베이스 이름(db_name)은 선택 사항입니다.

사용자 세션에 지정된 데이터베이스와 함께 myschema 스키마를 사용합니다.

USE SCHEMA myschema;
Copy

mydb 데이터베이스에서 myschema 스키마를 사용합니다.

USE mydb.myschema;
Copy

다음 예제에서는 정규화되지 않은 이름을 사용하여 오브젝트를 참조하는 명령이 스키마를 전환하기 위한 USE 명령 이후에 어떻게 다른 출력 결과를 생성하는지를 보여줍니다. 테이블, 테이블 데이터, 뷰, 사용자 정의 함수 등은 스키마마다 다를 수 있습니다.

SHOWTABLES 명령은 schema_one 컨텍스트에서 실행될 때 해당 스키마의 오브젝트를 반영하는 출력을 생성합니다.

USE SCHEMA schema_one;
SHOW TABLES ->> SELECT "created_on", "name" FROM $1 ORDER BY "created_on";
Copy
+-------------------------------+-----------+
| created_on                    | name      |
|-------------------------------+-----------|
| 2025-07-13 23:48:49.129 -0700 | TABLE_ABC |
| 2025-07-13 23:49:50.329 -0700 | TABLE_DEF |
+-------------------------------+-----------+

USE 명령이 schema_two 스키마로 전환된 후에 SHOW TABLES 명령은 다른 오브젝트 세트를 반영하는 출력을 생성합니다.

USE SCHEMA schema_two;
SHOW TABLES ->> SELECT "created_on", "name" FROM $1 ORDER BY "created_on";
Copy
+-------------------------------+-----------+
| created_on                    | name      |
|-------------------------------+-----------|
| 2025-07-13 23:52:06.144 -0700 | TABLE_IJK |
| 2025-07-13 23:53:29.851 -0700 | TABLE_XYZ |
+-------------------------------+-----------+

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

SELECT CURRENT_SCHEMA();
SET original_schema = (SELECT CURRENT_SCHEMA());
USE SCHEMA schema_two;
SELECT CURRENT_SCHEMA();
USE SCHEMA IDENTIFIER($original_schema);
SELECT CURRENT_SCHEMA();
Copy

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

>SELECT CURRENT_SCHEMA();
+------------+
| SCHEMA_ONE |
+------------+

>SET original_schema = (SELECT CURRENT_SCHEMA());

>USE SCHEMA schema_two;
>SELECT CURRENT_SCHEMA();
+------------+
| SCHEMA_TWO |
+------------+

>USE SCHEMA IDENTIFIER($original_schema);
>SELECT CURRENT_SCHEMA();
+------------+
| SCHEMA_ONE |
+------------+