개발/Oracle

[DataBase] SQL 연산자와 함수

Jinhwan 2022. 2. 15. 09:48

SQL연산

연산자란 피연산자를 대상으로 특정 연산을 수행 후 결과를 반환하는 역할을 한다.

SQL 연산자는 기본적인 계산기와 같은 연산자를 가진다.

+, - , *, / 가 그 예시이다.

하지만 특별하게 ||를 지원한다. 이는 두 문자열을 결합하여 그 결과를 반환하게 되는 연산자이다.

SELECT 'A' || 'B'
	FROM dual;

dual은 오라클 sql에서 사용할 수 있는 임시 테이블이다. 연산 결과를 보고자할 때 사용한다.


주요 SQL 함수


1. 숫자형 함수

ABS, CEIL, EXP, FLOOR, LN, LOG, MOD, POWER, ROUND, SIGN, SORT, TRUNC

등이 존재한다.

그 중에 ROUND가 헷갈려서 따로 설명을 적어보자면

ROUND(n, i) : n의 소수점 기준 ( i + 1) 번째 에서 반올림한 값을 반환, 정수로 만들 시 i 는 0을 반환한다.

SELECT ROUND(10.545,2)
	FROM DUAL;

--> 10.55

2. 문자형 함수

함수 의미
CHR(n)  n은 숫자로 n 값에 해당 되는 문자를 반환
CONCAT(char1, char2) char1과 char2 문자를 결합한 결과를 반환,
INITCAP(char) char의 첫번째 문자를 대문자로 변환
LOWER(char) char문자를 소문자로 변환
UPPER char을 대문자로 변환
LPAD(expr1 , n, expr2) expr1을 반환하는데 expr2를 (n - expr1길이)만큼 왼쪽을 채워 반환
RPAD(expr1, n, expr2) expr1을 반환하는데 expr2를 (n - expr1길이)만큼 오른쪽을 채워 반환
LTRIM(expr1, expr2) expr1의 왼쪽에서 expr2를 제거한 결과값
RTRIM(expr1, expr2) expr1의 오른쪽에서 expr2를 제거한 결과를 반환
SUBSTR(char, n1, n2) char에서 n1 위치에서 시작해 n2길이만큼을 잘라낸 결과를 반환
TRIM(char) char의 양쪽 끝 공백을 제거한 결과를 반환
ASCII(char) char문자의 ASCII 코드 값을 반환,
INSTR(char1, char2, n1, n2) - char1에서 char2문자를 찾아 그 시작위치를 반환한다.
- n1은 char1에서 몇번째 문자부터 찾을 것인지 나타내는 문자
- n2는 char1에서 char2와 일치하는 문자 중에 몇번 째 문자의 위치를 반환할 것인지를 나타내는 변수
LENGTH(char)  char 문자의 글자 수를 반환함

3. 날짜형 함수

함수 의미
SYSDATE  현재 일자와 시간을 반환
ADD_MONTHS(date, n) date 날짜에 n개월을 더한 날짜를 반환.
MONTH_BETWEEN(date1, date2) date1과 date2 두 날짜 사이의 개월 수를 반환.
LAST_DAY(date) date가 속한 월의 마지막 일자를 반환
NEXT_DAY(date, expr) date 날짜를 기준으로 가장 가깝게expr에 명시한 요일(문자열 또는 숫자)에 해당하는 날짜를 반환
ROUND(date, format) date를 format기준으로 반올림한 날짜로 변환해준다.
TRUNC(date, format) date를 format 기준으로 잘라낸 날짜 변환.

4. 형변환 함수

특정 데이터 형을 다른 데이터 형으로 변환할 때 사용하는 함수들이다

함수 의미
TO_NUMBER( char )  char을 숫자로 변환
TO_CHAR( n, number_format) 숫자 n을 number_format에 맞게 문자열로 바꿔준다.
TO_CHAR(date, date_format) 날짜인 date를 date, format에 맞게 문자로 변환
TO_DATE( char, date_format) 문자 char을 date_format에 맞게 날짜로 변환

이러한 형 변환 함수에 사용하는 형식은 다음과 같다.

 

4.1 숫자 변환 형식

형식 의미
, 콤마
. 소수점 표시
9 한 자리 숫자를 나타내는 데, 실제 숫자의 자리수와 같거나 크게 명시해야함.

4.2 날짜 변환 형식

형식 의미
YYYY, YYY, YY, Y  연도표시
MONTH, MON 월 표시(ex. 4월)
MM 월 표시(ex. 04)
D 주중 일자를 표시(1 ~ 7)
DD 주중 일자를 표시(01 ~ 99)
DDD 주중 일자를 표시(001 ~ 365)
DAY 주중 일자를 요일로 표현(ex. 월요일)
DL 일을 요일까지 까지 표현
HH, HH12 시간을 01, 02, ..., 12형태로 표현
HH24 시간을 01, ... 24형태로 표현
MI 분을 01, 02 ... 59 형태로 표현
SS 초를 01, 02 ... 59 형태로 표현
WW 주를 01, ... 53 형태로 표현

NULL과 관련된 함수

함수 의미
NVL ( expr1, expr2 )  expr1이 null이면 expr2를 반환하는 함수
NVL2 ( expr1, expr2, expr3) expr1이 null인 경우 expr3, 아닌 경우는 expr2
COALESCE ( expr1, expr2 ... ) expr1에서 부터 NULL이 아닌 값들을 반환
NULLIF ( expr 1, expr 2 ) expr1과 expr2가 같으면 NULL 아니면 expr1을 반환

기타 함수

함수 의미
GREATEST ( expr1, expr2 ... )  매개변수 중에 가장 큰 값을 출력한다.
LEAST(expr1, expr2 ... ) 매개변수 중에 가장 작은 값을 반환
DECODE(expr1, comp_val1, result1, comp_val2 , result2 ... ) expr과 같은 comp_val을 찾으면 그에 해당 하는 result를 반환한다.

CASE 표현식

단순형 CASE 표현식

CASE expr 
WHEN comparision_expr1 THEN return_expr1
WHEN comparision_expr2 THEN return_expr2
			...
ELSE else_expr
END

expr 값이 comparision_expr과 같으면 그에 해당하는 return_expr를 반환해준다.

 

검색형 CASE 표현식

CASE 
	WHEN condition1 THEN return_expr1
	WHEN condition2 THEN return_expr2
		...
	ELSE else_expr

비교 조건(condition i) 에 해당하는 return_expr를 반환한다.


본 글은 '누구나 쉽게 SQL'이라는 책을 읽고 정리한 내용입니다.

http://www.yes24.com/Product/Goods/74311553

 

누구나 쉽게 SQL - YES24

설명은 쉽게 + 기본기는 튼실하게두 마리 토끼를 다 잡은 SQL 입문서!『누구나 쉽게 SQL』 은 데이터베이스의 기초부터 SQL 사용법과 동작 원리까지 반드시 알아야 하는 핵심만 담은 도서이다. 핵

www.yes24.com

더 많은 내용을 알고 싶은 분은 위의 책을 보시길 바랍니다.


긴 글 읽어주셔서 감사합니다.

 

틀린 부분이 있으면 댓글을 달아주시면 감사하겠습니다.

 

📧 : may3210@g.skku.edu

🔗 : https://github.com/RicardoKim