이름 및 식별자 - Amazon Redshift

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

이름 및 식별자

이름은 사용자와 암호 외에도 테이블이나 열 같은 데이터베이스 객체를 식별하는 역할을 합니다. 이름식별자는 서로 통용되는 용어입니다. 식별자는 표준 식별자와 인용 또는 구분 식별자, 2가지 유형이 있습니다. 또한 인쇄 가능한 UTF-8 문자로만 구성되어야 합니다. 표준 및 구분 식별자의 ASCII 문자는 대/소문자를 구분하지 않고 데이터베이스에서 모두 소문자로 변환됩니다. 쿼리 결과에서 열 이름은 기본적으로 소문자로 반환됩니다. 열 이름을 대문자로 반환하려면 describe_field_name_in_uppercase 구성 파라미터를 true로 설정하십시오.

표준 식별자

표준 SQL 식별자는 규칙 집합을 준수하고, 다음과 같이 따라야 합니다.

  • ASCII 단일 바이트 알파벳 문자 또는 밑줄 문자나, 2~4바이트 길이의 UTF-8 멀티바이트 문자로 시작합니다.

  • 후속 문자는 ASCII 단일 바이트 영숫자 문자, 밑줄 또는 달러 기호, 혹은 2~4바이트 길이의 UTF-8 멀티바이트 문자가 될 수 있습니다.

  • 길이는 1~127바이트 사이여야 하며, 구분 식별자에 대한 인용 부호는 포함되지 않습니다.

  • 인용 부호나 공백이 포함되어서는 안 됩니다.

  • 예약된 SQL 키워드가 되어서는 안 됩니다.

구분 식별자

구분 식별자(인용 식별자로도 불림)는 큰 따옴표(")로 시작해서 끝납니다. 구분 식별자를 사용하는 경우에는 해당하는 객체 참조마다 큰 따옴표를 사용해야 합니다. 이 식별자에는 큰 따옴표 외에 인쇄 가능한 표준 UTF-8 문자가 포함될 수 있습니다. 따라서 그 밖에 공백이나 퍼센트 기호 같이 잘못된 문자까지 포함한 열 또는 테이블 이름도 생성할 수 있습니다.

구분 식별자의 ASCII 문자는 대/소문자를 구분하지 않고 모두 소문자로 변환됩니다. 문자열에 큰 따옴표를 사용하려면 다른 큰 따옴표 문자 앞에 입력해야 합니다.

Examples

다음 표에 구분 식별자의 예, 출력 결과 및 설명이 나와 있습니다.

구문 결과 토론
"그룹" 그룹 GROUP은 예약어이므로 식별자 내에서 사용하려면 큰 따옴표가 필요합니다.
"""WHERE""" """WHERE""" WHERE 역시 예약어입니다. 문자열에 인용 부호를 포함하려면 큰 따옴표 문자를 각각 추가 큰 따옴표 문자로 이스케이프합니다.
"This name" this name 공간을 보존하려면 큰 따옴표가 필요합니다.
"This ""IS IT""" this "is it" IS IT을 묶는 인용 부호 앞에는 이름의 일부가 되기 위한 추가 인용 부호가 와야 합니다.

다음은 이 "is it"이라는 열을 포함하여 group이라는 이름의 테이블을 생성하는 예입니다.

create table "group" ( "This ""IS IT""" char(10));

다음은 동일한 결과를 반환하는 쿼리입니다.

select "This ""IS IT""" from "group"; this "is it" -------------- (0 rows)
select "this ""is it""" from "group"; this "is it" -------------- (0 rows)

다음은 동일한 결과를 반환하도록 정규화된 table.column 구문입니다.

select "group"."this ""is it""" from "group"; this "is it" -------------- (0 rows)

다음은 열 이름에 슬래시가 있는 테이블을 생성하는 CREATE TABLE 명령입니다.

create table if not exists city_slash_id( "city/id" integer not null, state char(2) not null);