[#SQLD] 제 6절 함수
제 6절 함수
1. 내장 함수 개요
: 각 벤더에서 제공하는 데이터베이스 설치 시 기본으로 제공되는 SQL내장함수
2. 문자형 함수
- LOWER (문자열) : 알파벳 문자를 소문자로 전환
- UPPER (문자열) : 알파벳 문자를 대문자로 변환
- ASCII (문자) : 문자나 숫자를 ASCII코드로 변환
- CHR/CHAR (ASCII번호) : 코드번호를 문자나 숫자로 변환
- CONCAT (문자열1, 문자열2) : 문자열 1, 2를 연결
- SUBSTR/SUBSTRING (문자열, m[,n]) : 문자열 중 m위치부터 n위치까지 반환, n없을 시 끝까지
- LENGTH/LEG (문자열) : 문자열의 개수를 숫자 값으로 반환
- LTRIM (문자열 [,지정문자]) : 문자열의 첫 문자부터 확인해 지정문자가 나타난다면 해당문자제거, 공백 값이 디폴트
- RTRIM (문자열 [,지정문자]) : 문자열의 마지막 문자부터 확인해 지정문자가 나타난다면 해당문자 제외, 공백 값이 디폴트
- TRIM ([leading | trailing | both] 지정문자 from 문자열) : 문자열에서 머리말, 꼬리말, 또는 양쪽에 있는 지정문자를 제거
3. 숫자형 함수
- ABS (숫자) : 절대값
- SIGN (숫자) : 양수/음수/0 구분
- MOD (숫자1, 숫자2) : 숫자1을 숫자2로 나누어 나머지 값을 리턴
- CEIL/CEILING (숫자) : 숫자보다 크거나 같은 최소 정수 리턴
- FLOOR (숫자) : 숫자보다 작거나 같은 최대 정수 리턴
- ROUND (숫자 [,m]) : 소수점 m자리에서 반올림하여 리턴 디폴트 0
- TRUNC (숫자 [,m]) : 소수 m자리에서 잘라서 버린다 디폴트 0
- SIN, COS, TAN : 삼각함수 값 리턴
- EXP(), POWER(), SQRT(), LOG(), LN() : 지수, 거듭제곱, 제곱근, 자연로그 값 리턴
4. 날짜형 함수
- 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)
: 날짜데이터에서 년/월/일 데이터 출력
5. 변환형 함수
- 명시적(Explicit) 데이터 유형 변환 : 데이터 변환한 형 함수로 데이터 유형을 변환하도록 명시해주는 경우
- 암시적(Implicit) 데이터 유형 변환 : 데이터베이스가 자동으로 데이터 유형을 변환하여 계산하는 경우
- 단일 행 변환형 함수의 종류
* ORACLE
- TO_NUMBER (문자열) : 문자열을 숫자로
- TO_CHAR (숫자|날짜) : 숫자, 날짜 FORMAT을 문자열 타입으로 변환
- TO_DATE (문자열 [,FORMAT]) : 문자열 -> 날짜타입 변환
* SQL SERVER
- CAST (expression as data_type [(length)]) : expression을 목표 데이터 유형으로 변환
- CONNECT (data_type [(length)], expression [,style]) : expression을 목표 데이터 유형으로 변환
6. CASE 표현
- CASE SIMPLE_CASE_EXPRESSION 조건 ELSE 표현절 END
: SIMPLE_CASE_EXPRESSION 조건이 맞으면 SIMPLE_CASE_EXPRESSION 조건내에 THEN 절을 수행, 조건이 맞지 않을 시 ELSE 절 수행
- CASE SEARCHED_CASE_EXPRESSION 조건 ELSE 표현절 END
: SEARCHED_CASE_EXPRESSION 조건이 맞으면 SEARCHED_CASE_EXPRESSION 조건내의 THEN절을 수행, 조건이 맞지 않을 시 ELSE 절 수행
7. NULL 관련 함수
가. NVL/ISNULL 함수
- NVL (표현식1, 표현식2)/ISNULL (표현식1, 표현식2) : 표현식1의 값이 NULL이면 표현식2 값을 출력
- NULLIF (표현식1, 표현식2) : 표현식1이 표현식2와 같으면 NULL을, 같지 않으면 표현식1을 리턴
- COALESCE (표현식1, 표현식2, ….) : 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다.
나. NULL과 공집합
* 일반적인 NVL/ISNULL 함수 사용
* 공집합의 NVL/ISNULL 함수 사용
다. NULLIF
- NULLIF (EXPR1, EXPR2) : EXPR1이 EXPR2와 같으면 NULL을 같지 않으면 EXPR1을 리턴
라. 기타 NULL 관련 함수 (COALESCE)
: COALESCE 함수는 인수의 숫자가 한정되어 있지 않으며, 임의의 개수 EXPR에서 NULL이 아닌 최초의 EXPR을 나타낸다.