1. 단일 행 함수(Single Row Function)
1-1. 문자형 함수
- UPPER
- 모두 대문자로 변경한다.
SELECT UPPER(name)
FROM test1;
// tester -> TESTER
- LOWER
- 모두 소문자로 변경한다.
SELECT LOWER(name)
FROM test1;
// TESTER -> tester
- INITCAP
- 첫 문자를 대문자로 변경한다.
SELECT INITCAP(name)
FROM test1;
// test tester -> Test Tester
- CONCAT(문자값1, 문자값2)
- 문자열을 합친다.
SELECT CONCAT(name, title)
FROM test1;
// tester, 사원 -> tester 사원
- SUBSTR(문자값, a, b)
- a : 선택할 문자열의 시작 위치. 음수이면 끝에서부터 시작
- b : 선택할 문자열의 갯수. 생략할 경우 문자열의 끝까지 선택
- 문자열을 자른다.
SELECT SUBSTR(name, 0, 4)
FROM test1;
// tester -> test
- LENGTH(문자값)
- 문자열의 길이를 구한다.
SELECT LENGTH('테스트')
FROM test1;
// 3
- LPAD(문자값1, a, 문자값2), RPAD(문자값1, a, 문자값2)
- a : 전체 채울 자릿수
- 문자값2 : 채울 문자. 생략할 경우 공백으로 채워진다.
- 문자열을 원하는 문자로 채운다.
SELECT LPAD(name, 30, '*')
FROM test1;
// tester -> *****tester
- LTRIM(문자값1, 문자값2), RTRIM(문자값1, 문자값2)
- 문자값1의 왼쪽/오른쪽에서부터 더이상 문자값2를 만나지 않을 때까지 지운다.
- 지정한 문자를 만나지 않을 때까지 문자열을 자른다.
SELECT LTRIM(name, 'te')
FROM test1;
// tester -> ster
- TRANSLATE(문자값, a, b), REPLACE(문자값, a, b)
- a : 대체하고 싶은 문자
- b : 대체할 문자
- 문자를 다른 문자로 대체한다.
SELECT TRANSLATE(name, 't', 'T')
FROM test1;
// tester -> TesTer
1-2. 숫자형 함수
- ROUND(숫자값, a), TRUNC(숫자값, a)
- a : 0 또는 양수이면 소수점 이하 a+1자리에서 반올림하고, 음수이면 정수의 a자리에서 반올림한다. 생략하면 0이다.
- 숫자 반올림
SELECT ROUND(1234.5678, 0)
FROM test1;
// 1235
- MOD(숫자값, a)
- a : 숫자값을 나누기 할 수
- 나머지를 구한다.
SELECT MOD(11, 0)
FROM test1;
// 11
- POWER(숫자값1, 숫자값2)
- 제곱을 구한다.
SELECT POWER(3, 2)
FROM test1;
// 9
- SQRT(숫자값)
- 제곱근을 구한다.
SELECT SQRT(25)
FROM test1;
// 5
- SIGN(숫자값)
- 양수이면 1, 음수이면 -1, 0이면 0을 반환한다.
SELECT SIGN(10)
FROM test1;
// 1
- CHR(숫자값)
- 해당 숫자의 유니코드와 매칭되는 문자를 반환한다.
SELECT CHR(65)
FROM test1;
// A
1-3. 날짜형 함수
- SYSDATE
- 오늘 날짜 반환
SELECT SYSDATE
FROM test1;
// 24/06/26
- LAST_DAY(날짜값)
- 해당 달의 마지막 일자를 반환한다.
SELECT LAST_DAY('24/06/01')
FROM test1;
// 24/06/30
- MONTHS_BETWEEN(날짜값1, 날짜값2)
- 월 차이를 구한다.
SELECT MONTHS_BETWEEN('24/06/01', '24/07/01')
FROM test1;
// -1
- ADD_MONTHS(날짜값, 숫자값)
- 날짜값에서 숫자값 만큼의 월을 더한다.
SELECT ADD_MONTHS('24/06/01', 2)
FROM test1;
- ROUND(날짜값, 자리수)
- 날짜가 절반 이상이라면, 반올림된다.
- 자리수 : YEAR, MONTH
SELECT ROUND(SYSDATE, 'MONTH')
FROM test1;
// 24/07/01
- TRUNC(날짜값, 자리수)
- 해당 년도의 1월 1일을 반환한다.
SELECT TRUNC(SYSDATE, 'YEAR')
FROM test1;
// 24/01/01
- TO_CHAR(문자값, '형식')
- 숫자를 문자로 변환
SELECT TO_CHAR(3500, '$9999')
FROM test1;
// $3500
- 날짜를 문자로 변환
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD')
FROM test1;
// 2024-06-26
- TO_DATE(문자값, '형식')
SELECT TO_DATE('10 9월 2024', 'DD MONTH YYYY')
FROM test1;
// 24/09/10
- TO_NUMBER(문자값)
SELECT TO_NUMBER('1234')
FROM test1;
// 1234
2. 다중 행 함수 (Multi Row Function)
2-1. 그룹함수
- 함수를 여러 개 겹쳐서 사용할 수 있으며, 안쪽에서 바깥쪽의 순서로 적용된다.
함수3(함수2(함수1(컬럼값, 형식1), 형식2), 형식3)
- COUNT(a) : a의 행의 개수를 구한다.
- 그룹함수 중 유일하게 NULL 값을 고려한다.
- AVG(a) : a의 평균을 구한다.
- SUM(a) : a의 합계를 구한다.
- MIN(a) : a의 최소값을 구한다.
- MAX(a) : a의 최대값을 구한다.
- STDDEV(a) : a의 표준편차를 구한다.
- VARIANCE(a) : a의 분산을 구한다.
'Database' 카테고리의 다른 글
SQL :: 테이블 생성과 데이터 CRUD (0) | 2024.06.26 |
---|