Skip to content

SQLD_1 #20

@Sam1000won

Description

@Sam1000won

함수 개요

함수의 정의

  • 함수는 벤더에서 제공하는 함수인 내장함수와 사용자가 정의할 수 있는 사용자 정의 함수로 나눌 수 있다.

내장함수의 종류

  • 단일행 함수: 입력값이 단일행 값이 입력되는 함수.
  • 다중행 함수: 여러 행의 값이 입력되는 함수로, 집계함수, 그룹함수, 윈도우 함수로 나눌 수 있다.
  • M:1 관계: 함수는 입력되는 값이 아무리 많아도 출력은 하나만 되는 중요한 특징이 있다.

단일행 함수의 입력

  • 단일행 함수의 경우 단일행 내에 있는 하나의 값 또는 여러 값이 입력값으로 표현될 수 있다.

단일행 함수의 특징

  • 사용 가능 절: 단일행 함수는 SELECT, WHERE, ORDER BY 절에 사용 가능하다.
  • 작용 방식: 각 행들에 대해 개별적으로 작용해 데이터 값들을 조작하고, 각각의 행에 대한 조작 결과를 리턴한다.
  • 결과 리턴: 여러 인자를 입력해도 단 하나의 결과만 리턴한다.
  • 인자 사용: 함수의 인자로 상수, 변수, 표현식이 사용 가능하고, 하나의 인수를 가지는 경우도 있지만 여러 개의 인수를 가질 수도 있다.

문자형 함수 설명

문자형 함수의 정의

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

주요 문자형 함수

  • LOWER(문자열): 문자열의 알파벳 문자를 소문자로 바꾼다.
  • UPPER(문자열): 문자열의 알파벳 문자를 대문자로 바꾼다.
  • ASCII(문자): 문자나 숫자를 ASCII 코드 번호로 바꾼다.
  • CONCAT(문자열1, 문자열2): 문자열1과 문자열2를 연결한다.

예시

  • LOWER('SQL EXPERT')'sql expert'를 리턴한다.
  • LENGTH('SQL EXPERT')10을 리턴한다.

숫자형 함수 설명

숫자형 함수의 정의

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

주요 숫자형 함수

  • ABS(숫자): 숫자의 절대값을 리턴한다.
  • SIGN(숫자): 숫자가 양수인지, 음수인지 0인지를 구별한다.
  • ROUND(숫자 [, m]): 숫자를 소수점 m+1자리에서 반올림해 리턴한다.

예시

  • ROUND(38.5235, 3)38.524를 리턴한다.
  • FLOOR(38.123)38을 리턴한다.

날짜형 함수 설명

날짜형 함수의 정의

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

주요 날짜형 함수

  • SYSDATE / GETDATE(): 현재 날짜와 시간을 출력한다.
  • EXTRACT('YEAR'|'MONTH'|'DAY' from d): 날짜 데이터에서 년, 월, 일 데이터를 출력할 수 있다.

예시

  • SELECT SYSDATE FROM DUAL;는 현재의 시간을 출력한다.
  • EXTRACT(YEAR FROM HIREDATE)는 입사년을 출력한다.

변환형 함수 설명

변환형 함수의 정의

  • 변환형 함수는 특정 데이터 타입을 다양한 형식으로 출력하고 싶을 때 사용하는 함수이다.

주요 변환형 함수

  • TO_NUMBER(문자열): 알파벳 문자열을 숫자로 변환한다.
  • TO_CHAR(숫자|날짜 [, FORMAT]): 숫자나 날짜를 주어진 FORMAT 형태로 문자열 타입으로 변환한다.

예시

  • SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD')는 날짜를 정해진 문자 형태로 변형한다.
  • SELECT TO_NUMBER(ZIP_CODE1, '999')는 ZIP 코드를 숫자로 변환한다.

CASE 표현 사용법

CASE 표현의 정의

  • CASE 표현은 IF-THEN-ELSE 논리와 유사한 방식으로 표현식을 작성해서 SQL의 비교 연산 기능을 보완하는 역할을 한다.

단일행 CASE 표현의 종류

  • SIMPLE_CASE_EXPRESSION: 조건이 맞으면 THEN 절 수행, 맞지 않으면 ELSE 절 수행.
  • SEARCHED_CASE_EXPRESSION: 조건이 맞으면 THEN 절 수행, 맞지 않으면 ELSE 절 수행.

예시

SELECT ENAME, CASE WHEN SAL > 2000 THEN SAL ELSE 2000 END REVISED_SALARY FROM EMP;

NULL 관련 함수 설명

NULL의 정의

  • 널 값은 아직 정의되지 않은 값으로, 0과 공백과 다르다.

주요 NULL 관련 함수

  • NVL(표현식1, 표현식2): 표현식1의 결과값이 NULL이면 표현식2의 값을 출력한다.
  • NULLIF(표현식1, 표현식2): 표현식1이 표현식2와 같으면 NULL을, 같지 않으면 표현식1을 리턴한다.
  • COALESCE(표현식1, 표현식2, ...): 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다.

예시

  • SELECT NVL(NULL, 'NVL-OK')'NVL-OK'를 리턴한다.
  • SELECT COALESCE(COMM, SAL)는 커미션이 NULL일 경우 급여를 출력한다.

NULLIF 함수 사용법

NULLIF 함수의 정의

  • NULLIF 함수는 EXPR1이 EXPR2와 같으면 NULL을, 같지 않으면 EXPR1을 리턴한다.

용도

  • 특정 값을 NULL로 대체하는 경우에 유용하게 사용할 수 있다.

예시

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

기타 NULL 관련 함수 (COALESE)

COALESE 함수의 정의

  • COALESE 함수는 인수의 숫자가 한정되어 있지 않으며, 임의의 개수 EXPR에서 NULL이 아닌 최초의 EXPR을 나타냄

예시

SELECT ENAME, COMM, SAL, COALESCE(COMM,SAL)  COL FROM EMP;
  • 두 컬럼중 null 이 아닌것을 먼저 출력한다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions