dbms 에서 사용할 수 있는 함수는 다양한 기준으로 분류할 수 있는데.. 오라클과 같은 벤더에서 제공하는 함수인 내장함수와 그리고 사용자가 정의할 수 있는 함수인 ( User Defined Function ) 이 있다.
요기서는 이제 벤더에서 제공하는 함수인 내장 함수에 대해 말해볼 것이다.
내장행 함수의 단일의 행으로 결과 값이 나오는 함수는 여러 종류가 있다.
- 문자형 함수
문자형 함수 | 함수 설명 |
Lower ( 문자열) | 문자열의 알파벳 문자를 소문자로 |
Upper ( 문자열 ) | 문자열 알파벳 문자를 대문자로 |
ASCHII | 문자나 숫자를 ASCHII 코드로 |
CHAR/CHAR (ASCHII 번호) | ASCHII 번호를 문자나 숫자로 바꾼다. |
CONCAT ( 문자열 1, 문자열 2) | 문자열 1과 문자열 2를 연결한다. |
SUBSTR / SUBSTRING ( 문자열 , m[,n ] | 문자열 m 위치에서 n 개의 문자 길이에 해당하는 문자를 돌려준다. n 이 생략되면 마지막 문자까지 |
LENGTH | 문자열의 갯수를 숫자로 돌려줌. |
예시 )
select CONCAT(EMP_NM_KOR,' 사원') AS EMP_NM_KOR
from EMP_TBL
select EMP_NM_KOR || ' 사원' AS EMP_NM_KOR
from EMP_TBL
- 숫자형 함수
숫자형 함수는 숫자 데이터를 입력받아 처리하고 숫자를 리턴하는 함수다.
숫자형 함수 | 함수 설명 |
ABS | 숫자의 절대값을 돌려준다. |
SIGN | 숫자가 양수인지, 음수인지 0인지를 구별한다. |
MOD ( 숫자1, 숫자2 ) | 숫자 1을 숫자 2로 나누어 나머지 값을 리턴한다. |
CEIL / CEILING | 숫자보다 크거나 같은 최소 정수를 리턴한다. |
FLOOR | 숫자보다 작거나 같은 최대 정수를 리턴한다. |
ROUND ( 숫자, [, m] ) | 숫자를 소수점 m 자리에서 반올림해 리턴한다. |
TRUNC ( 숫자, [, m] ) | 숫자를 소수점 M 자리에서 잘라서 버린다. |
SIN, COS, TAN | 숫자으 ㅣ삼각함수 값을 리턴한다. |
EXP | 숫자의 지수 값을 리턴한다. |
POWER | 숫자의 거듭제곱 값을 리턴한다. |
SQRT | 숫자의 제곱근 값을 리턴한다. |
등의 해당하는 내용에 대한 함수들을 적용해볼 수 있다.
- 날짜형 함수
날짜형 함수는 DATE 타입의 값을 연산하는 함수이다.
날짜형 함수 | 함수 설명 |
SYSDATE / GETDATE() | 현재 시각을 출력한다. |
EXTRACT ( 'YEAR' | 'MONTH' | 'DAY' from d) / DATEPART ( 'YEAR' | ' MONTH' | 'DAY', d) |
날짜 데이터에서 연월일 데이터를 출력할 수 있다. 시분초도 가능한다. |
TO_NUMBER ( TO_CHAR (d, 'YYYY') ) / YEAR ( d) | 날짜 데이터에서 연월일 데이터를 출력할 수 있다. |
이런식으로 NUMBER 형식으로 입사날짜 ( 2010, 5월 11일) 로 되어잇는 것들을 입사년도 / 입사월 / 입사일 등으로 연도 / 월 / 일로 구분해서 뽑아올 수 있다.
SELECT ENAME, HIREDATE AS 입사날짜
, TO_NUMBER ( TO_CHAR (HIREDATE, 'YYY' )) AS 입사년도
, TO_NUMBER ( TO_CHAR (HIREDATE ,'MM' )) AS 입사월
, TO_NUMBER ( TO_CHAR (HIREDATE ,'DD' )) AS 입사일
FROM EMP_TB
- 변환형 함수
그 이후 변환형 함수가 존재한다. 변환형 함수는 특정한 데이터 타입을 다양한 형식으로 출력하고 싶을 때 사용한다.
반환형 함수 | 설명 |
TO_NUMBER ( 문자열 ) / CAST | 숫자로 변환 가능한 문자를 숫자로 바꿔준다 |
TO_CHAR ( 숫자 | 날짜 [, FORMAT]) / CONVERT (data_yype [(length)] , expressiong [ , style ] ) |
숫자나 날짜를 주어진 FORMAT 형태인 문자열 타입으로 변환. expression 을 주어진 style 형태인 목표 데이터 유형으로 변환 |
TO_DATE ( 문자열 [, FORMAT ] ) / CONVERT (data_yype [(length)] , expressiong [ , style ] ) |
문자열을 주어진 FORMAT 형태인 날짜 타입으로 변환 . expression 을 주어진 style 형태인 목표 데이터 유형으로 변환 |
SELECT TO_CHAR ( SYSDATE , 'YYYY/MM/DD' ) AS 날짜
, TO_CHAR ( SYSDATE, 'YYYY, MM, DD') AS 문자형
FROM DUAL
이럴 경우에 날짜로 나오는 값은 2021/03/22
그리고 문자형으로 나오는 값은 2021, 3월, 33 일 의 형식으로 나올 것이다.
- CASE 함수
CASE 표현은 IF-THEN-ELSE 논리와 유사한 방식으로 표현식을 작성해 SQL 의 비교 연산 기능을 보완하는 역할을 함.
IF SAL > 2000
THEN REVISED_SALARY = SAL
ELSE REVISED_SALARY = 2000
END IF
- Null 함수
NULL 의 모든 연산은 NULL 이다. 그리고 해당 필요한 NULL 을 제대로 잘 사용해야 올바른 SQL 의 결과물이 나온다는 사실을 잘 기억해야할 것이다.
NVL -> 은 괄호 안에 값이 NULL 일 경우 내가 정하는 다른 값을 뽑아서 보여줄 수 있도록 한다.
예를 들면
SELECT NVL ( MGR, '값 없음 ') AS MGR
FROM EMP
WHERE ENAME='KING'
이럴 경우에는 ENAME 이 KING 일 경우가 없는 NULL 의 케이스라면 내가 설정해주는 값인 ' 값 없음 ' 의 스트링 값이 출력된다.
'이유's Programming > DBMS' 카테고리의 다른 글
[ 4 -1 ] 인덱스 기본 원리 / Balanced Tree ( B Tree) (4) | 2021.03.24 |
---|---|
SQL 연산자 (0) | 2021.03.23 |
[ 식별자 ] 본질식별자와 인조식별자 (0) | 2021.03.18 |
[ 2 -1 ] 관계와 조인의 이해 (0) | 2021.03.16 |
2-2. 정규화 ( 제 3 정규형, 반정규화와 성능 ) (0) | 2021.03.15 |