SQL :: Oracle :: DML(SELECT) 중 함수

김병철·2022년 9월 14일
0

SQL

목록 보기
2/11

SQL

함수(Function)

자바의 메소드와 같은 존재

  • 단일행 함수 : N개의 값을 읽어서 N개의 결과를 리턴(매 행마다 함수 실행 후 결과 반환)

  • 그룹 함수 : N개의 값을 읽어서 1개의 결과를 리턴(하나의 그룹별로 함수 실행 후 결과 반환)

  • 단일행 함수와 그룹 함수는 함께 사용할 수 없다.(결과의 행 수가 다르니까!)

단일행 함수

  • LENGTH(문자열) - 해당 전달된 문자열의 글자 수 반환

  • LENGTHB(문자열) - 해당 전달된 문자열의 바이트 수 반환

  • 결과값은 숫자로 반환 => NUMBER

  • 문자열 : 문자열 형식의 리터럴, 문자열에 해당하는 컬럼

한글 : '김' -> 'ㄱ' 'ㅣ' 'ㅁ' => 한글자당 3BYTE로 취급
영문, 숫자, 특수문자 : 한 글자당 1BYTE로 취급

  • INSTR (문자열, 특정문자, 찾을위치, 순번) : 문자열로부터 특정 문자의 위치값 반환

    • 찾을 위치와 순번 생략 가능
    • 결과값은 NUMBER 타입으로 반환
    • 찾을 위치 (1과 -1로 기본값은 1:앞에서부터, -1:뒤에서부터)
    • 인덱스는 1부터 시작
  • SUBSTR(문자열, 처음위치, 추출할 문자 개수) : 문자열로부터 특정 문자열 추출

    • 결과값은 CHARACTER 타입으로 반환(문자열 형태)
    • 추출할 문자 개수는 생략 가능(생략 시 문자열 끝까지 추출)
    • 처음 위치는 음수로 제시 가능 : 뒤에서부터 N번째 위치로부터 문자 추출한다는 의미
  • LPAD/RPAD(문자열, 최종적으로 반환할 문자의 길이(BYTE), 덧붙이고자하는 문자) : 제시한 문자열에 덧붙이고자 하는 문자를 왼쪽 또는 오른쪽에 덧붙여서 최종 N길이만큼 문자열을 반환

    • 결과값은 CHARACTER 타입으로 변환하며 덧붙이고자 하는 문자는 생략 가능
  • LTRIM/RTRIM(문자열, 제거시키고자 하는 문자) : 문자열의 왼쪽 또는 오른쪽에서 제거시키고자 하는 문자들을 찾아서 제거한 나머지 문자열을 반환

    • 결과값은 CHARACTER 타입
    • 제거시키고자 하는 문자 생략 가능
  • TRIM(BOTH/LEADING/TRAILING '제거하고자하는 문자' FROM '문자열') : 문자열의 양쪽/앞쪽/뒤쪽에 있는 특정 문자를 제거한 나머지 문자열을 반환

    • 결과값은 CHARACTER 타입으로 반환
    • BOTH/LEADING/TRAILING 생략 가능, 생략시 기본값 BOTH
  • LOWER/UPPER/INITCAP
    • LOWER(문자열) : 소문자로 변경
    • UPPER(문자열) : 대문자로 변경
    • INITCAP(문자열) : 각 단어의 앞글자만 대문자로 변경
  • CONCAT(문자열1, 문자열2) : 문자열 두 개를 하나로 합쳐서 반환

  • REPLACE(문자열, 찾을 문자, 바꿀 문자) : 문자열로부터 찾을 문자를 바꿀 문자로 변환하여 문자열로 반환

  • ABS(절대값을 구할 수) : 절대값으로 반환

  • MOD(숫자, 나눌 값) : 두 수를 나눈 나머지값을 반환

  • ROUND(반올림할 수, 반올림 위치) : 반올림 처리

  • CEIL(올림할 수) : 소수점 아래 수를 무조건 올림처리

  • FLOOR(버림할 수) : 소수점 아래의 수 버림

  • TRUNC(버림처리할 수, 위치) : 위치 지정 가능한 버림처리 함수

날짜 관련 함수

  • MONTHS_BETWEEN(DATE1, DATE2) : 두 날짜 사이의 개월 수 반환(결과값은 NUMBER)
    • DATE2가 더 미래일 경우 음수가 나온다
  • ADD_MONTHS(DATE, NUMBER) : 특정 날짜에 해당 숫자만큼 개월 수를 더한 날짜 반환

  • NEXT_DAY(DATE, 요일(문자/숫자)) : 특정 날짜에서 가장 가까운 해당 요일을 찾아 그 날짜를 반환

  • LAST_DAY(DATE) : 해당 특정 날짜 달의 마지막 날짜를 구해서 반환

  • EXTRACT : 년도 또는 월 또는 일 정보를 추출해서 반환.

    • EXTRACT(YEAR FROM DATE) : 특정 날짜로부터 년도만 추출
    • EXTRACT(MONTH FROM DATE) : 특정 날짜로부터 월만 추출
    • EXTRACT(DAY FROM DATE) : 특정 날짜로부터 일만 추출

형변환 함수

  • TO_CHAR(NUMBER/DATE, 포맷) : 숫자형 또는 날짜형 데이터를 문자형 타입으로 반환(포맷 맞추어)

    • 포맷에서 YY와 RR의 차이점(RR은 50년 기준으로 작으면 19가 붙고, 크면 20이 붙는다)
  • TO_DATE(NUMBER/CHARACTER, 포맷) : 숫자형 또는 문자형 데이터를 날짜형으로 변환 (결과값은 DATE타입)

  • TO_NUMBER(CHAR, 포맷) : 문자형 데이터를 숫자형으로 변환(결과값은 NUMBER타입)

profile
keep going on~

0개의 댓글