상수(Transact-SQL)

적용 대상: SQL Server Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System(PDW)

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

문자열 상수

문자열 상수는 작은따옴표로 묶이며 영숫자 문자(,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을 사용합니다. 작은따옴표를 사용하는 것이 좋습니다.

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

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

'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 표준의 국가 언어를 의미합니다).

중요

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

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

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

참고

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

이진 상수

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

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

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

참고

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

bit 상수

비트 상수는 숫자 0 또는 1로 표시되며 따옴표로 묶지 않습니다. 보다 1 큰 숫자를 사용하는 경우 로 변환 1됩니다.

datetime 상수

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

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

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

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

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

integer 상수

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

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

1894
2

decimal 상수

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

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

1894.1204
2.0

floatreal 상수

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

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

101.5E5
0.5E-2

money 상수

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

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

참고

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

부호 있는 money 식:

-$45.56
+$423456.99

향상된 데이터 정렬

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

추가 정보