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
더 많은 내용을 알고 싶은 분은 위의 책을 보시길 바랍니다.
긴 글 읽어주셔서 감사합니다.
틀린 부분이 있으면 댓글을 달아주시면 감사하겠습니다.
📧 : may3210@g.skku.edu
'개발 > Oracle' 카테고리의 다른 글
[Database] 데이터 집계 - HAVING (0) | 2022.02.15 |
---|---|
[Database] 데이터 집계 - GROUP BY (0) | 2022.02.15 |
[Database] 데이터 조회, SELECT 문 (0) | 2022.02.14 |
[Database] 데이터 입력과 삭제 (0) | 2022.02.14 |
[Database] SQL 입문 - 2 (0) | 2022.02.14 |