데이터 유형 지정

개요

오라클 데이터베이스를 사용하는 애플리케이션 개발자라면 SQL 데이터 유형을 올바르게 선택하는 것이 데이터 무결성, 저장 공간 효율성 및 쿼리 성능에 큰 영향을 미친다는 것을 알아야 합니다. 이 글에서는 Oracle 데이터베이스에서 다양한 SQL 데이터 유형을 효과적으로 활용하고 데이터베이스 애플리케이션의 성능을 최적화하는 방법을 자세히 설명합니다.

SQL 데이터 유형 선택 시 고려 사항

다음은 SQL 데이터 유형을 선택할 때 고려해야 할 주요 사항입니다.

  • 데이터 무결성: 올바른 데이터 유형을 사용하면 데이터베이스에서 데이터 유효성 검사를 수행하여 잘못된 데이터가 저장되는 것을 방지할 수 있습니다.
  • 저장 공간 효율성: 가장 적합한 크기의 데이터 유형을 선택하면 불필요한 저장 공간 낭비를 줄일 수 있습니다.
  • 쿼리 성능: 적절한 데이터 유형을 사용하면 쿼리 실행 계획을 최적화하여 쿼리 성능을 향상시킬 수 있습니다.

일반적인 SQL 데이터 유형 및 사용 사례

문자 데이터 유형

  • CHAR(size): 고정 길이 문자열을 저장하는 데 사용됩니다. 크기가 고정되어 있기 때문에 저장 공간이 낭비될 수 있지만, 예측 가능한 길이의 문자열에 유용합니다.
  • VARCHAR2(size): 가변 길이 문자열을 저장하는 데 사용됩니다. 최대 크기를 지정해야 하지만, 실제 문자열 길이에 따라 저장 공간을 사용하므로 효율적입니다.
  • NCHAR(size): 고정 길이 유니코드 문자열을 저장하는 데 사용됩니다. 다국어 지원이 필요한 경우 유용합니다.
  • NVARCHAR2(size): 가변 길이 유니코드 문자열을 저장하는 데 사용됩니다. 다국어 지원과 저장 공간 효율성을 동시에 고려해야 할 때 사용합니다.
  • CLOB: 대용량 문자 데이터를 저장하는 데 사용됩니다. 텍스트 파일, HTML 문서 등을 저장할 때 유용합니다.

숫자 데이터 유형

  • NUMBER(precision, scale): 정수 및 부동 소수점 숫자를 저장하는 데 사용됩니다. 정밀도와 스케일을 지정하여 저장 공간과 정확도를 제어할 수 있습니다.
  • INTEGER: 정수를 저장하는 데 사용됩니다. NUMBER 데이터 유형보다 저장 공간 효율성이 높을 수 있습니다.
  • FLOAT: 부동 소수점 숫자를 저장하는 데 사용됩니다. NUMBER 데이터 유형보다 넓은 범위의 숫자를 표현할 수 있지만, 정확도가 떨어질 수 있습니다.
  • BINARY_FLOAT, BINARY_DOUBLE: IEEE 754 부동 소수점 숫자를 저장하는 데 사용됩니다. FLOAT보다 정확도가 높고 성능이 더 빠를 수 있습니다.

날짜 및 시간 데이터 유형

  • DATE: 날짜 및 시간 정보를 저장하는 데 사용됩니다. 년, 월, 일, 시, 분, 초 정보를 포함합니다.
  • TIMESTAMP: DATE 데이터 유형보다 더 정밀한 시간 정보를 저장하는 데 사용됩니다. 마이크로초 단위까지 저장할 수 있습니다.
  • TIMESTAMP WITH TIME ZONE: 시간대 정보를 포함하는 타임스탬프를 저장하는 데 사용됩니다. 전 세계적으로 데이터를 처리할 때 유용합니다.
  • INTERVAL YEAR TO MONTH, INTERVAL DAY TO SECOND: 시간 간격을 저장하는 데 사용됩니다. 날짜 간의 차이 또는 이벤트 기간 등을 표현할 때 유용합니다.

기타 데이터 유형

  • BLOB: 대용량 이진 데이터를 저장하는 데 사용됩니다. 이미지, 오디오, 비디오 파일 등을 저장할 때 유용합니다.
  • ROWID: 테이블 내의 특정 행의 물리적 주소를 저장하는 데 사용됩니다. 행에 직접 접근할 때 유용하지만, 데이터베이스 재구성이 발생하면 변경될 수 있습니다.
  • JSON: JSON 데이터를 네이티브 형식으로 저장하고 검색하는 데 사용됩니다.

실무 예제: 데이터 유형 선택 및 성능 비교

다음은 다양한 데이터 유형을 사용하여 데이터베이스 테이블을 생성하고 성능을 비교하는 예제입니다.

예제 1: 날짜 데이터 유형 비교