USE SCHEMA¶
세션의 활성/현재 스키마를 지정합니다.
세션에 대해 데이터베이스가 지정되지 않은 경우 세션에서 실행되는 쿼리와 기타 SQL 문에서 참조되는 모든 오브젝트는 (
db_name.schema_name.object_name
의 형식으로) 오브젝트의 네임스페이스 라고도 알려진 데이터베이스와 스키마로 정규화되어야 합니다. 정규화된 오브젝트 이름에 대한 자세한 내용은 오브젝트 이름 확인 을 참조하십시오.세션에 대해 데이터베이스가 지정되었지만 세션에 대한 스키마는 지정되지 않은 경우, 세션에서 실행되는 쿼리나 기타 SQL 문에서 참조되는 모든 오브젝트는 오브젝트의 스키마(
schema_name.object_name
형식)로 정규화되어야 합니다.사용자 세션에 대해 데이터베이스와 스키마가 지정된 경우 SQL 문과 쿼리에서 정규화되지 않은 오브젝트 이름이 허용됩니다.
- 참고 항목:
구문¶
USE [ SCHEMA ] [<db_name>.]<name>
매개 변수¶
[db_name.]name
세션에 사용할 스키마의 식별자를 지정합니다. 식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.
스키마 이름이 (
db_name.schema_name
형식으로) 정규화된 경우 SCHEMA 키워드는 선택 사항입니다.데이터베이스가 사용자 세션에 지정되고 SCHEMA 키워드가 포함된 경우 데이터베이스 이름(
db_name
)은 선택 사항입니다.
예¶
사용자 세션에 지정된 데이터베이스와 함께 myschema
스키마를 사용합니다.
USE SCHEMA myschema;
mydb
데이터베이스에서 myschema
스키마를 사용합니다.
USE mydb.myschema;
다음 예제에서는 정규화되지 않은 이름을 사용하여 오브젝트를 참조하는 명령이 스키마를 전환하기 위한 USE 명령 이후에 어떻게 다른 출력 결과를 생성하는지를 보여줍니다. 테이블, 테이블 데이터, 뷰, 사용자 정의 함수 등은 스키마마다 다를 수 있습니다.
SHOWTABLES 명령은 schema_one
컨텍스트에서 실행될 때 해당 스키마의 오브젝트를 반영하는 출력을 생성합니다.
USE SCHEMA schema_one;
SHOW TABLES ->> SELECT "created_on", "name" FROM $1 ORDER BY "created_on";
+-------------------------------+-----------+
| 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";
+-------------------------------+-----------+
| 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();
이러한 명령의 출력은 현재 스키마 값이 어떻게 변경되는지 보여줍니다.
>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 |
+------------+