내장 함수의 개요..
함수는 다양한 기준으로 분류할 수 있는데, 벤더에서 제공하는 함수인 내장 함수(Built-in Function)와 사용자 정의 함수(User Defined Function)로 나눌 수 있다.
함수는 입력되는 값이 많아도 출력은 하나만 된다.(M:1)
본 절에서는 각 벤더에서 제공하는 DB를 설치하면 기본적으로 제공되는 SQL 내장 함수 에 대해 설명한다.
내장 함수는 다시 함수의 입력 값이 단일행 값이 입력되는 단일행 함수(Single-Row Function)와 여러 행의 값이 입력되는 다중행 함수(Multi-Row Function)로 나눌 수 있다.
다중행 함수는 다시 집계 함수(Aggregate Function), 그룹 함수(Group Function), 윈도우 함수(Window Function)로 나눌 수 있다.
: 함수의 입력값이 단일행
“경기장의 지역번호와 전화번호를 합친 번호의 길이를 구하시오.”
SELECT STADIUM_ID, DDD+TEL as TEL, LEN(DDD+TEL) as T_LEN FROM STADIUM;
➡ (LEN -> 문자열의 갯수를 숫자값으로 리턴)
데이터베이스에 DATE 변수는 내부적으로 세기/년/월/일/시/분/초와 같은 숫자형식으로 변환하여 저장된다.
날짜를 숫자로 저장하기 때문에 덧셈, 뺄셈 같은 산술 연산자로도 계산이 가능하다.
EXTRACT(MONTH FROM HIREDATE) 입사월, EXTRACT(DAY FROM HIREDATE) 입사일 FROM EMP;
사원(EMP) 테이블의 입사일자에서 년, 월, 일 데이터를 각각 출력한다
SQL>>
SELECT ENAME, HIREDATE, DATEPART(YEAR, HIREDATE) 입사년도,
DATEPART(MONTH, HIREDATE) 입사월, DATEPART(DAY, HIREDATE) 입사일 FROM EMP;
같은 코드
SELECT ENAME, HIREDATE, YEAR(HIREDATE) 입사년도, MONTH(HIREDATE) 입사월,
DAY(HIREDATE) 입사일 FROM EMP;
사원(EMP) 테이블의 입사일자에서 년, 월, 일 데이터를 각각 출력한다.
특정 데이터 타입을 다양한 형식으로 출력하고 싶을때 사용하는 함수
종류 | 설명 |
명시적 데이터 유형 변환 | 데이터 변환형 함수로 데이터 유형을 변환하도록 명시해 주는 경우 |
암시적 데이터 유형 변환 | 데이터베이스가 자동으로 데이터 유형을 변환하여 계산하는 경우 |
SELECT 1 FROM DUAL WHERE 1 = 2;
표현식1이 표현식2와 같으면 NULL을, 같지 않으면 표현식1을 리턴한다 .
SQL>>
SELECT ENAME, EMPNO, MGR, NULLIF(MGR,7698) NUIF FROM EMP;
사원 테이블에서 MGR와 7698이 같으면 NULL을 표시하고, 같지 않으면 MGR를 표시한다.
임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다
COALESCE 함수는 인수의 숫자가 한정되어 있지 않으며, 임의의 개수 EXPR에서 NULL이 아닌 최초의 EXPR을 나타낸다.
만일 모든 EXPR이 NULL이라면 NULL을 리턴한다.
SQL>>
SELECT ENAME, COMM, SAL, COALESCE(COMM, SAL) COAL FROM EMP;
사원 테이블에서 커미션(COMM)을 1차 선택값으로, 급여(SAL)를 2차 선택값으로 선택하되 두 칼럼 모두 NULL인 경우는 NULL로 표시한다