SQL (함수)


문자형 함수
  • CHR (ASCII 코드)
    • ASCII 코드 값을 숫자로 변환
    • ASCII('A')           —>         65

  • LOWER (문자열)
    • 문자열을 소문자로
    • LOWER('ABCDE')       —>       abcde

  • UPPER (문자열)
    • 문자열을 대문자로
    • UPPER('abcde')       —>       ABCDE

  • SUBSTR (문자열, X, Y)
    • 문자열 X의 위치에서 Y개의 문자열 추출
    • SUBSTR('ABCDE',3,2)         —>       CD
    • SUBSTR('ABCDE',-4,2)       —>       BC
          ↪  우측 끝부터 시작해 좌측으로 이동하여 X 위치에서 Y 개의 문자열 추출
    • SUBSTR('ABCDE',3)              —>       CDE
          ↪  Y 생략 시 X 위치에서 나머지 문자열 추출

  • INSTR (문자열, 탐색문자열, X, Y)
    • 문자열에서 탐색할 문자열 위치 반환
    • X 위치에서 시작해서 Y 번째 발견된 문자열 위치
    • INSTR('A#B#C#D#E','#',3,2)         —>       6
          ↪  X 번째부터 시작해 Y 번째 발견된 # 위치
    • INSTR('A#B#C#D#E','#',-3,2)       —>       4
          ↪  우측 끝부터 시작해 좌측으로 이동하여 X 위치에서 Y 번째 발견된 # 위치
    • INSTR('A#B#C#D#E','#')                   —>       4
          ↪  X, Y 생략 시 1 값으로 해석

  • LTRIM (문자열, 삭제할 문자열)
    • 문자열 중 삭제할 문자열좌측부터 삭제
    • LTRIM('AAABABBB','A')         —>       BABBB
    • LTRIM(' AAABABBB')                —>       AAABABBB
          ↪  삭제할 문자열 생략 시 공백 삭제

  • RTRIM (문자열, 삭제할 문자열)
    • 문자열 중 삭제할 문자열우측부터 삭제
    • RTRIM('AAABABBB','B')         —>       AAABA
    • RTRIM('AAABABBB ')                —>       AAABABBB
          ↪  삭제할 문자열 생략 시 공백 삭제

  • LPAD (문자열, X, 추가할 문자열)
    • 문자열 좌측추가할 문자열을 추가하여 총 X 길이의 값을 리턴
    • LPAD('AB',5,'#')         —>       ###AB

  • RPAD (문자열, X, 추가할 문자열)
    • 문자열 우측추가할 문자열을 추가하여 총 X 길이의 값을 리턴
    • RPAD('AB',5,'#')         —>       AB###

  • CONCAT (문자열1, 문자열2)
    • 문자열1문자열2 를 결합
    • CONCAT('AB','CD')       —>       ABCD

  • LENGTH (문자열)
    • 문자열 길이를 리턴
    • LENGTH('ABCDE')       —>       5

  • REPLACE (문자열, 탐색할 문자열, 변경할 문자열)
    • 문자열 변경 및 삭제
    • REPLACE('ABCED','ED','DE')       —>       ABCDE



