상수(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System(PDW)

상수는 리터럴 값 또는 스칼라 값이라고도 하며 특정 데이터 값을 나타내는 기호입니다. 상수의 형식은 나타내는 값의 데이터 형식에 따라 다릅니다.

참고 항목

애플리케이션 개발에서 용어 상수와 Transact-SQL(T-SQL)의 상수 개념은 동일하지 않습니다. T-SQL에서 전역 정적 값을 설정하는 구체적인 방법은 없습니다. T-SQL의 상수는 문자열 리터럴 값과 동일합니다.

문자열 상수

문자열 상수는 작은따옴표로 묶고 영숫자 문자(,ZA- 및)와 0-9특수 문자(z-a예: 느낌표(), 기호(!@) 및 숫자 기호(#)를 포함합니다. 문자열 상수에는 현재 데이터베이스의 기본 데이터 정렬이 할당됩니다. COLLATE 절을 사용하는 경우 COLLATE 절에서 지정한 데이터 정렬로 변환하기 전에 데이터베이스 기본 코드 페이지로의 변환이 계속 발생합니다. 사용자가 입력한 문자열은 컴퓨터의 코드 페이지를 통해 평가되고 필요한 경우 데이터베이스 기본 코드 페이지로 변환됩니다.

참고 항목

COLLATE 절을 사용하여 UTF8 사용 데이터 정렬을 지정하는 경우 COLLATE 절에서 지정한 데이터 정렬로 변환하기 전에 데이터베이스 기본 코드 페이지로의 변환이 계속 발생합니다. 지정된 유니코드 사용 데이터 정렬로 직접 변환되지 않습니다. 자세한 내용은 유니코드 문자열을 참조하세요.

연결에 대해 QUOTED_IDENTIFIER 옵션이 OFF로 설정된 경우 문자열을 큰따옴표로 묶을 수도 있지만 Microsoft OLE DB Driver for SQL ServerODBC Driver for SQL Server 는 자동으로 사용합니다 SET QUOTED_IDENTIFIER ON. 작은따옴표를 사용하는 것이 좋습니다.

작은따옴표로 묶인 문자열에 포함된 따옴표가 포함된 경우 포함된 작은따옴표와 작은따옴표 2개를 나타냅니다. 큰따옴표에 포함된 문자열에는 이 값이 필요하지 않습니다.

다음은 문자열의 예입니다.

'Cincinnati'
'O''Brien'
'Process X is 50% complete.'
'The level for job_id: %d should be between %d and %d.'
"O'Brien"

빈 문자열은 사이에 아무 것도 없는 두 개의 작은따옴표로 표시됩니다. 6.x 호환성 모드에서는 빈 문자열이 단일 공백으로 처리됩니다.

문자열 상수는 향상된 데이터 정렬을 지원합니다.

참고 항목

8000바이트보다 큰 문자 상수는 varchar(max) 데이터로 입력됩니다.

유니코드 문자열

유니코드 문자열은 문자열과 비슷한 형식이지만 접두 N 사로 식별자(N은 SQL-92 표준의 국가 언어를 의미합니다)가 있습니다.

Important

접두사는 N 대문자여야 합니다.

예를 들어 'Michél' 문자 상수는 유니코드 상 N'Michél' 수입니다. 유니코드 상수는 유니코드 데이터로 해석되며 코드 페이지를 사용하여 평가되지 않습니다. 유니코드 상수에는 데이터 정렬이 있습니다. 이 데이터 정렬은 주로 비교와 대/소문자 구분을 제어합니다. 유니코드 상수에는 현재 데이터베이스의 기본 데이터 정렬이 할당됩니다. COLLATE 절을 사용하는 경우 COLLATE 절에서 지정한 데이터 정렬로 변환하기 전에 데이터베이스 기본 데이터 정렬로의 변환이 계속 발생합니다. 자세한 내용은 데이터 정렬 및 유니코드 지원을 참조하십시오.

유니코드 문자열 상수는 향상된 데이터 정렬을 지원합니다.

참고 항목

8000바이트보다 큰 유니코드 상수는 nvarchar(max) 데이터로 입력됩니다.

이진 상수

이진 상수는 0x 접미사를 가지며 16진수로 구성된 문자열입니다. 따옴표로 묶이지 않습니다.

다음은 이진 문자열의 예입니다.

0xAE
0x12Ef
0x69048AEFDD010E
0x  (empty binary string)

참고 항목

8000바이트보다 큰 이진 상수는 varbinary(max) 데이터로 입력됩니다.

bit 상수

비트 상수는 숫자 또는 1숫자 0 로 표시되며 따옴표로 묶지 않습니다. 사용되는 것보다 1 큰 숫자가 있으면 .로 변환 1됩니다.

datetime 상수

datetime 상수는 작은따옴표로 묶인 특정 형식의 문자 날짜 값을 사용하여 표시됩니다.

다음은 datetime 상수의 예입니다.

'December 5, 1985'
'5 December, 1985'
'851205'
'12/5/98'

datetime 상수의 예는 다음과 같습니다.

'14:30:24'
'04:24 PM'

integer 상수

정수 상수는 따옴표로 묶지 않고 소수점을 포함하지 않는 숫자 문자열로 표시됩니다. 정수 상수는 정수여야 하며 소수를 포함할 수 없습니다.

다음은 정수 상수의 예입니다.

1894
2

decimal 상수

소수점 상수는 따옴표로 묶지 않고 소수점을 포함하는 숫자 문자열로 표시됩니다.

다음은 10진수 상수의 예입니다.

1894.1204
2.0

floatreal 상수

floatreal 상수는 과학 표기법을 사용하여 표시됩니다.

다음은 float 또는 real 값의 예입니다.

101.5E5
0.5E-2

money 상수

money 상수는 선택적인 소수점과 역시 선택적인 통화 기호 접두사를 포함하는 숫자의 문자열입니다. money 상수는 따옴표로 묶이지 않습니다.

SQL Server는 돈을 나타내는 문자열에서 세 자리마다 쉼표(,)를 삽입하는 것과 같은 그룹화 규칙을 적용하지 않습니다.

참고 항목

쉼표는 money 데이터 형식으로 캐스팅되는 문자열 리터럴의 어느 곳에서나 무시됩니다.

다음은 money 상수의 예입니다.

$12
$542023.14
$-23

uniqueidentifier 상수

uniqueidentifier 상수는 GUID를 나타내는 문자열입니다. 문자 또는 이진 문자열 형식으로 지정할 수 있습니다.

다음 예제에서는 둘 다 동일한 GUID를 지정합니다.

'6F9619FF-8B86-D011-B42D-00C04FC964FF'
0xff19966f868b11d0b42d00c04fc964ff

음수 및 양수 지정

숫자가 양수인지 음수인지를 나타내려면 숫자 상수에 + 단항 연산자를 적용합니다 - . 그러면 부호 있는 숫자 값을 나타내는 숫자 식이 만들어집니다. 숫자 상수는 단 - 항 연산자가 + 적용되지 않을 때 양수로 사용됩니다.

부호 있는 정 수 식:

+145345234
-2147483648

부호 있는 10 진수 식:

+145345234.2234
-2147483648.10

부호 있는 float 식:

+123E-3
-12E5

서명된 금액 식:

-$45.56
+$423456.99

향상된 데이터 정렬

데이터베이스 엔진 향상된 데이터 정렬을 지원하는 문자 및 유니코드 문자열 상수도 지원합니다. 자세한 내용은 COLLATE(Transact-SQL) 절을 참조하세요.