숫자형 함수
1. ABS(n) : 매개변수 n의 절댓값을 반환
SELECT ABS(-100) FROM DUAL;
DUAL 테이블은 오라클에서 사용하는 임시 테이블이다.
2. CEIL(n) : 소수점 아래를 다 버리고 1을 더한다.
SELECT CEIL(10.3) FROM DUAL;
3. FLOOR(n) : 소수점 아래를 다 버린다.
SELECT FLOOR(10.7) FROM DUAL;
4. POWER(x, n) : 매개변수 n번만큼 x를 거듭해서 곱한다.
SELECT POWER(3, 5) FROM DUAL;
5. EXP(n) : 매개변수 n번만큼 e를 거듭해서 곱한다.
SELECT EXP(1) FROM DUAL;
6. LN(n) : 매개변수 n의 자연로그 값을 반환
SELECT LN(10) FROM DUAL;
7. LOG(n1, n2) : n2를 밑으로 하고 n1을 진수로 하는 LOG 값을 반환
밑(n1)을 몇번 곱하면 진수(결과값)이 되는지의 지수승을 구하라는 뜻이다.
SELECT LOG(10, 100) FROM DUAL;
8. MOD(n1, n2) : n2/n1의 나머지 반환
SELECT MOD(11, 4) FROM DUAL;
9. OROUND(n, i) : n의 값을 (i+1)번째 소숫점 자리에서 반올림해서 반환
SELECT ROUND(1000.1543, 1) FROM DUAL;
10. SIGN(n) : n의 부호를 반환 - n이 양수라면 1, n이 음수라면 -1, n이 0이라면 0을 반환
SELECT SIGN(-100) FROM DUAL;
11. SQRT(n) : n의 제곱근 값을 반환
SELECT SQRT(4) FROM DUAL;
12. TRUNCE(n1, n2) : 소숫점 이하 n2자리까지 버린다.
SELECT TRUNC(10.549, 2) FROM DUAL;
문자형 함수
1. CHR(n) : n은 숫자이고, n값에 해당하는 아스키코드(ASKII) 값을 반환
SELECT CHR(72) || CHR(105) || CHR(33) FROM DUAL;
2. CONCAT(str1, str2) : str1과 str2를 합쳐서 반환
SELECT CONCAT('a', 'B') FROM DUAL;
3. INITCAP(char) : char 문자열의 첫 번재 문자를 대문자로 변환
SELECT INITCAP('hello') FROM DUAL;
4. LOWER(char) : char 문자열을 소문자로 변환
SELECT LOWER('hElLo') FROM DUAL;
5. UPPER(char) : char 문자열을 대문자로 변환
SELECT UPPER('hElLo') FROM DUAL;
6. LPAD(표시할 문자열, 총 글자수, 채움 문자열)
: 표시할 문자열을 반환
: 리턴할 때 왼쪽에 채움 문자를 (총 글자수 - 표시할 문자열 수)만큼 왼쪽에 채워서 반환
SELECT LPAD('Hello', 10, '#') FROM DUAL;
Hello가 5글자이므로 10-5 = 5이다. 따라서 5개의 #문자를 왼쪽에 채워서 반환한다.
7. RPAD(표시할 문자열, 총 글자수, 채움 문자열)
: 리턴할 때 오른쪽에 채움 문자를 (총 글자수 - 표시할 문자열 수)만큼 오른쪽에 채워서 반환
SELECT RPAD('Hello', 10, '#') FROM DUAL;
LPAD와 같은 개념으로 오른쪽에 채워서 반환한다는 점만 다르다.
8. LTRIM(표시할 문자열, 제거할 문자)
: 표시할 문자열 중에서 왼쪽부터 제거할 문자를 제거하고 남은 문자열 반환
SELECT LTRIM('##Hello##', '#') FROM DUAL;
9. RTRIM(표시할 문자열, 제거할 문자)
: 표시할 문자열 중에서 오른쪽부터 제거할 문자를 제거하고 남은 문자열을 반환
SELECT RTRIM('##Hello##', '#') FROM DUAL;
10. TRIM(표시할 문자열) : 표시할 문자열 중에서 왼쪽과 오른쪽에서 공백을 제거하고 남은 문자열을 반환
SELECT TRIM(' Hello ') FROM DUAL;
공백만 제거한다는 점을 기억하자.
11. SUBSTR(원본 문자열, n1, n2)
: 원본 문자열에서 n1 위치에서 시작하여 n2 길이만큼을 잘라낸 결과 문자열을 반환
-- 1부터 시작해서 3개 가져오기
SELECT SUBSTR('ABCDEFG', 1, 3) "부분문자열" FROM DUAL; -- 결과 : ABC
-- 0부터 시작해서 3개 가져오기
-- 0부터 시작하면 데이터베이스는 일반적인 업무에서는 시작을 1로 본다.
-- 따라서 0부터는 1부터 시작과 같다.
SELECT SUBSTR('ABCDEFG', 0, 3) "부분문자열" FROM DUAL; -- 결과 : ABC
-- 시작 위치만 지정하는 경우
SELECT SUBSTR('ABCDEFG', 0) "부분문자열" FROM DUAL; -- 결과 : ABCDEFG
-- 시작 위치를 3으로 지정하는 경우
SELECT SUBSTR('ABCDEFG', 3) "부분문자열" FROM DUAL; -- 결과 : CDEFG
-- 시작 위치를 -1로 지정하는 경우
-- 시작 방향이 양수 : 왼쪽, 시작방향이 음수 : 오른쪽 기준
SELECT SUBSTR('ABCDEFG', -1) "부분문자열" FROM DUAL; -- 결과 : G
-- 시작 위치를 -4로 지정하는 경우
SELECT SUBSTR('ABCDEFG', -4) "부분문자열" FROM DUAL; -- 결과 : DEFG
-- 시작 위치를 -2로 지정할 때 길이가 1인 경우
SELECT SUBSTR('ABCDEFG', -2, 1) "부분문자열" FROM DUAL; -- 결과 : F
-- 시작 위치를 -2로 지정할 때 길이가 -1인 경우
-- 길이는 음수가 없다.
-- -1 길이라는 것은 실무에서 방향과 크기가 합쳐진 것이므로 길이는 크기이다.
-- 따라서 NULL을 리턴한다.
SELECT SUBSTR('ABCDEFG', -2, -1) "부분문자열" FROM DUAL; -- 결과 : NULL
- n1이 0인 경우 n1은 1이 적용된다.
- n1이 음수인 경우 검색 방향이 오른쪽 끝에서 거꾸로 계산한다.
- n2는 생략이 가능하며 생략한다면 n1부터 끝까지 계산한다.
- n2는 0 이하 값이 입력되면 NULL 값을 반환한다.
12. ASCII(문자) : 문자를 정의된 ASCII 코드 값을 반환
SELECT ASCII(CHR(65)) "문자 A의 ASCII코드 값" FROM DUAL;
13. INSTR(char1, char2, n1, n2) : char1에서 char2를 찾아서 시작되는 위치 반환
n1은 처음 시작할 위치를 뜻하고, n2는 찾을 문자열이 반복되는 순서를 뜻한다.
SELECT INSTR('HELLO', 'L', 3, 1) FROM DUAL;
HELLO(char1) 문자열에서 L(char2)을 찾아야 하는데
세번째(n1)부터 찾기를 시작하고 찾은 결과값의 첫번째(n2) 위치를 가져오라는 의미이다.
따라서 첫번째 L의 위치는 3이므로 3을 반환한다.
14. LENGTH(char) : char 문자열의 글자 수를 반환
SELECT LENGTH('HELLO') FROM DUAL;
'국비 지원 > SQL' 카테고리의 다른 글
[Oracle] 시퀀스(Sequence) (0) | 2023.09.03 |
---|---|
[Oracle] ROWNUM과 사용할 시 주의할 점 (0) | 2023.08.08 |
[SQL] DELETE, TRUNCATE, DROP의 차이점 (0) | 2023.06.10 |
[SQL] DML : 데이터 조작어 (0) | 2023.05.27 |
[SQL] DDL, DML, DCL 명령어 (0) | 2023.05.27 |