숫자 함수
  • ABS (숫자)
    • 절대값 리턴
    • ABS(-5.5)       —>       5.5

  • ROUND (숫자, X)
    • 소수점 X 자리까지 반올림
    • ROUND(369.369,2)         —>       369.37
    • ROUND(369.369,-2)       —>       400
          ↪  -2 = 10의 자리를 반올림

  • TRUNC (숫자, X)
    • 소수점 X 자리까지 버림
    • TRUNC(369.369,2)         —>       369.36
    • TRUNC(369.369,-2)       —>       300
          ↪  -2 = 10의 자리까지 버림

  • SIGN (숫자)
    • 숫자가 양수 = 1
    • 숫자가 음수 = - 1
    • 숫자가 0 = 0
    • ROUND(369)         —>       1
    • ROUND(-369)       —>       -1
    • ROUND(0)              —>       0

  • FLOOR (숫자)
    • 소수점 이하 버림
    • FLOOR(36.3)           —>       36
    • FLOOR(-36.3)         —>       -37
          ↪  - 붙으면 작은 값으로 향함

  • CEIL (숫자)
    • 소수점 이하 올림
    • CEIL(36.6)           —>       37
    • CEIL(-36.3)         —>       -36
          ↪  - 붙으면 큰 값으로 향함

  • MOD (X, Y)
    • XY 로 나눈 나머지를 리턴
    • MOD(20,3)           —>       2
    • MOD(20,-3)         —>       2
          ↪  - 붙어도 양수와 동일하게 리턴
    • MOD(2,5)              —>       2
          ↪  25로 나눌 수 없으니 나머지 2가 리턴



날짜 함수
  • SYSDATE
    • 현재의 . . . . . 를 리턴
    • YYYY - MM - DD- hh - mm - ss
    • SYSDATE           —>       2024/11/28 14:12:43

  • EXTRACT (특정 단위 FROM 날짜 데이터 or SYSDATE)
    • 입력된 날짜 데이터의 특정 단위를 리턴
    • EXTRACT(YEAR FROM SYSDATE)           —>       2024
    • EXTRACT(MONTH FROM SYSDATE)         —>       11



변환 함수
  • 명시적 형변환 : 변환 함수를 사용하여 데이터를 명시적으로 나타냄
  • 암시적 형변환 : 내부에서 스스로 데이터 유형을 변환함
    • 성능 저하 발생

  • TO_NUMBER (문자열)
    • 문자열을 숫자 타입으로 변경하여 리턴
    • 숫자로 변환이 안 되는 문자열이 입력되면 에러 발생
    • TO_NUMBER('5')           —>       5

  • TO_CHAR (날짜 or 숫자, 포맷 형식)
    • 숫자나 날짜 데이터를 포맷 형식으로 변환
    • TO_CHAR(SYSDATE,'YYYY-MM-DD')           —>       2024-11-28

  • TO_DATE (문자열, 포맷 형식)
    • 문자열을 포맷 형식으로 변환
SELECT TO_DATE('2024-11-28','YYYY-MM-DD')
     , TO_DATE('2024-11-28 14:12:43','YYYY-MM-DD HH24:MI:SS')
  FROM dual;



-- 출력값
2024-11-28 00:00:00
2024-11-28 14:12:43



그룹 함수
  • 다중행 함수
  • NULL 값은 무시하고 처리함

SELECT COUNT(SAL)   -- 행의 수 리턴
  FROM EMP;

SELECT COUNT(*)   --  모든 행 수 리턴
  FROM EMP;

SELECT SUM(SAL)     -- 총 합 리턴
  FROM EMP;

SELECT AVG(SAL)     -- 평균 리턴
  FROM EMP;

SELECT MAX(SAL)     -- 최댓값 리턴
  FROM EMP;

SELECT MIN(SAL)     -- 최솟값 리턴
  FROM EMP;

SELECT VAR(SAL)     -- 분산 리턴
  FROM EMP;

SELECT STDEV(SAL)     -- 표준편차 리턴
  FROM EMP;



일반 함수 (NULL 함수, 치환 함수)
  • NVL ( X, Y )
    • X = NULL   —>   Y 리턴
    • XNULL   —>   X 리턴

  • NVL2 ( X, Y, Z )
    • X = NULL   —>   Z 리턴
    • XNULL   —>   Y 리턴

  • NULLIF ( X, Y )
    • X = Y   —>   NULL 리턴
    • XY   —>   X 리턴

  • COALESCE ( X, Y, Z )
    • XNULL   —>   X 리턴
    • X = NULL   —>   Y 리턴
    • Y = NULL   —>   Z 리턴