Articles

int, bigint, smallint, and tinyint (Transact-SQL)

  • 09/08/2017
  • 3 minutes to read
    • M
    • j
    • c
    • M
    • i
    • +8

Applies to: 네SQL 서버(지원되는 모든 버전) 네Azure SQL 데이터베이스네Azure SQL 관리 인스턴스네Azure 냅 분석네병렬 데이터 웨어하우스가

정확한 수는 데이터 형식을 사용하여 정수이다. 데이터베이스의 공간을 절약하려면 가능한 모든 값을 안정적으로 포함 할 수있는 가장 작은 데이터 유형을 사용하십시오. 예를 들어,tinyint 는 255 세 이상으로 사는 사람이 없기 때문에 사람의 나이에 충분할 것입니다. 그러나 tinyint 는 건물이 255 년 이상 될 수 있기 때문에 건물의 나이에 충분하지 않을 것입니다.

Data type Range Storage
bigint -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807) 8 Bytes
int -2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647) 4 Bytes
smallint -2^15 (-32,768) to 2^15-1 (32,767) 2 Bytes
tinyint 0 to 255 1 Byte

비고

int 데이터 유형은 SQL Server 의 기본 정수 데이터 유형입니다. Bigint 데이터 유형은 정수 값이 int 데이터 유형에서 지원하는 범위를 초과할 수 있는 경우에 사용하기 위한 것입니다.

bigint 는 데이터 유형 우선 순위 차트에서 smallmoney 와 int 사이에 적합합니다.

함수는 매개 변수 표현식이 bigint 데이터 형식 인 경우에만 bigint 를 반환합니다. SQL Server 는 다른 정수 데이터 유형(tinyint,smallint 및 int)을 bigint 로 자동 승격시키지 않습니다.

주의

사용할 경우+,-,*,/,또%산자가 수행하는 암시적 또는 명시적으로 변환 int,smallint 백업 에이전트나 복 또는 bigint 일정한 값을 float,real,소수 또는 숫자 데이터 형식을 규정하는 SQL Server 적용을 계산할 때는 데이터 입력 및 정밀도의 식의 결과에 따라 여부를 쿼리가 자동으로 매개 변수가 지정되는 경우 또는하지 않습니다.

따라서 쿼리에서 유사한 표현식이 때때로 다른 결과를 생성 할 수 있습니다. 면 쿼리가 자동으로 매개 변수가 지정되는 경우,상수의 값이 먼저 변환하여 숫자의 정밀도는 단지 저장하기에 충분히 큰 값이 일정하기 전에 변환을 지정한 데이터를 입력합니다. 예를 들어 상수 값 1 은 숫자(1,0)로 변환되고 상수 값 250 은 숫자(3,0)로 변환됩니다.

경우 쿼리가 자동으로 매개 변수가 지정되는 경우는 일정한 값은 항상 변환하여 숫자(10,0)로 변환하기 전에 최종 데이터를 입력합니다. 때/운영자가 참여할 수 있을 뿐만 아니라 그 결과 유형의 정밀도 사이에 차이가 비슷한 쿼리,그 결과 값과 다를 수 있습한다. 예를 들어,결과 값을 자동으로 매개 변수가 지정되는 경우 쿼리를 포함하는 식SELECT CAST (1.0 / 7 AS float),다르에서의 결과 값이 동일한 쿼리하지 않은 자동으로 매개 변수가 지정되는 경우,기 때문에 결과를 자동으로 매개 변수가 지정되는 경우 쿼리가 잘리에 맞게 숫자(10,0)데이터 형식입니다.

변환 정수 데이터

정수가 암시적으로 변환할 문자 데이터 입력,경우 정수가 너무 커서 캐릭터 필드 SQL 서버가 ASCII 문자 42 별표(*).

2,147,483,647 보다 큰 정수 상수는 bigint 데이터 유형이 아닌 10 진수 데이터 유형으로 변환됩니다. 다음 예에서는 임계값을 초과하면 결과의 데이터 유형이 int 에서 10 진수로 변경된다는 것을 보여줍니다.다음은 결과 집합입니다.

Result1 Result2 1073741823 1073741824.500000 

예제

다음 예제에서는 bigint,int,smallint 및 tinyint 데이터 유형을 사용하여 테이블을 만듭니다. 값은 각 열에 삽입되고 SELECT 문에 반환됩니다.다음은 결과 집합입니다.

MyBigIntColumn MyIntColumn MySmallIntColumn MyTinyIntColumn -------------------- ----------- ---------------- --------------- 9223372036854775807 2147483647 32767 255 (1 row(s) affected) 

참조

ALTER TABLE(Transact-SQL)
CAST and CONVERT(Transact-SQL)
CREATE TABLE(Transact-SQL)
DECLARE@local_variable(Transact-SQL)
SET@local_variable(Transact-SQL)
sys.그러나 나는 그것을 할 수 없다.