:meta-keywords: cubrid identifier guideline, cubrid legal identifier, database identifier :meta-description: CUBRID Identifiers can be table names, index names, view names, column names, user names etc. ****** 식별자 ****** 식별자 작성 원칙 ================ 테이블 이름, 인덱스 이름, 뷰 이름, 칼럼 이름, 사용자 이름 등이 식별자에 해당한다. 식별자는 다음의 원칙에 따라 작성해야 한다. * 반드시 문자로 시작되어야 한다. 즉, 숫자나 기호로 시작할 수 없다. * 대소문자를 구별하지 않는다. * :doc:`keyword`\ 는 허용되지 않는다. .. productionlist:: 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 허용되는 식별자 ================ .. rubric:: 문자로 시작되는 식별자 식별자의 첫 글자에는 반드시 문자를 사용해야 하며, 연산자로 사용되는 특수 문자를 제외한 나머지 특수 문자를 포함할 수 있다. 다음은 허용되는 식별자의 예제이다. :: a a_b ssn# this_is_an_example_# .. rubric:: 큰따옴표, 대괄호, 백틱 부호로 둘러싸인 식별자 허용되지 않는 식별자 또는 예약어에 해당하더라도, 큰따옴표(" ")나 대괄호([ ]) 또는 백틱 부호(\` \`)로 식별자를 둘러싸면 예외적으로 허용된다. 큰따옴표는 질의 관련 파라미터인 **ansi_quotes**\ 가 yes일 때에만 식별자를 감싸는 부호로 사용할 수 있고, 이 값이 no이면 문자열을 감싸는 부호로 사용한다. **ansi_quotes**\ 의 기본값은 yes이다. 다음은 허용되는 식별자의 예제이다. :: "select" "@lowcost" "low cost" "abc""def" [position] .. note:: 10.0 버전부터는 예약어로 된 칼럼 이름이 "테이블 이름 (또는 별칭)."과 같이 사용되는 경우, 칼럼 이름을 겹따옴표로 감싸지 않아도 된다. .. code-block:: sql CREATE TABLE tbl ("int" int, "double" double); SELECT t.int FROM tbl t; 위의 SELECT 질의문에서 "int"가 "t."과 함께 쓰인 칼럼 이름이다. 허용되지 않는 식별자 ==================== .. rubric:: 특수 문자나 숫자로 시작되는 식별자 다음과 같이 언더바(_), #을 제외한 특수 문자, 숫자로 시작되는 식별자는 허용되지 않는다. :: _a #ack %nums 2fer 88abs .. rubric:: 공백을 포함하는 식별자 다음과 같이 중간에 공백을 포함하는 식별자는 허용되지 않는다. :: col1 t1 .. rubric:: 연산자로 사용하는 특수 문자를 포함하는 식별자 다음과 같이 연산자로 사용되는 특수 문자(+, -, \*, /, %, ||, !, <, >, =, \|, ^, &, ~)를 포함하는 식별자는 허용되지 않는다. :: 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 | +-----------------------+------------------------+ .. note:: 기본 키(pk__), 외래 키(fk__)의 이름 등 자동으로 생성되는 제약조건(constraint) 이름도 식별자의 최대 길이인 254바이트를 넘을 수 없다.