
SQL에서 쓰이는 함수는 여러가지가 있는데, 크게 숫자형 / 문자형 / 날짜 및 시간형 함수로 정리해보고자 한다.
분량상 숫자형과 문자형을 먼저 정리한다.
1. 숫자형 함수
수 값을 인수로 받아 NUMBER 타입의 값을 반환하는 함수이다.
1) abs(n) : 절대값을 계산하는 함수
2) ceil(n) : 올림값을 반환하는 함수
3) floor(n) : 버림값을 반환하는 함수.
4) round(n, [m]) : 반올림, n 값을 반올림, m은 반올림 자릿수
m이 양수일 경우 - n을 지정한 소수점 아래 자릿수로 반올림
m이 0일 경우 - n을 가장 가까운 정수로 반올림
m이 음수일 경우 - n을 지정한 소수점 위 자리에서 반올림
5) truncate(n, m) : n값을 절삭하는 함수로 m은 소숫점 아래 자릿수를 나타낸다.
6) mod(m, n) : m을 n으로 나눈 나머지를 반환 한다. n이 0일 경우 m을 반환 한다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
-- 1) ABS(n)
select abs(-58); -- 58
-- 2) CEIL(n)
SELECT CEIL(10.1234);
-- 결과 : 11
SELECT CEIL(-10.1234);
-- 결과 : -10 원래 숫자보다 큰 값을 반환해줌
-- 3) FLOOR(n)
SELECT FLOOR(10.1234);
-- 결과 : 10
SELECT FLOOR(-10.1234);
-- 결과 : -11 원래 숫자보다 작은 값을 반환해줌
-- 4) ROUND(n, [m])
SELECT ROUND(192.153, 1);
-- 결과 : 192.2 소숫점 2자리를 반올림 하여 1자리 까지 표현
SELECT ROUND(192.153, -1);
-- 결과 : 190 숫자 2자리를 반올림 하여 1자리 까지 표현
select round(192.9,0); -- 139
-- 5) TRUNCATE(n, m)
SELECT TRUNCATE(7.5597, 2);
-- 결과 : 7.55
-- 6) MOD(m, n)
SELECT MOD(9, 4) "MOD" ;
-- 결과 : 1
|
cs |
2. 문자형 함수
char, varchar 타입을 인수로 받아 varchar 타입의 값을 반환하는 함수이다.
1) CONCAT(char1, char2, ...) : 문자열 합치기
2) LOWER(char), UPPER(char)
LOWER : 주어진 문자열을 소문자로 변환시켜 준다.
UPPER : 주어진 문자열을 대문자로 변환시켜 준다.
3) LPAD(char1, n [,char2]), RPAD(char1, n [,char2])
LPAD : 왼쪽에 문자열을 끼어 넣는 역할을 한다.
RPAD : 오른쪽에 문자열을 끼어 넣는 역할을 한다.
n은 반환되는 문자열의 전체 길이를 나타내며,
char1의 문자열이 n보다 클 경우 char1을 n개 문자열 만큼 잘라서 반환 한다.
4) SUBSTR(char, m ,[n]), SUBSTRB(char, m ,[n])
SUBSTR 함수는 m 번째 자리부터 길이가 n개인 문자열을 반환 한다.
m이 음수일 경우에는 뒤에서 m 번째 문자부터 n개의 문자를 반환한다.
SUBSTRB 함수에서 B는 Byte단위로 처리하겠다는 의미이다.
5) LENGTH(char)
문자열의 길이를 반환 한다.(한글은 한 글자에 3byte <- UTF-8)
6) REPLACE(char1, str1, str2)
REPLACE는 문자열의 특정 문자(str1)를 다른 문자(str2)로 변환 한다. 대소문자를 구분한다.
7) INSTR (char1, str1)
문자열이 포함되어 있는지를 조사하여 문자열의 위치를 반환 한다.
지정한 문자열이 발견되지 않으면 0이 반환 된다.
char1 : 지정문자, str1 : 검색문자
8) TRIM(char1) : 양쪽 공백을 지운다. 특정한 문자열을 명시하면 앞 뒤에서 지운다.
9) LTRIM(char1) : 왼쪽 공백을 지운다.
10) RTRIM(char1) : 오른쪽 공백을 지운다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
-- 1) CONCAT(char1, char2, ...)
SELECT CONCAT('www.', 'bblackbean','.tistroy.com');
-- 2) LOWER(char), UPPER(char)
SELECT UPPER('mariadb') UNION ALL
SELECT LOWER('mariadb');
-- 3) LPAD(char1, n [,char2]), RPAD(char1, n [,char2])
SELECT LPAD('mydatabase', 12, '*'); -- **mydatabase
SELECT RPAD('mydatabase', 12, '*'); -- mydatabase**
SELECT RPAD('mydatabase',9,'*'); -- mydatabas
-- 4) SUBSTR(char, m ,[n]), SUBSTRB(char, m ,[n])
SELECT SUBSTR('mydatabase', 3);
-- 세번째 이후 네개의 문자열 반환. database
SELECT SUBSTR('mydatabase', 3, 4);
-- 뒤에서 세번째아후 두개의 문자열 반환. data
SELECT SUBSTR('mydatabase', -3, 2); -- as
-- 5) LENGTH(char)
SELECT LENGTH('초코딩'); -- 9
-- 6) REPLACE(char1, str1, str2)
SELECT REPLACE('mydatabase','my','maria '); -- maria database
-- 7) INSTR (char1, str1)
SELECT INSTR('CORPORATE FLOOR','OK'); -- 0 반환
SELECT INSTR('CORPORATE FLOOR','OR'); -- 2 반환
-- 8) TRIM(char1)
SELECT ' mydatabase ' AS title union ALL
SELECT TRIM(' mydatabase ') AS title;
SELECT TRIM('토' FROM '토마토') AS title; -- 마
-- 9) LTRIM(char1)
SELECT LTRIM(' mydatabase ') AS title;
-- 10) RTRIM(char1)
SELECT RTRIM(' mydatabase ') AS title;
|
cs |
'Database' 카테고리의 다른 글
| 함수(2) (0) | 2022.05.06 |
|---|---|
| Join(조인) (0) | 2022.04.28 |
| 집합(Union) (0) | 2022.04.28 |
| 서브 쿼리(Sub Query) (6) | 2022.04.27 |
| 참조제약 조건과 연계 참조 무결성 제약조건 (0) | 2022.04.26 |