-
형 변환이라는 것은 두 개의 데이터의 데이터 타입(형)이 일치하도록 변환하는 것
-
숫자와 문자열의 비교, 문자열과 날짜형의 비교와 같이 데이터 타입이 불일치할 때 발생
-
형 변환은 명시적(Explicit) 형변환과 암시적(Implicit) 형변환이 있음
-
명시적 형변환은 형변환 함수를 사용해서 데이터 타입을 일치시키는 것으로
개발자가 SQL을 사용할 때 형변환 함수를 사용해야 함
형 변환 함수
TO_NUMBER(문자열)
- 숫자 혹은 날짜를 지정된 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칼럼이 변환되지 않아서
인덱스를 사용할수 있음