Back-End/SQL 개발자 자격증

[ 데이터베이스 ] FUNCTION - 1

psy_er 2023. 10. 16. 22:54
728x90

[ 데이터베이스]FUNCTION - 1 

 

FUNCTION

 

입력 값이 많아도 출력은 오직 하나, M:1 관계

각각의 행에 대한 조작 결과리턴, SELECT, WHERE, ORDER BY 절에 단일 함수 사용 가능

특별한 제약이 없다면 함수의 인자로 함수 사용하는 중첩가능

 

 

함수의 종류

 

벤더(판매자)에서 제공하는 내장함수 (BUILT-IN FUNCTION)

사용자가 정의할 수 있는 함수 (USER DEFINED FUNCTION)

 

단일행 함수

다중행 함수 - 집계함수, 그룹함수, 윈도 함수

 

종류 내용 함수 예시
문자형 함수 문자를 입력하면 문자나 숫자 값을 반환 LOWER, UPPER, CONCAT, SUBSTR/SUBSTRING,
LENGTH/LEN, LTRIM, RTRIM, TRIM, ASCII
숫자형 함수 숫자를 입력하면 숫자 값을 반환 ABS, MOD, ROUND, TRUNC, SIGN, CHR/CHAR,
CEIL/CEILING, FLOOR,EXP, LOG, LN, POWER,
SIN, COS, TAN
날짜형 함수 DATE 타입 값 연산 SYSDATE/GETDATE, EXTRACT/DATEPART,
TO_NUMBER(TO_CHAR(d, 'DD' | 'MM' | 'YY')) /
DAY|MONTH| YEAR
변환형 함수 문자, 숫자, 날짜형 값의 데이터 타입 변환 TO_CHAR, TO_NUMBER, TO_DATE/ CAST, CONVERT
NULL 관련 함수 NULL 처리 하기 위한 함수 NVL(오라클) / ISNULL(SQL) , NULLIF, COALESCE

 

문자형 함수

 

LOWER (문자열) : 문자열의 알파벳 문자를 소문자로 

UPPER (문자열) : 문자열의 알파벳 문자를 대문자로 

ASCII (문자) : 문자나 숫자를 ASCII 코드 번호로 

CHR/CHAR (ASCII번호) : ASCII 코드 번호를 문자나 숫자로 

CONCAT (문자열 1, 문자열 2) : 문자열 1과 문자열 2를 연결한다. 연결 연산자 '||' (ORACLE)과 '+'(SQL)와 동일

SUBSTR/SUBSTRING (문자열, m [, n]) : 문자열 중 m위치에서 n개의 문자 길이에 해당하는 문자 반환, n 생략 마지막

LTRIM (문자열 [, 지정문자]) : 문자열 첫 문자부터 지정 문자가 나타나면 해당 문자 제거, 공백값 디폴트

RTRIM (문자열 [, 지정문자]) : 문자열 마지막 문자부터 지정 문자가 나타나면 해당 문자 제거, 공백값 디폴트

TRIM ([leading|trailing|both]) : 문자열 머리말, 꼬리말, 양쪽 지정 문자 제거, 가운데는 살려둠 

LENGTH/LEN (문자열) : 문자열의 개수를 숫자값으로 돌려줌

ex) SELECT LENGTH('SQL Expert') FROM DUAL;

SELECT LEN('SQL Expert');

 

숫자형 함수

 

ABS (숫자) : 숫자의 절댓값 리턴

SIGN (숫자) : 숫자가 양수(1 출력) 인지, 음수(-1 출력) 인지, 0(0 출력) 인지 구별

MOD (숫자 1, 숫자 2) : 숫자 1을 숫자 2로 나누어 나머지 값 리턴

ROUND (숫자, [, M]) : 숫자 소수점 M자리에서 반올림 리턴, M 생략 디폴트 0

TRUNC (숫자, [, M]) : 숫자 소수 M자리 잘라서 버림, M 생량 디폴트 0

CEIL/CEILING (숫자) : 숫자보다 크거나 같은 최소 정수를 리턴

FLOOR (숫자) : 숫자보다 작거나 같은 최소 정수 리턴

EXP(), POWER() , SQRT(), LOG(), LN() : 숫자 지수, 거듭, 제곱근, 자연로그 값 리턴
SIN(), COS(), TAN() : 숫자의 삼각함숫값 리턴

 

날짜형 함수

 

ORACLE / SQL 구분

SYSDATE/ GETDATE() : 현재 날짜와 시각 출력

EXTRACT('YEAR' | 'MONTH' | 'DAY' from d) / DATEPART('YEAR' | 'MONTH' | 'DAY', d)

: 날짜 데이터에서 년/월/일 데이터 출력, 시간/분/초도 가능

TO_ NUMBER(TO_CHAR(d, 'YYYY')) / YEAR(d) : 날짜 데이터에서 년 데이터 출력, EXTRACT, DATEPART와 같은 기능

TO_ NUMBER(TO_CHAR(d, 'MM')) / MONTH(d) : 날짜 데이터에서 년 데이터 출력, EXTRACT, DATEPART와 같은 기능

TO_ NUMBER(TO_CHAR(d, 'DD')) / DAY(d) : 날짜 데이터에서 년 데이터 출력, EXTRACT, DATEPART와 같은 기능

 

날짜형 함수 연산

 

날짜 1 + 숫자 : 숫자만큼의 날수를 날짜에 더한다

날짜 1 - 숫자 : 숫자만큼의 날수를 날짜에서 뺀다

날짜 1 - 날짜 2 : 일수가 나옴

날짜 1 + 숫자/24 : 시간을 날짜에 더함

 

 

변환형 함수

 

명시적 데이터 유형 변환 : 데이터 변환 함수로 명시해 변환시킴

암시적 데이터 유형 변환 : 데이터 자동으로 변환하여 계산

=> 암시적 인덱스 미사용 성능 오류, 명시적 데이터 변환이 더 좋음

 

ORACLE 변환함수

TO_CHAR(숫자|날짜 [, FORMAT]) : 숫자나 날짜를 주어진 FORMAT 형태로 문자열 타입 변환

TO_NUMBER(문자열) : 문자열을 숫자로 변환

TO_DATE(문자열 [, FORMAT]) : 문자열을 주어진 FORMAT 형태로 날짜로 변환

 

SQL 변환함수

CAST(expression AS data_type [(length)]) : expression을 목표 데이터 유형으로 변환

CONVERT(data_type [(length)], expression [, style])  : expression을 목표 데이터 유형으로 변환

728x90