SQL 기본 -8. 명시적(Explicit) 형변환과 암시적(Implicit) 형변환

SSAD·2023년 3월 7일
0

SQLD

목록 보기
10/10
  • 형 변환이라는 것은 두 개의 데이터의 데이터 타입(형)이 일치하도록 변환하는 것

  • 숫자와 문자열의 비교, 문자열과 날짜형의 비교와 같이 데이터 타입이 불일치할 때 발생

  • 형 변환은 명시적(Explicit) 형변환과 암시적(Implicit) 형변환이 있음

  • 명시적 형변환은 형변환 함수를 사용해서 데이터 타입을 일치시키는 것으로
    개발자가 SQL을 사용할 때 형변환 함수를 사용해야 함


형 변환 함수

TO_NUMBER(문자열)

  • 문자열을 숫자로 변환

TO_CHAR(숫자 혹은 날짜, [FORMAT])

  • 숫자 혹은 날짜를 지정된 FORMAT의 문자로 변환

TO_DATE(문자열, FORMAT)

  • 문자열을 지정된 FORMAT의 날짜형으로 변환

  • 암시적 형변환은 개발자가 형변환을 하지 않은 경우

    데이터베이스 관리 시스템이 자동으로 형변환하는 것을 의미

TIP 인덱스 칼럼에 형변환을 수행하면 인덱스를 사용하지 못함

  • 인덱스는 데이터를 빠르게 조회하기 위해서 인덱스 키를 기준으로 정렬해 놓은 데이터
  • 인덱스는 기본적으로 변형이라는 것이 발생하면 인덱스를 사용할 수 없음

암시적 형변환

SELECT *
FROM EMP
WHERE EMPNO='100';
  • EMP 테이블을 생성할 때 숫자형 데이터 타입으로 생성
  • 문자형 데이터 타입 '100'으로 WHERE 절을 주었을 때 암시적 형변환이 발생
  • EMPNO을 ORACLE이 자동으로 TO_CHAR(EMPNO)로 변환해서 데이터 타입을 일치 시킴
암시적 형변환으로 EMPNO가 TO_CHAR(EMPNO)로 변환되므로 인덱스를 사용할수 없음
  • 이와 같은 문제는 명시적 형변환을 사용하면 됨
    즉, WHERE EMPNO = TO_NUMBER('100')으로 하면 EMPNO칼럼이 변환되지 않아서
    인덱스를 사용할수 있음
profile
learn !

0개의 댓글