3 minute read

SQL - 2

  • 오라클 내장 함수

    문자 / 숫자 / 날짜 / 형 변환 등등




오라클 함수

  • 내장 함수(built-in function)
    • 단일행 함수: 입력이 하나 -> 출력이 하나
    • 다중행 함수: 입력 n개의 값 -> 출력 n개의 값
  • 사용자 정의 함수(user-defined function)



오라클 내장 함수 - 1. 문자 함수( 문자데이터를 가공)

  • UPPER: 대문자로 변환
  • LOWER: 소문자로 변환
  • INITCAP: 첫 글자만 대문자, 뒤는 소문자로
    upperLowerInitcap

    대소문자 여부와 상관없이, 검색 단어와 일치하는 문자열 데이터 찾을 수 있음!

  • LENGTH: 문자열 길이를 구할 수 있음
  • LENGTHB: 문자열 길이를 ‘byte’ 단위로 출력
    length

    lengthPractice

    참고! ‘DUAL;’ = 임시로 사용하는 dummy 테이블

  • SUBSTR: 문자열 일부 추출
    • SUBSTR(문자열 데이터, 시작위치, 추출길이) : 시작위치부터 지정길이만큼 추출
    • SUBSTR(문자열 데이터, 시작위치) : 시작위치부터 문자열데이터 끝까지 추출
      substr

      functionInSubstr

  • INSTR: 문자열 데이터 내 특정 문자 위치 찾기

    INSTR( [대상 문자열], [찾으려는 문자], [검색 시작할 위치], [시작 위치에서 몇 번째인지 지정] )
    instr

  • REPLACE: 특정 문자를 다른 문자로 대체

    REPLACE( [문자열 데이터or열 이름], [찾는 문자], [대체할 문자] )
    참고! 대체할 문자 비워두면, 찾은 문자들 삭제 처리
    replace

  • LPAD, RPAD: 데이터의 빈 공간을 특정 문자로 채움

    LPAD/RPAD( [문자열 데이터 or 열이름], [데이터 자릿수], [빈 공간 채울 문자] )
    padding

  • CONCAT: 두 문자열 데이터를 합침
    • CONCAT(문자열데이터or열이름1, 문자열데이터or열이름2)
    • CONCAT(문자열데이터or열이름1, CONCAT(' : ', 문자열데이터or열이름2)
      concat

  • TRIM, LTRIM, RTRIM: 특정 문자를 삭제
    • 옵션: Leading(왼쪽 끝부터), Trailing(오른쪽 끝부터), Both(양쪽 끝부터)
    • 참고! 문자열에 공백 있다면, 삭제할 문자 지정해도 공백만 삭제됨! trim



오라클 내장 함수 - 2. 숫자 함수( 숫자데이터를 연산, 수치 조정)

숫자함수 내용
ROUND 반올림
TRUNC 자릿수 버림
CEIL 보다 큰, 첫 번째 정수
FLOOR 보다 작은, 첫 번째 정수
MOD 나눈 뒤 나머지값
  • ROUND([숫자(필수)], [반올림 위치(선택)])

    위치 선택 안할 시, 소수점 첫 번째 자리에서 반올림
    round

  • TRUNC([숫자(필수)], [버림 위치(선택)])

    위치 선택 안할 시, 소수점 첫 번째 자리에서 버림
    trunc

  • CEIL/FLOOR([숫자(필수)])
    ceilAndFloor

  • MOD([나눠질 숫자(필수)], [나눌 숫자(필수)])
    mod



오라클 내장 함수 - 3. 날짜 함수( 날짜 데이터를 연산)

데이터 출력
날짜데이터 + 숫자 : 더한 숫자만큼 이후 날짜 출력
날짜데이터 - 숫자 : 더한 숫자만큼 이전 날짜 출력
날짜데이터 - 날짜데이터 : 두 날짜 간, 일수 차이
날짜데이터 + 날짜데이터 : 연산 불가!!
  • SYSDATE

    현재 날짜 출력

  • ADD_MONTHS( [날짜], [더할 개월 수] )

    입력 숫자만큼의 개월 수를 더한 날짜 출력

  • MONTHS_BETWEEN( [날짜1], [날짜2] )

    두 날짜 간의 개월 수 차이를 출력

  • NEXT_DAY( [날짜], [요일 문자] )

    다가오는 특정 요일 출력

  • LAST_DAY( [날짜(필수)] )

    그 달의 마지막 요일 출력

  • ROUND/TRUNC 날짜 데이터에 활용
    • ROUND( [날짜], [반올림 기준 포맷] )
    • TRUNC( [날짜], [버림 기준 포맷] )
    • 날짜 기준 포맷 종류 꽤 많음(CC, YYYY, DDD 등), 날짜 데이터에도 ROUND, TRUNC 적용 가능하다는 점만 알아두도록 dateRoundTrunc



오라클 내장 함수 - 4. 형 변환 함수 (자료형을 변환)

함수 내용
TO_CHAR 숫자/날짜 데이터를 문자 데이터로 변환
TO_NUMBER 문자 데이터를 숫자 데이터로 변환
TO_DATE 문자 데이터를 날짜 데이터로 변환
  • TO_CHAR( [날짜 데이터], '[출력 원하는 문자형태]' )
    typeConversionChar

    typeConversionCharInOtherLanguage

  • TO_NUMBER( '[문자열 데이터]', '[인식될 숫자형태]' )
    typeConversionNumber

  • TO_DATE( '[문자열 데이터]', '[인식될 날짜형태]' )



오라클 내장 함수 - 5. NULL 처리 함수(NVL / NVL2)

  • NULL이란? 빈 공간(spaceX)
  • 문법
    • NVL([null 여부 검사할 데이터/열], [앞 데이터=null일 경우 반환할 값])

      : 입력 데이터가 null이면 그대로 // null이 아니면 지정한 값 반환

    • NVL2([null 여부 검사할 데이터/열], [앞 데이터 != null일 경우 반환할 값], [앞 데이터 = null일 경우 반환할 값] )

      : null 여부에 따라 각각 다른 값 지정, 반환



오라클 내장 함수 - 6. DECODE함수와 CASE문

  • 상황에 따라 다른 데이터를 반환
  • DECODE함수 문법

    DECODE( [검사 대상이 될 데이터or열, 연산or함수 결과],
    [조건1], [데이터=조건1 의 경우 반환할 결과 ],
    [조건2], [데이터=조건2 의 경우 반환할 결과 ],
    … …
    [조건n], [데이터=조건n 의 경우 반환할 결과 ],
    [데이터!=위 모든 조건.. 의 경우 반환할 결과] )

  • CASE문 문법

    CASE [검사 대상이 될 데이터or열, 연산or함수 결과]
    WHEN [조건1] THEN [조건1의 결과값=True 일 경우 반환할 결과]
    WHEN [조건2] THEN [조건2의 결과값=True 일 경우 반환할 결과]
    … …
    WHEN [조건n] THEN [조건n의 결과값=True 일 경우 반환할 결과]
    ELSE [위 모든 조건과 일치하지 않을 때 반환할 결과]
    END






기타(팁)

  • SQL Developer 워크시트에서, ‘DATE 표시 포맷’ 변경 가능 < tip



다음 강의 준비

  • 센터 내 자리에 깔아놓은 VM 폴더 복사, 집에도 설치하기








nice!!!!

Updated: