식별자

식별자 작성 원칙

테이블 이름, 인덱스 이름, 뷰 이름, 칼럼 이름, 사용자 이름 등이 식별자에 해당한다. 식별자는 다음의 원칙에 따라 작성해야 한다.

  • 반드시 문자로 시작되어야 한다. 즉, 숫자나 기호로 시작할 수 없다.
  • 대소문자를 구별하지 않는다.
  • 예약어는 허용되지 않는다.
identifier        ::=  identifier_letter [ { other_identifier }; ]
identifier_letter ::=  upper_case_letter | lower_case_letter
other_identifier  ::=  identifier_letter | digit | _ | #
digit             ::=  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
upper_case_letter ::=  A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P| Q | R | S | T | U | V | W | X | Y | Z
lower_case_letter ::=  a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p| q | r | s | t | u | v | w | x | y | z

허용되는 식별자

문자로 시작되는 식별자

식별자의 첫 글자에는 반드시 문자를 사용해야 하며, 연산자로 사용되는 특수 문자를 제외한 나머지 특수 문자를 포함할 수 있다. 다음은 허용되는 식별자의 예제이다.

a
a_b
ssn#
this_is_an_example_#

큰따옴표, 대괄호, 백틱 부호로 둘러싸인 식별자

허용되지 않는 식별자 또는 예약어에 해당하더라도, 큰따옴표(" ")나 대괄호([ ]) 또는 백틱 부호(` `)로 식별자를 둘러싸면 예외적으로 허용된다. 큰따옴표는 질의 관련 파라미터인 ansi_quotes가 yes일 때에만 식별자를 감싸는 부호로 사용할 수 있고, 이 값이 no이면 문자열을 감싸는 부호로 사용한다. ansi_quotes의 기본값은 yes이다. 다음은 허용되는 식별자의 예제이다.

"select"
"@lowcost"
"low cost"
"abc""def"
[position]

허용되지 않는 식별자

특수 문자나 숫자로 시작되는 식별자

다음과 같이 언더바(_), #을 제외한 특수 문자, 숫자로 시작되는 식별자는 허용되지 않는다.

_a
#ack
%nums
2fer
88abs

공백을 포함하는 식별자

다음과 같이 중간에 공백을 포함하는 식별자는 허용되지 않는다.

col1 t1

연산자로 사용하는 특수 문자를 포함하는 식별자

다음과 같이 연산자로 사용되는 특수 문자(+, -, *, /, %, ||, !, <, >, =, |, ^, &, ~)를 포함하는 식별자는 허용되지 않는다.

col+
col~
col&&

식별자 이름의 최대 길이

다음은 각 식별자 이름으로 허용되는 최대 바이트 길이를 정리한 표이다. 단위는 바이트 길이이며, 사용하는 문자셋에 따라 문자 수와 바이트 길이는 다를 수 있음에 주의한다. (예를 들어, UTF-8 문자셋에서 한글 한 글자는 3바이트의 바이트 길이이다.)

식별자 최대 바이트 길이
Database 17
Table 254
Column 254
Index 254
Constraint 254
Java Stored Procedure 254
Trigger 254
View 254
Serial 254