[SQL] : Scalar Functions (2) / LENGTH, ROUND, NOW, FORMAT

김대현·2024년 6월 13일

(1) Scalar Functions
(2) LENGTH
(3) ROUND
(4) NOW
(5) FORMAT

(1) Scalar Functions

  • Scalar Functions 는 입력값을 기준으로 단일 값을 반환하는 함수이다. 즉 Scalar FunctionsSQL에서 사용되는 개별 값에 대한 함수로, 하나의 입력값을 받아 하나의 출력값을 반환하는 것이다. 주로 문자열 또는 숫자와 관련된 작업을 수행하는 함수들이 포함된다.
+----------+---------------------------------------------------------+
| Function | Description                                             |
+----------+---------------------------------------------------------+
| UCASE    | 영문 문자열을 모두 대문자로 변환하는 함수                     |
| LCASE    | 영문 문자열을 모두 소문자로 변환하는 함수                     |
| MID      | 영문 문자열에서 지정한 부분 문자열을 반환하는 함수             |
| LENGTH   | 문자열의 길이를 반환하는 함수                               |
| ROUND    | 지정 자리에서 숫자를 반올림하는 함수 (예: 0이 소수점 첫째 자리) |
| NOW      | 현재 날짜와 시간을 반환하는 함수                            |
| FORMAT   | 숫자를 천 단위 콤마가 있는 형식으로 변환하는 함수             |
+----------+---------------------------------------------------------+



(1) LENGTH:

  • LENGTH 함수는 주어진 문자열의 길이를 반환하는 함수이다. 문자열 내의 문자 수를 세어서 그 값을 반환한다. 이 함수는
    문자열의 길이를 확인하거나 제한하는 등의 작업에 유용하게 사용된다. 예를 들어, LENGTH('Hello')는 5를 반환하며, 'Hello'라는 문자열이 5개의 문자로 이루어져 있음을 나타낸다.
mysql> SELECT LENGTH('This is len test');
+----------------------------+
| LENGTH('This is len test') |
+----------------------------+
|                         16 |
+----------------------------+
1 row in set (0.00 sec)

  • SELECT LENGTH(''); 처럼 문자가 없는 경우에는 길이를 0으로 나타내며, 만약 공백문자 인 띄어쓰기가 있다면 길이가 1로 나타나게 된다.
mysql> SELECT LENGTH(' ');
+------------+
| LENGTH(' ')|
+------------+
|         1  |
+------------+
1 row in set (0.00 sec)

  • SELECT LENGTH(NULL); 처럼 NULL의 경우에는 길이가 없으므로 NULL 그대로를 출력한다.
mysql> SELECT LENGTH(NULL);
+-------------+
| LENGTH(NULL)|
+-------------+
|      NULL   |
+-------------+
1 row in set (0.00 sec)



(3) ROUND

  • ROUND 함수는 숫자를 지정된 자릿수로 반올림하는 함수이다. 주어진 숫자를 지정된 소수점 자리 수로 반올림하여 반환한다.
mysql> SELECT R0UND(number, decimals_place);
  • number: 반올림할 대상

  • decimals : 반올림할 소수점 위치 (Option)

  • 예를 들어, ROUND(3.14159, 2)는 소수점 둘째 자리에서 반올림하여 3.14를 반환하는 것이다.

mysql> SELECT ROUND(315.625);
   #OR SELECT ROUND(315.625, 0);
+----------------+
| R0UND(315.625) |
+----------------+
|            316 |
+----------------+
1 row in set (0.00 sec)
  • 위처럼 반올림할 위치를 지정하지 않을 경우,소수점 첫 번째 자리인 (0) 에서 반올림을 하게 된다. 그레서 SELECT ROUND(315.625);OR SELECT ROUND(315.625, 0); 는 같은 의미이다.



mysql> SELECT ROUND(315.625, -1);
+--------------------+
| R0UND(315.625, -1) |
+--------------------+
|                320 |
+--------------------+
1 row in set (0.00 sec)
  • 반대로 위처럼 숫자 일단위 부터 반올림하고 싶다면,SELECT ROUND(315.625, -1); 을 사용하면 된다. -1 은 소숫점 숫자에서 일단위를 의미한다. 이후 십단위 위치는 -2 이다.



(4) NOW

  • NOW 함수는 현재 날짜와 시간을 반환하는 함수이다. 데이터베이스 시스템이나 사용하는 환경에 따라 현재 시간을 기준으로한 날짜와 시간을 제공하는 것이다. 주로 데이터를 삽입할 때 현재 시간을 기록하거나 시간 기반의 연산을 수행할 때 사용된다.
mysql> SELECT NOW();
+---------------------+
| NOW()               |
+---------------------+
| 2024-06-12 20:55:12 |
+---------------------+
1 row in set (0.00 sec)



(5) FORMAT

  • FORMAT 함수는 숫자를 지정된 형식으로 변환하여 반환하는 함수이다. 주로 숫자를 천 단위 콤마를 추가하여 숫자를 포맷팅하는 데 사용된다.
mysql> SELECT F0RMAT(number, decimal_place);
  • number : 포맷을 적용할 문자 혹은 숫자
  • decimals : 표시할 소수점 위치

#소수점을 표시하지 않은 경우 0
mysql> SELECT FORMAT(12345.6789, 0);
+-----------------------+
| FORMAT(12345.6789, 0) |
+-----------------------+
|   12,346              |
+-----------------------+
1 row in set (0.00 sec)
  • 소수점을 표시하지 않은 경우 숫자 중 천단위 콤마를 추가하여 소숫점에서 반올림을 받은 정수형 숫자만 출력된다.

#소수점 두자리까지 표시할 경우 
mysql> SELECT FORMAT(12345.6789, 2);
+-----------------------+
| FORMAT(12345.6789, 2) |
+-----------------------+
|   12,345.68           |
+-----------------------+
1 row in set (0.00 sec)

#소수점 10자리까지 표시할 경우 
mysql> SELECT FORMAT(12345.6789, 10);
+-----------------------+
| FORMAT(12345.6789, 2) |
+-----------------------+
|   12,345.6789000000   |
+-----------------------+
1 row in set (0.00 sec)
  • 소수점을 10자리가 넘지 않는 숫자를 10자리까지 표시할 경우 기존 소숫점 숫자 이후에는 0 으로 10자리까지 생성이 된다.
profile
데이터 분석 스쿨 블로그 입니다.

0개의 댓글