자료형과 함수

tpids·2024년 6월 4일

DB

목록 보기
7/25

자료형과 함수

자료형(Data Type) : 데이터를 저장하는 형식

  • 데이터베이스에서는 문자형, 숫자형, 날짜형 자료형을 사용
  • SELECT문에서는 간단한 연산과 내장형 함수 사용이 가능!!
SELECT 직원ID , 연봉 , 연봉 + 1000
FROM 직원 ;

내장형 함수(Built-in Function) : 미리 만들어 선언해둔 함수

-> 함수 이름을 호출해서 바로 사용 가능하게 내부에서 설계해둔 함수

  • 문자형 함수 : LOWER , UPPER , SUBSTR , TRIM , REPLACE

  • 숫자형 함수 : MOD , ROUND , CEIL , FLOOR , TRUNC , ABS

  • 날짜형 함수 : SYSDATE , LAST_DAY , ADD_MONTHS

  • LOWER(str) : str의 문자 데이터를 대문자에서 소문자로 대체

  • UPPER(str) : str의 문자 데이터를 소문자에서 대문자로 대체

  • SUBSTR(str , x, y ) : str의 문자 데이터를 x자리부터 y개만큼 절단

  • TRIM(str) : str의 문자 데이터에서 양 끝 공백 제거

  • REPLACE(str, ‘x’, ‘y’) : str의 문자 데이터에서 x라는 문자를 y로 대체

<실습 문제>

SELECT 직원ID, 주민등록번호, SUBSTR(주민등록번호, 1,6) AS 생년월일
FROM 직원;

SELECT 직원ID, 구분코드, 연락처, REPLACE(연락처, '-','') AS 연락처번호만
FROM 직원연락처;
  • MOD(int1 , int2) : int1을 int2로 나눈 나머지를 숫자형으로 출력
  • ROUND(int1 , int2) : int1을 반올림하여 소수점 int2자리까지 출력

ROUND와 비슷한 숫자형 함수들!!!

  • CEIL(int) : int보다 크거나 같은 최소 정수를 출력
  • FLOOR(int) : int보다 작거나 같은 최대 정수를 출력
  • TRUNC(int1, int2) : int1을 소수점 int2자리까지 잘라서 버린 후 출력
  • ABS(int) : int의 절대값 출력
SELECT 연봉, MOD(연봉, 1000)
FROM 직원;

<실습 문제>

SELECT ROUND(1.452, 2) , ROUND(1.452, 1)
FROM DUAL;

SELECT ROUND(3.1415, 3), CEIL(3.1415), FLOOR(3.1415), TRUNC(3.1415,3), ABS(-3.1415)
FROM DUAL;

날짜형 함수 : SYSDATE , LAST_DAY , ADD_MONTHS

  • SYSDATE : 입력 시 현재 시간을 날짜형으로 출력
  • LAST_DAY(date) : date의 날짜형 값의 해당 월 마지막 날짜를 출력
  • ADD_MONTHS(date , int) : date의 날짜형 값에서 int개월 수만큼 더해서 출력
SELECT SYSDATE
FROM DUAL ;

SELECT LAST_DAY(SYSDATE)
FROM DUAL ;

SELECT 직원ID , 입사일시 , 
ADD_MONTHS(입사일시, 60), 
ADD_MONTHS(입사일시, -60)
FROM 직원 ;

형변환 함수 : 특정 자료형 값으로 변경해주는 함수

자료형(Data Type)이 일치하지 않는 값끼리의 연산
→ 연산하기 전에 내부적으로 형변환 발생

SELECT '100' + 1000
FROM DUAL;

SELECT TO_NUMBER ('100’) + 1000
FROM DUAL;

형변환 우선순위 : 날짜형 > 숫자형 > 문자형

profile
개발자 공부중

0개의 댓글