USE SCHEMA
USE SCHEMA
세션의 활성/현재 스키마를 지정하는 명령이에요.
출처: 문서
본문
세션의 활성/현재 스키마를 지정해요:
- 세션에 데이터베이스가 지정되지 않으면, 세션에서 실행되는 쿼리와 다른 SQL 문에서 참조되는 모든 객체는 객체의 데이터베이스와 스키마(네임스페이스라고도 함)로 정규화되어야 해요(db_name.schema_name.object_name 형태). 정규화된 객체 이름에 대한 자세한 내용은 객체 이름 해석(Object name resolution)을 참고해요.
- 세션에 데이터베이스가 지정되었지만 스키마가 지정되지 않으면, 세션에서 실행되는 쿼리와 다른 SQL 문에서 참조되는 모든 객체는 객체의 스키마로 정규화되어야 해요(schema_name.object_name 형태).
- 사용자 세션에 데이터베이스와 스키마가 모두 지정되면, SQL 문과 쿼리에서 정규화되지 않은 객체 이름이 허용돼요.
구문
USE [ SCHEMA ] [<db_name>.]<name>
매개변수
[db_name.]name
세션에서 사용할 스키마의 식별자를 지정해요. 식별자에 공백이나 특수 문자가 포함되면 전체 문자열을 큰따옴표로 묶어야 해요. 큰따옴표로 묶은 식별자는 대소문자를 구분해요.
SCHEMA 키워드는 스키마 이름이 정규화된 경우(db_name.schema_name 형태) 선택 사항이에요. 데이터베이스 이름(db_name)은 사용자 세션에 데이터베이스가 지정되고 SCHEMA 키워드가 포함된 경우 선택 사항이에요.
예제
사용자 세션에 지정된 데이터베이스와 함께 myschema 스키마 사용:
USE SCHEMA myschema;
mydb 데이터베이스에서 myschema 스키마 사용:
USE mydb.myschema;
다음 예제는 정규화되지 않은 이름으로 객체를 참조하는 명령이 USE 명령으로 스키마를 전환한 후 다른 출력을 만들어 내는 방법을 보여 줘요. 테이블, 테이블 데이터, 뷰, 사용자 정의 함수 등은 스키마마다 다를 수 있어요.
schema_one 컨텍스트에서 SHOW TABLES 명령을 실행하면 그 스키마의 객체를 반영한 출력이 생성돼요:
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 |
+------------+
더 알아보기 (Learn more)
- See also: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, SHOW SCHEMAS