이 글에서는 SQL Server의 DATALENGTH 함수를 활용하여 표현식(expression)을 저장·표현하는 데 실제로 사용되는 바이트 수를 확인하는 방법을 자세히 알아봅니다.
설명
DATALENGTH 함수는 SQL Server에서 지정된 표현식의 길이를 바이트(byte) 단위로 반환하는 함수입니다.
문법
SQL Server에서 DATALENGTH 함수를 사용하려면 다음과 같은 문법을 따릅니다.
DATALENGTH(expression)
매개변수 :
- expression: 바이트 단위로 길이를 확인하고자 하는 데이터입니다. 표현식이 NULL이면 DATALENGTH 함수 역시 NULL을 반환합니다.
참고 사항 :
- DATALENGTH 함수는 문자열의 앞쪽 공백과 뒤쪽 공백을 모두 포함하여 길이를 계산합니다.
- 표현식이 NULL일 경우 DATALENGTH 함수는 NULL을 반환합니다.
- 공백을 포함하지 않는 순수 문자열 길이를 구하려면 LEN 함수를 함께 참고하세요.
- DATALENGTH 함수는 SQL Server 2005, 2008, 2008 R2, 2012, 2014, 2016, 2017 등 그 이후 버전에서 모두 사용할 수 있습니다.
예제
다양한 예제를 통해 DATALENGTH 함수가 실제로 어떻게 동작하는지 확인해 보겠습니다.
SELECT DATALENGTH('TipsMake.com');
-- Result: 12
SELECT DATALENGTH(' TipsMake.com ');
-- Result: 14 (앞뒤 공백 포함)
SELECT DATALENGTH(1234);
-- Result: 4
SELECT DATALENGTH('20-02-2019');
-- Result: 10
SELECT DATALENGTH(' ');
-- Result: 1
SELECT DATALENGTH('');
-- Result: 0
SELECT DATALENGTH(NULL);
-- Result: NULL
위 예제에서 볼 수 있듯이, 공백이 추가되면 그만큼 결과 값도 증가합니다. 특히 DATALENGTH 함수와 유사해 보이지만 동작 방식이 다른 LEN 함수와의 차이를 기억해 두는 것이 중요합니다. LEN 함수는 뒤쪽 공백을 무시하고 문자 수를 반환하는 반면, DATALENGTH 함수는 공백을 포함한 실제 저장 바이트 수를 반환하므로, 컬럼의 물리적 크기를 분석할 때 유용하게 활용할 수 있습니다.