함수
TRIM 문자열에서 머리말 꼬리말 또는 양쪽에있는 지정문자를 제거한다
숫자형 함수
ABS(숫자) 숫자의 절대값
SIGN(숫자) 숫자가 양수인지 음수인지 0인지를 구별
MOD(숫자1, 숫자2) 숫자1을 숫자2로 나누어 나머지 값을 리턴한다
CEIL/CEILING(숫자) 숫자보다 크거나 같은 최소 정수를 리턴한다
EX) CEIL(38.123) 39
FLOOR(숫자) 숫자보다 작거나 같은 최대 정수를 리턴한다
EX) FLOOR(38.123) 38
ROUND(숫자,M) 숫자를 소수점 M자리에서 반올림하여 리턴한다
TRUNC(숫자,M) 숫자를 소수 M자리에서 잘라서 버린다
날짜형 함수
SYSDATE/GETDATE() 현자 날짜와 시각을 출력한다
EXTRACT('YEAR'|'MONTH'|'DAY' from d)
/ DATEPART('YEAR'|'MONTH'|'DAY',d) 날짜 데이터에서 년/월/일 데이터를 출력할 수 있다.
시간/분/초도 가능함
TO_NUMBER(TO_CHAR(d,'YYYY'))/YEAR(d),
TO_NUMBER(TO_CHAR(d,'MM'))/MONTH(d),
TO_NUMBER(TO_CHAR(d,'DD')) / DAY(d) 날짜 데이터에서 년/월/일 데이터를 출력할수 있다
날짜 + 숫자 = 날짜 (숫자만큼의 날수를 날짜에 더한다)
날짜 - 숫자 = 날짜 (숫자만큼의 날수를 날짜에서 뺀다)
날짜1 - 날짜2 = 날짜수 (다른 하나의 날짜에서 하나의 날짜를 뺴면 일수가 나온다
날짜 + 숫자/24 = 날짜 (시간을 날짜에 더한다)
변환형 함수
명시적(Explicit) 데이터 유형 변환 : 데이터 변환형 함수로 데이터 유형을 변환하도록 명시해 주는 경우
암시적(Implicit) 데이터 유형 변환 : 데이터베이스가 자동으로 데이터 유형을 변환하여 계산하는 경우
TO_NUMBER(문자열) alphanumeric 문자열을 숫자로 변환한다
TO_CHAR(숫자|날짜,FORMAT) 숫자나 날짜를 주어진 포맷 형태로 문자열 타입으로 변환한다
TO_DATE(문자열,FORMAT) 문자열을 주어진 FORMAT 형태로 날짜 타입으로 변환한다
CAST (expression AS data_type (lenght)) expression을 목표 데이터 유형으로 변환한다
CONVERT (data_type (length), expression ,style) expression을 목표 데이터유형으로 변환한다
CASE 표현
CASE
SIMPLE_CASE_EXPRESSION 조건
ELSE 표현절
END
SIMPLE_CASE_EXPRESSION 조건이 많으면 SIMPLE_CASE_EXPRESSION 조건내의 THEN 절을 수행하고 조건이 맞지 않으면 ELSE 절을 수행한다
DECODE(표현식, 기준값1, 값1 , 기준값2, 값2, ... , 디폴트값)
표현식의 값이 기준값1 이면 값 1을 출력하고 기준값 2면 값 2를 출력한다
NULL 관련 함수
NVL/ISNULL 함수
-표현식 1의 값이 NULL이면 표현식 2값을 출력한다
-결과값을 NULL이 아닌 다른 값을 얻고자 할 때 NUL/ISNULL 함수를 사용한다
-NULL 값의 대상이 숫자 유형 데이터인 경우는 주로 0으로, 문자 유형데이터인 경우는 블랭크보다는 'x'같이 해당 시스템에서 의미없는 문자로 바꾼다
NVL(표현식1,표현식2)/ISNULL(표현식1,표현식2)
표현식1의 결과값이 NULL이면 표현식2의 값을 출력한다
단 표현식1과 표현식2의 결과 데이터 타입이 같아야한다
NULLIF(표현식1, 표현식2) 표현식1이 표현식2와 같으면 NULL을 같지 않으면 표현식1을
리턴한다
COALESCE(표현식1,표현식2,...)임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다 모든 표현식이 NULL이라면 NULL을 리턴한다
NULL과 공집합
SELECT 1 FROM DUAL WHERE 1=2; 와 같은 조건이 대표적인 공집합을 발생시키는 쿼리이며,
위와 같이 조건에 맞는 데이터가 한 건도 없는 경우를 공집합이라고 하고 NULL 데이터와는 또 다르게 이해해야 한다.
NULLIF(표현식1,표현식2)
-표현식1이 표현식2와 같으면 NULL을, 같지 않으면 표현식1을 리턴한다
SQL>>
"사원 테이블에서 MGR와 7698이 같으면 NULL을 표시하고 같지않으면 MGR를 표시한다"
SELECT ENAME,EMPNI,MGR,NULLIF(MGR,7698) NUIF FROM EMP;
COALESCE(표현식1,표현식2,...)
-임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을나타낸다
-COALESCE 함수는 인수의 숫자가 한정되어 있지 않으며,
임의의 개수 EXPR에서 NULL이아닌 최초의 EXPR을 나타낸다
만일 모든 EXPR아 NULL이라면 NULL을 리턴한다
SQL>>
"사원 테이블에서 커미션을 1차 선택값으로 급여를 2차 선택값으로 선택하되
두 칼럼 모두 NULL인 경우는 NULL로 표시한다
SELECT ENAME,COMM,SAL,COALESCE(COMM,SAL) COAL FROM EMP;