๑ `⌃´ ๑

어쨌든 함수는 함수..

 

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
🎵 Playlist
loading...
00:00 / 00:00