9. 함수
- 벤더에서 제공하는 내장 함수 / 사용자가 정의하는 함수
- 단일행 함수 / 다중행 함수
1) 단일행 함수
- 함수의 입력 값이 단일행 값이 입력되는 함수
- 내장형 함수 : 형변환 함수, 문자열 및 숫자형 함수, 날짜형 함수가 있음. SELECT, WHERE, ORDER BY 절에서 사용 가능
(1) DUAL 테이블
- Oracle 데이터베이스에 의해 자동으로 생성되는 테이블. 임시로 사용 할 수 있는 테이블로 모든 사용자가 사용 가능
=> 일종의 DUMMY테이블
- 사용자 테이블이 필요 없는 SQL문장인 경우에 필수적으로 FROM 절에 DUAL 테이블 지정
- SQL SERVER 일 경우 사용자 칼럼 사용할 때는 FROM절이 필수이나, 그렇지 않은 경우는 사용하지 않음
(2) 내장형 함수의 종류
* 형변환 함수 (TO_NUMBER, TO_CHAR( ,[FORMAT]), TO_DATE( , FORMAT)
- ORACLE
TO_NUMBER(문자열) | 문자열을 숫자로 변환 |
TO_CHAR(숫자 혹은 날짜, [FORMAT]) | 숫자 혹은 날짜를 지정된 FORMAT형태의 문자로 변환 |
TO_DATE(문자열, FORMAT) | 문자열을 지정된 FORMAT의 날짜형으로 변환 |
- SQL SERVER
CAST( EX AS TARGET ) | EX를 TARGET 데이터 유형으로 변환 |
CONVERT ( TARGET, EX) | EX를 TARGET 데이터 유형으로 변환 |
* 문자형 함수
ASCII (문자) |
문자 혹은 숫자를 ASCII 코드 값으로 변환 A(65) |
CHAR (ASCII코드값) |
ASCII 코드 값을 문자로 변환 |
SUBSTR (문자열, m, n) |
문자열에서 m번쨰 위치부터 n개를 자름 |
CONCAT (문자열1, 문자열2) |
문자열 1번과 문자열 2번 결합 / Oracle 은 || , MS-SQL은 + 사용 가능 |
LOWER |
영문자를 소문자로 변환 |
UPPER |
영문자를 대문자로 변환 |
LENGTH(문자열) / LEN(문자열) |
공백을 포함한 문자열의 길이 |
LTRIM(문자열, 지정문자) |
왼쪽에 지정된 문자를 삭제. 지정된 문자 생략시 공백 삭제 |
RTRIM(문자열, 지정문자) |
오른쪽에 지정된 문자를 삭제. 지정된 문자 생략시 공백 삭제 |
TRIM(문자열, 지정문자) |
양쪽에 지정된 문자를 삭제. 지정된 문자 생략시 공백 삭제 |
* 날짜형 함수
SYSDATE |
오늘 날짜를 날짜 타입으로 알려줌 |
EXTRACT('YEAR'|'MONTH|'DAY' FROM D) |
날짜에서 년, 월, 일 알고싶은 것을 조회 가능 |
* 숫자형 함수
ABS(숫자) |
절대값 반환 |
SIGN(숫자) |
양수, 음수, 0 구별 |
MOD(숫자1, 숫자2) |
숫자1을 숫자2로 나누어 나머지 계산. % 사용 가능 |
CEIL/CEILING(숫자) |
숫자보다 크거나 같은 최소의 정수 반환 |
FLOOR(숫자) |
숫자보다 작거나 같은 최대의 정수 반환 |
SIN(). COS(), TAN() | 숫자의 삼각함수 값 반환 |
EXP(), POWER(), SQRT() | 숫자의 지수, 거듭제곱, 제곱근 값 반환 |
LOG(), LN() | 숫자의 자연로그 값 반환 |
ROUND(숫자, m) |
소수점 m자리에서 반올림 (m 기본값 0) |
TRUNC(숫자, m) |
소수점 m자리에서 절삭 (m 기본값 0) |
* NULL관련 함수
NVL (표현식1, 표현식2) ISNULL (표현식1, 표현식2) | - NULL이면 다른 값으로 바꿈 - 표현식1 결과가 NULL이면 표현식 2값 출력 (표현식간 데이터타입 일치) |
NVL2 (표현식1, 표현식2, 표현식2) | - NVL 함수와 DECODE를 합침 - 표현식1이 NULL이 아니면 표현식2, NULL이면 표현식3 리턴 |
NULLIF (표현식1, 표현식2) | - 두 개의 값이 값으면 NULL, 다르면 첫번째 값 반환 -표현식1 = 표현식2 -> NULL리턴, 표현식1 != 표현식2 -> 표현식1 리턴 |
COALESCE (표현식1, 표현식2 ...) | - 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타냄 - COALESCE(mrg, 1) -> mgr이 NULL이 아니면 1 반환 - 모든 표현식이 NULL이라면 NULL 리턴 |
2) 다중행 함수
- 함수의 입력 값이 다중행 값이 입력되는 함수
- 여러 행들의 그룹이 모여 그룹당 단 하나의 결과를 돌려줌
(1) 집계함수
'[자격증] SQLD (SQL Developer)' 카테고리의 다른 글
[SQLD][책없이 공부]2과목 01. SQL 기본_06 DCL, TCL (0) | 2019.11.18 |
---|---|
[SQLD][책없이 공부]2과목 01. SQL 기본_05 DECODE와 CASE문, ROWNUM과 ROWID (0) | 2019.11.14 |
[SQLD][책없이 공부]2과목 01. SQL 기본_03 DML (0) | 2019.11.14 |
[SQLD][책없이 공부]2과목 01. SQL 기본_02 DDL (0) | 2019.11.14 |
[SQLD][책없이 공부]2과목 01. SQL 기본_01 관계형 데이터 베이스, SQL 종류 (0) | 2019.11.14 |