상수
상수( 리터럴이라고도 함)는 값을 지정합니다. 상수는 문자열 상수 또는 숫자 상수로 분류됩니다. 숫자 상수는 정수, 부동 소수점 또는 10진수로 세분화됩니다.
모든 상수는 NOT NULL 속성을 갖습니다.
숫자 상수의 음수 영(0) 값은 부호가 없는 영(0)과 같은 값입니다.
SELECT * FROM CAMP_DB_ROSTER
WHERE AGE > CAST(14 AS YOUTH)
SELECT * FROM CAMP_DB_ROSTER
WHERE CAST(AGE AS INTEGER) > 14
SELECT * FROM CAMP_DB_ROSTER
WHERE AGE > 14
정수 상수
정수 상수는 정수를 소수점이 없는 최대 19자리의 부호 있는 또는 부호 없는 숫자로 지정합니다. 해당 값이 큰 정수 범위에 포함되는 경우 정수 상수의 데이터 유형은 큰 정수입니다. 해당 값이 큰 정수 범위 밖이지만 대형 정수 범위 내에 있는 경우 정수 상수의 데이터 유형은 큰 정수입니다. 대형 정수값 범위 외부에서 정의되는 상수는 10진수 상수로 간주됩니다.
큰 정수 상수의 가장 작은 리터럴 표시는 정수값의 한계인 -2,147,483,648이 아닌 -2,147,483,647입니다. 마찬가지로, 큰 정수 상수의 가장 작은 리터럴 표시는 큰 정수값의 한계인 -9,223,372,036,854,775,808이 아닌 -9,223,372,036,854,775,807입니다.
64 -15 +100 32767 720176 12345678901
구문 다이어그램에서 정수
라는 용어는 부호를 포함할 수 없는 큰 정수 상수에
사용됩니다.
부동 소수점 상수
부동 소수점 상수는 부동 소수점 숫자를 E로 구분되는 두 개 숫자로 지정합니다. 첫 번째 숫자에는 부호와 소수점이 포함될 수 있고 두 번째 숫자에는 부호는 포함되지만 소수점은 포함되지 않습니다. 부동 소수점 상수의 데이터 유형은 배정밀도입니다. 상수의 값은 첫 번째 숫자와 두 번째 숫자로 지정된 거듭제곱 10의 곱입니다. 이 값은 부동 소수점 숫자 범위 내에 속해야 합니다. 상수의 바이트 수는 30을 초과할 수 없습니다.
15E1 2.E5 2.2E-1 +5.E+2
10진수 상수
10진수 상수는 최대 31 자릿수로 구성되고 소수점을 포함하거나 2진 정수 범위에 속하지 않는 부호 있는 숫자 또는 부호 없는 숫자입니다. 이 상수는 10진수 범위 내에 있어야 합니다. 정밀도는 총 자릿수(선행 및 후행 영(0) 포함)이고 스케일은 소수점 오른쪽의 자릿수(후행 영(0) 포함)입니다.
25.5 1000. -15. +37589.3333333333
10진수 부동 소수점 상수
DECFLOAT(34)로 해석되는 10진수 부동 소수점 특수 값을 제외하고는 10진수 부동 소수점 상수가 없습니다.
SNAN -INFINITY
CAST ('snan' AS DECFLOAT)
CAST ('INF' AS DECFLOAT)
CAST ('Nan' AS DECFLOAT)
모든 일반 값은 이전에 지정된 규칙에 따라 정수, 부동 소수점 또는 10진수 상수로 해석됩니다. 숫자 10진수 부동 소수점 값을 얻으려면 문자열 상수와 함께 DECFLOAT 캐스트 함수를 사용합니다. 부동 소수점은 정확하지 않아 결과 10진수 부동 소수점 값이 인수를 구성하는 10진수 문자와 다를 수 있으므로 DECFLOAT 함수에 대한 인수로 부동 소수점 상수를 사용하는 것은 권장되지 않습니다. 대신 DECFLOAT 함수에 대한 인수로 문자 상수를 사용합니다.
예를 들어, DECFLOAT('6.0221415E23', 34)는 10진수 부동 소수점 값 6.0221415E+23을 리턴하지만 DECFLOAT(6.0221415E23, 34)는 10진수 부동 소수점 값 6.0221415000000003E+23을 리턴합니다.
문자열 상수
- 아포스트로피(') 문자열 구분 기호로 시작, 종료되는 문자 시퀀스. 문자열 구분 기호 사이의 바이트 수는 32672보다 클 수 없습니다. 환경 문자열 단위가 CODEUNITS32인 경우 코드 단위 수는 8168보다 클 수 없습니다. 문자열 내에서 하나의 문자열 구분 기호를 나타내기 위해 두 개의 연속 문자열 구분 기호가 사용됩니다. 문자열 내부에 포함되지 않는 두 개의 연속 문자열 구분 기호는 비어 있는 문자열을 나타냅니다.
- X와 문자열 구분 기호로 시작, 종료되는 그 뒤의 문자열 시퀀스. 문자열 상수의 이 양식은 16진수 상수라고도 합니다. 문자열 구분 기호 사이의 문자는 짝수 자릿수의 16진수입니다. 문자열 구분 기호 사이의 공백은 무시됩니다. 16진수의 자릿수는 32672를 초과할 수 없습니다. 환경 문자열 단위가 CODEUNITS32인 경우 16진 상수가 나타내는 코드 단위 수는 8168보다 클 수 없습니다. 문자열 내에서 하나의 문자열 구분 기호를 나타내기 위해 두 개의 연속 문자열 구분 기호가 사용됩니다. 16진수 숫자는 0 - 9 범위의 숫자 또는 A - F(대문자 또는 소문자) 범위의 문자입니다. 16진수 표기 규칙에 따라 16진수의 각 쌍은 문자를 나타냅니다. 문자열 상수의 이 양식을 사용하면 키보드 표시가 없는 문자열을 지정할 수 있습니다.
- U&와 문자열 구분 기호로 시작,
종료되는 선택적으로 UESCAPE절이 오는 그 뒤의 문자열
시퀀스. 문자열 상수의 이 양식은 유니코드 문자열
상수라고도 합니다. 문자열 구분 기호 사이의 바이트 수는
32672보다 클 수 없습니다. 환경 문자열 단위가 CODEUNITS32인 경우
유니코드 문자열 상수가 나타내는 코드 단위 수는 8168보다 클 수 없습니다. 유니코드
문자열 상수는 명령문 컴파일 과정에서 UTF-8에서 섹션 코드
페이지로 변환됩니다. 문자열 내에서 하나의 문자열 구분
기호를 나타내기 위해 두 개의 연속 문자열 구분 기호가 사용됩니다.
문자열 내에서 하나의 유니코드 Escape 문자를
나타내기 위해 두 개의 연속 유니코드 Escape 문자가
사용되지만 이러한 문자는 문자 상수의 길이를 계산할 때 단일
문자로 카운트됩니다. 문자열 내부에 포함되지 않는 두 개의
연속 문자열 구분 기호는 비어 있는 문자열을 나타냅니다. UTF-8의 문자 범위는 1바이트에서 4바이트까지이므로
최대 길이의 유니코드 문자열 상수는 실제로 32672자보다 적은 문자를
나타낼 수 있습니다.
문자열은 해당 인쇄 문자(glyph) 또는 해당 유니코드 코드 포인트로 표시될 수 있습니다. 유니코드 문자의 코드 포인트 범위는 X'000000'에서 X'10FFFF'까지입니다. 유니코드 문자를 해당 코드 포인트까지 표시하려면 유니코드 Escape 문자와 그 뒤의 4자리 16진수를 사용하거나 유니코드 Escape 문자와 그 뒤의 플러스 부호(+)와 6자리 16진수를 사용합니다. 기본 유니코드 Escape 문자는 역방향 사선(\)이지만 UESCAPE절을 사용하여 다른 문자가 지정될 수 있습니다. UESCAPE 절은 UESCAPE 키워드와 그 뒤의 문자열 구분 기호 사이의 단일 문자로 지정됩니다. 유니코드 Escape 문자는 플러스 부호(+), 큰따옴표("), 작은따옴표('), 공백이나 0 - 9 범위 또는 A - F 범위의 문자(대문자 또는 소문자)가 될 수 없습니다(SQLSTATE 42604). 라틴어 대문자 A가 유니코드 코드 포인트로 지정될 수 있는 두 가지 방법의 한 예는 \0041 및 \+000041입니다.
상수 값은 데이터베이스에 바인드될 때 항상 데이터베이스 코드 페이지로 변환됩니다. 이 값은 데이터베이스 코드 페이지에 있는 것으로 간주됩니다. 따라서 상수를 FOR BIT DATA 컬럼과 결합하고 결과가 FOR BIT DATA인 표현식에서 사용되는 상수 값은 사용 시 데이터베이스 코드 페이지 표시에서 변환되지 않습니다.
'12/14/1985' '32' 'DON''T CHANGE' ''
X'FFFF' X'46 72 61 6E 6B'
U&'\0141ód\017A is a city in Poland' U&'c:\\temp' U&'@+01D11E' UESCAPE '@'
예의
두 번째 라인에서 가장 오른쪽에 있는 문자열은 ASCII 문자열 Frank의 VARCHAR 패턴을 나타냅니다. 마지막 라인은
Łódź is a city in Poland, c:\temp 및 음악 기호 G 음자리표를 나타내는 단일 문자에 해당합니다.
그래픽 문자열 상수
- 비유니코드 데이터베이스
- 비유니코드 데이터베이스의 경우, 그래픽 문자열 상수는
1바이트 어포스트로피(')로 시작되고 끝나며 1바이트 G 또는 N이 앞에 오는 2바이트 문자 시퀀스로
구성됩니다. 어포스트로피 사이의 문자는 짝수 바이트를 나타내야 하며 그래픽 문자열의 길이는
16336 2바이트를 초과해서는 안됩니다. 아포스트로피는 구분 기호로 간주될
MBCS 문자의 일부로 나타나서는 안됩니다. 예를 들어, 다음과 같습니다.
G'double-byte character string' N'double-byte character string' - 유니코드 데이터베이스
- 유니코드 데이터베이스의 경우, 그래픽 문자열 상수는 아포스트로피(')로 시작되고 끝나며 문자 G 또는 N이 앞에 오는 문자 시퀀스로 구성됩니다. 상수 값 문자열 단위는 환경 기본 문자열 단위로 판별됩니다. 어포스트로피 사이의 문자는 코드 페이지 1200으로 변환되며 그래픽 문자열의 길이가 16336 2바이트를 초과할 수 없습니다. 환경 문자열 단위가 CODEUNITS32인 경우 코드 단위 수가 8168을 초과할 수 없습니다.
유니코드 데이터베이스의 경우 가변 길이 그래픽 문자열을 지정하는 16진수 그래픽 문자열 상수도 지원됩니다. 16진수 그래픽 문자열 상수의 형식은 GX와 그 뒤의 아포스트로피로 시작, 종료되는 문자열 시퀀스입니다. 아포스트로피 사이의 문자는 4자리 16진수의 배수여야 합니다. 16진수 자릿수는 32672를 초과해서는 안됩니다. 환경 문자열 단위가 CODEUNITS32이면 16진수 그래픽 문자열 상수가 나타내는 코드 단위의 수가 8168을 초과해서는 안됩니다. 그렇지 않으면 오류가 리턴됩니다(SQLSTATE 54002). 16진수 그래픽 문자열 상수의 형식이 올바르지 않으면 오류가 리턴됩니다(SQLSTATE 42606). 4자릿수의 각 그룹은 단일 그래픽 문자를 나타냅니다. 유니코드 데이터베이스에서는 단일 UCS-2 그래픽 문자입니다.
GX'FFFF'
유니코드
데이터베이스에서 비트 패턴 '1111111111111111'을 나타냅니다. GX'005200690063006B'
유니코드 데이터베이스에서 ASCII 문자열
Rick의 VARGRAPHIC 패턴을 나타냅니다.
2진 문자열 상수
2진 문자열 상수는 유형 VARBINARY의 가변 길이 2진 문자열을 지정합니다.
2진 문자열 상수는 BX와 그 뒤에 문자열 구분 기호로 시작되고 종료되는 문자 시퀀스를 지정하여 구성됩니다. 문자열 구분 기호 사이의 문자는 짝수 자릿수의 16진수입니다. 16진수의 자릿수는 32672를 초과할 수 없습니다.
16진수 숫자는 숫자 0 - 9이거나 문자 A - F(대문자 또는 소문자)입니다. 16진수 표기법의 규칙에서 16진수 숫자의 각 쌍은 1바이트를 나타냅니다. 이 표시는 X'' 양식을 사용하는 문자 상수의 표시와 비슷합니다. 그러나 2진 문자열 상수와 문자열 상수는 호환 가능하지 않으며 BX'' 양식을 사용하여 문자열 상수를 지정할 수 없는 것처럼 X'' 양식을 사용하여 2진 문자열 상수를 지정할 수 없습니다.
BX'0000'
BX'C141C242'
BX'FF00FF01FF'
날짜 및 시간 상수
날짜 및 시간 상수는 날짜, 시간 또는 시간소인을 지정합니다.
- DATE 'yyyy-mm-dd'
- 값의 데이터 유형은 DATE입니다.
- TIME 'hh:mm:ss'
- 또는
- TIME 'hh:mm'
- 값의 데이터 유형은 TIME입니다.
- TIMESTAMP 'yyyy-mm-dd hh:mm:ss.nnnnnnnnnnnn'
- 또는
- TIMESTAMP 'yyyy-mm-dd-hh.mm.ss.nnnnnnnnnnnn'
- 여기서 소수 초의 자릿수는 0에서 12까지 다를 수 있으며 소수 초 부분이 없으면 마침표 문자가 생략될 수 있습니다. 값의 데이터 유형은 TIMESTAMP(p)입니다. 여기서 p는 소수 초의 자릿수입니다.
UCS-2 그래픽 문자열 상수
유니코드 데이터베이스의 경우 가변 길이 UCS-2 그래픽 문자열 상수를 지원하는 16진수 UCS-2 그래픽 문자열이 지원됩니다. 16진수 UCS-2 그래픽 문자열 상수의 형식은 UX와 그 뒤의 아포스트로피로 시작, 종료되는 문자열 시퀀스입니다. 아포스트로피 사이의 문자는 4자리 16진수의 배수여야 합니다. 16진수의 자릿수는 16336을 초과할 수 없습니다. 그렇지 않으면 오류가 리턴됩니다(SQLSTATE 54002). 16진수 UCS-2 그래픽 문자열 상수의 형식이 올바르지 않으면 오류가 리턴됩니다(SQLSTATE 42606). 4자릿수의 각 그룹은 단일 UCS-2 그래픽 문자를 나타냅니다.
UX'0042006F006200620079'
ASCII 문자열 Bobby의 VARGRAPHIC 패턴을 나타냅니다.
부울 상수
부울 상수는 해당 진리값을 나타내는 키워드 TRUE 또는 FALSE를 지정합니다. 알 수 없는 진리값은 CAST(NULL AS BOOLEAN)를 사용하여 지정할 수 있습니다.