본문 바로가기
SQL

SQL 강의 SQLP SQLD 기출 문제 - 005 / 데이터 타입, 묵시적 형변환

by SQL Master 2022. 10. 8.
반응형

이번 문제는 데이터 타입에 따라 INSERT할 때 에러가 발생할 수 있는 상황을 알아야 풀 수 있는 문제 입니다.

 

문제

아래 테이블에 데이터를 입력 시 에러가 발생하는 건은?

 

CREATE TABLE EMP (
  A NUMBER(10) PRIMARY KEY,
  B NUMBER(4,2),
  C DATE,
  D VARHCAR(10)
)
 

1. INSERT INTO EMP VALUES ( 1, 12, SYSDATE, 002 )
2. INSERT INTO EMP VALUES ( 2, 123.12, SYSDATE, '002' )
3. INSERT INTO EMP VALUES ( 3, 1.2, SYSDATE-1, '002' )
4. INSERT INTO EMP VALUES ( 5, 11.2, '20220101', 002 )
4. INSERT INTO EMP VALUES ( 6, 12.3, 20220430, 002 )

 

 


 

문제풀이

  • NUMBER(3) : 정수 3자리 숫자까지 가능
  • NUMBER(3,2) : 정수 1자리, 소숫점 2자리까지 가능
  • 묵시적 형변환이란 다른 데이터 타입끼리 만났을 때 자동으로 데이터 타입이 변경되는 걸 말한다.
  • VARCHAR(문자)타입은 날짜(DATE) 타입으로 묵시적 형변환이 가능
  • VARCHAR(문자)타입은 숫자(NUMBER) 타입으로 묵시적 형변환이 가능
  • 숫자(NUMBER) 타입에서 날짜(DATE) 타입으로 형변황이 불가능하다.
1. INSERT INTO EMP VALUES ( 1, 12, SYSDATE, 002 )
>> 첫번째 자리 PK 중복 없음
>> 두번째 자리 데이터 타입이나 자릿 수 문제 없음
>> 세번째 자리 데이터 타입 문제 없음
>> 네번째 자리 숫자에서 문자타입으로 형변환 가능하므로 문제 없음

2. INSERT INTO EMP VALUES ( 2, 123.12, SYSDATE, '002' )
>> 첫번째 자리 PK 중복 없음
>> 두번째 자리 NUMBER(4,2)에는 4자리가 들어갈 수 없어서 에러 발생
>> 세번째 자리 데이터 타입 문제 없음
>> 네번째 자리 데이터 타입 문제 없음

3. INSERT INTO EMP VALUES ( 3, 1.2, SYSDATE-1, '002' )
>> 첫번째 자리 PK 중복 없음
>> 두번째 자리 데이터 타입이나 자릿 수 문제 없음
>> 세번째 자리 데이터 타입 문제 없음 ( SYSDATE -1은 전일을 리턴 )
>> 네번째 자리 데이터 타입 문제 없음

4. INSERT INTO EMP VALUES ( 5, 11.2, '20220101', 002 )
>> 첫번째 자리 PK 중복 없음
>> 두번째 자리 데이터 타입이나 자릿 수 문제 없음
>> 세번째 자리 문자 타입에서 날짜 타입으로 형변환이 가능하므로 문제 없음
>> 네번째 자리 데이터 타입 문제 없음

5. INSERT INTO EMP VALUES ( 6, 12.3, 20220430, 002 )
>> 첫번째 자리 PK 중복 없음
>> 두번째 자리 데이터 타입이나 자릿 수 문제 없음
>> 세번째 자리 숫자 타입에서 날짜 타입으로 형변환이 불가능해서 에러 발생
>> 네번째 자리 데이터 타입 문제 없음

 

 

 

 

오늘은 데이터 타입과 데이터 형변환에서 대해서 알아봤습니다.

추가적인 궁금증은 댓글로 달아주세요!! :)

 

반응형

댓글