내장 함수(BUILT-IN FUNCTION)

한준수·2023년 5월 30일
0

SQLD

목록 보기
19/31

SQL 내장 함수

SQL을 더욱 강력하게 해주고 데이터 값을 간편하게 조작하는데 사용한다.

  • 단일행 값이 입력되는 단잉핼 함수(Single-Row Function)
  • 여러행의 값이 입력되는 다중행 함수(Multi-Row Function)
    • 집계 함수(Aggregate Function)

    • 그룹 함수(Group Function)

    • 윈도우 함수(Window Function)

      	우선 단일행 함수에 대해서만 알아보자

단일행 함수

  • SELECT, WHERE, ORDER BY절에서 사용가능하다
  • 행에 개별적 조작
  • 여러 인자가 있어도 결과는 1개만 출력
  • 함수 인자에 상수, 변수, 표현식 사용가능
  • 함수 중첩가능

문자형 함수

문자형 함수는 문자 데이터를 매개 변수로 받아들여서 문자나 숫자 값의 결과를 돌려주는 함수이다.

문자형 함수 함수 설명
LOWER(문자열) 문자열의 알파벳 문자를 소문자로
UPPER(문자열) 문자열의 알파벳 문자를 대문자로
ASCII(문자) ASCII 코드 번호를 문자나 숫자로 바꿔줌
CHR/CHAR(ASCII번호) ASCII 코드 번호를 문자나 숫자로 바꿔줌
CONCAT(문자열1, 문자열2) 문자열1,2를 연결
합성 연산자 '||'와 동일
SUBSTR/SUBSTRING(문자열,m[,n]) 문자열 중 m위치에서 n개의문자 길이에 해당하는 문자를 돌려줌.n이 생략되면 마지막 문자까지
LENGTH/LEN(문자열) 문자열 길이 숫자로 반환
LTRIM 문자열의 왼쪽부터 공백 제거(지정문자를 줄수 있음)
RTRIM 문자열의 오른쪽부터 공백 제거(지정문자를 줄수 있음)
TRIM 문자열에서 머리말, 꼬리말 또는 양쪽에 있는 지정문자 제거

문자형 함수 사례

CONCAT('RDBMS','SQL') -> 'RDBMS SQL'
SUBSTR('SQL Exper',5,3) -> 'Exp'
LTRIM('xxxYYZZxYZ','x') -> 'YYZZxYZ'
TRIM('x' FROM 'xxYYZZxYZxx') -> 'YYZZxYZ'

숫자형 함수

숫자형 함수는 숫자 데이터를 입력받아 처리하고 숫자를 리턴하는 함수이다.

숫자형 함수 함수 설명
ABS(숫자) 숫자의 절대값 반환
SIGN(숫자) 숫자가 양수면 1 음수면 -1 0이면 0 반환
MOD(숫자1, 숫자2) 숫자1을 숫자2로 나누어 나머지 반환
CEIL 크거나 같은 최소 정수 반환
FLOOR(숫자) 작거나 같은 최대 정수를 반환
ROUND(숫자[,m]) 숫자를 소수점 m자리에서 반올림하여 리턴. m이 생략되면 디폴트 값은 0
TRUNC(숫자[,m]) 숫자를 소수 m자리에서 잘라서 버림. m이 생략되면 디폴트 0
SIN,COS,TAB 숫자의 삼각함수 값 반환
EXP(),POWER(),SQRT(),LOG(),LN() 숫자의 지수, 거듭 제곱, 제곱근, 자연로그 값 반환

숫자형 함수 사례

CEIL(38.123) -> 39
CEIL(-38.123) -> -38

FLOOR(38.123) -> 38
FLOOR(-38.123) -> -39

ROUND(38.5235, 3) - > 38.524
ROUND(38.5235) -> 39

TRUNC(38.5235, 3) -> 38.523
TRUNC(38.523) -> 38

NULL 관련 함수

일반형 함수 함수 설명
NVL(표현식1, 표현식2) / ISNULL(표현식1, 표현식2) 표현식1의 결과값이 NULL이면 표현식2의 값을 출력
NULLIF(표현식1, 표현식2) 표현식1이 표현식2와 같으면 NULL을 같지 않으면 표현식1을 리턴
COALESCE(표현식1,표현식2,.....) 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타냄. 모든 표현식이 NULL이라면 NULL리턴

날짜형 함수 사용 사례

//NVL
SELECT ENAME 사원명, SAL 월급, COMM 커미션, 
(SAL * 12) + COMM 연봉A,
(SAL * 12) +NVL(COMM,0) 연봉B
FROM EMP;

//NULLIF
SELECT ENAME, EMPNO, MGR,
NULLIF(MGR,7698) as NUIF
FROM EMP

//COALESCE
SELECT ENAME, COMM, SAL, 
COALESCE(COMM,SAL) as COAL
FROM EMP;

이 밑에는 그냥 실습 해보자

날짜형 함수

날짜형 함수는 DATE 타입의 값을 연산하는 함수이다.


형 변환 함수

CASE

profile
응애에요

0개의 댓글