1. 단일 행 함수란?
단일 행 함수는 함수 하나의 연산 당 결과 행도 하나라는 의미이다.
즉, 총 15 개의 데이터가 있는 컬럼을 대상으로 함수를 실행하였을 때 결과 행 또한 15 개가 출력되는 것이다.
2. 문자 함수
문자 데이터를 입력받아 문자나 숫자로 결과를 반환하는 함수이다.
1️⃣ 대소문자 변환 함수
INITCAP : 문자열의 첫 문자만 대문자로 변환
INITCAP('student') 👉 Student
LOWER : 문자열 전체를 소문자로 변환
LOWER('STUDENT') 👉 student
UPPER : 문자열 전체를 대문자로 변환
UPPER('student') 👉 STUDENT
특히 LOWER 과 UPPER 함수는 검색어의 키워드를 구분하기 할 때에도 유용하게 활용할 수 있다.
사용자가 영문 검색어에 대해 소문자로 작성할지 대문자로 작성할지 섞어서 작성할지 알 수 없기 때문에
입력 받은 데이터 모두를 소문자 또는 대문자로 강제 변환하여 한 가지 방법으로만 내부적으로 검색할 수 있도록 하는 것이다.
2️⃣ 문자열 길이 반환 함수
LENGTH : 문자열 길이를 반환
LENGTH('학생') 👉 2
LENGTHB : 문자의 바이트 수를 반환(SQL 의 인코딩 환경에 따라 다르게 나올 수 있다.)
LENGTHB('학생') 👉 4
3️⃣ 문자 조작 함수
CONCAT : 두 문자열을 결합, '||' 와 동일
CONCAT('문자열', '문자열')
SUBSTR : 특정 문자 또는 문자열 일부를 추출
SUBSTR('문자열', '시작 위치', '추출할 문자 개수')
INSTR : 특정 문자가 있는 첫 번째 위치를 숫자로 반환
INSTR('문자열', '특정 문자')
LPAD : 문자열을 오른쪽 정렬 후, 왼쪽으로 지정한 문자를 지정한 총 길이에서 문자열 길이를 뺀 만큼 삽입
LPAD('문자열', '총 길이', '지정 문자')
RPAD : 문자열을 왼쪽 정렬 후, 오른쪽으로 지정한 문자를 지정한 총 길이에서 문자열 길이를 뺀 만큼 삽입
RPAD('문자열', '총 길이', '지정 문자')
LTRIM : 문자열의 맨 앞 부분에 지정한 문자가 있을 경우 삭제 처리
LTRIM('문자열', '지정 문자')
RTRIM : 문자열의 맨 뒷 부분에 지정한 문자가 있을 경우 삭제 처리
RTRIM('문자열', '지정 문자')
이 문자 함수를 잘 이용하면 이러한 형태를 출력하는 것도 가능하다.
📌 시작 번호는 1
SQL 상에서의 INDEX 시작 번호는 1부터이다.
때문에 추출하고자 하는 지정 글자가 대상 문자열에 없는 경우에는 0을 반환하게 된다.
(자바에서는 0부터 시작하고 없는 경우에는 -1을 반환)
3. 숫자 함수
ROUND : 지정한 소수점 자리로 대상 숫자를 반올림한다.
TRUNC : 지정한 소수점 자리까지만 남기고 값을 버린다.
MOD : 숫자 1 을 숫자 2로 나눈 나머지 값을 반환한다.
CEIL : 지정한 값보다 큰 수 중 가장 작은 정수를 반환한다.
FLOOR : 지정한 값보다 작은 수 중 가장 큰 정수를 반환한다.
이 숫자 함수는 날짜에도 적용할 수 있는데 다음과 같은 연산도 가능해진다.
이는 오늘 날짜를 대상으로 일 단위에서 반올림을 시도한 것이다.
현재 시간을 반영하여 하루 중 반이 지나갔다면 다음 날로, 그렇지 않다면 그대로를 반환하게 되는 것이다.
📌 날짜 지정하기
날짜를 따로 지정하기 위해서는 TO_DATE() 함수를 이용하여 날짜를 기입해야 한다.
단순히 '2022/10/26'로 작성하게 되면 문자열로 인식하기 때문에 날짜로 동작하지 않는다.
4. 날짜 함수
날짜 + 숫자 = 날짜 : 날짜에 일 수를 가산하여 날짜를 계산한다.
날짜 - 숫자 = 날짜 : 날짜에 일 수를 감산하여 날짜를 계산한다.
날짜 - 날짜 = 일수 : 날짜와 날짜를 감산하여 일 수를 계산한다.
날짜 + 숫자 / 24 = 날짜 : 날짜에 시간을 가산하여 날짜 계산
📌 날짜의 연산
날짜에서의 연산은 시간을 제외해야 정확한 연산이 가능하기 때문에 ROUND 또는 TRUNC 등의 숫자 함수를 통해 적절히 함수를 사용하는 것이 좋다.
🔷 날짜 함수의 종류
SYSDATE 👉 날짜 : 시스템의 현재 날짜
MONTHS_BETWEEN 👉 숫자 : 날짜와 날짜 사이의 개월 수를 계산
ADD_MONTHS 👉 날짜 : 날짜에 개월 수를 더한 날짜 계산
NEXT_DAY 👉 날짜 : 작성한 날짜 이후의 첫 지정 요일의 날짜를 계산
LAST_DAY 👉 날짜 : 월의 마지막 날짜를 계산
ROUND 👉 날짜 : 날짜를 반올림
TRUNC 👉 날짜 : 날짜를 절삭
📌 요일 표기하기
SQL 에서는 1 부터 일요일로 계산하며 다음과 같이 사용할 수 있다.
만약 시스템이 가동되는 위치가 서양권이면 그곳에 맞춰 'SUN', 'SUNDAY' 등으로 표기 가능하다.
'SQL > ORACLE' 카테고리의 다른 글
GROUP BY : 그룹 함수 (0) | 2022.11.02 |
---|---|
데이터 타입 변환 (0) | 2022.10.28 |
정렬 SORTING (0) | 2022.10.24 |
집합 연산자 : UNION (0) | 2022.10.24 |
NULL 이란? (0) | 2022.10.24 |