(1) Scalar Functions
(2) LENGTH
(3) ROUND
(4) NOW
(5) FORMAT
Scalar Functions 는 입력값을 기준으로 단일 값을 반환하는 함수이다. 즉 Scalar Functions은 SQL에서 사용되는 개별 값에 대한 함수로, 하나의 입력값을 받아 하나의 출력값을 반환하는 것이다. 주로 문자열 또는 숫자와 관련된 작업을 수행하는 함수들이 포함된다.+----------+---------------------------------------------------------+
| Function | Description |
+----------+---------------------------------------------------------+
| UCASE | 영문 문자열을 모두 대문자로 변환하는 함수 |
| LCASE | 영문 문자열을 모두 소문자로 변환하는 함수 |
| MID | 영문 문자열에서 지정한 부분 문자열을 반환하는 함수 |
| LENGTH | 문자열의 길이를 반환하는 함수 |
| ROUND | 지정 자리에서 숫자를 반올림하는 함수 (예: 0이 소수점 첫째 자리) |
| NOW | 현재 날짜와 시간을 반환하는 함수 |
| FORMAT | 숫자를 천 단위 콤마가 있는 형식으로 변환하는 함수 |
+----------+---------------------------------------------------------+
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)
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)
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 이다. NOW 함수는 현재 날짜와 시간을 반환하는 함수이다. 데이터베이스 시스템이나 사용하는 환경에 따라 현재 시간을 기준으로한 날짜와 시간을 제공하는 것이다. 주로 데이터를 삽입할 때 현재 시간을 기록하거나 시간 기반의 연산을 수행할 때 사용된다.mysql> SELECT NOW();
+---------------------+
| NOW() |
+---------------------+
| 2024-06-12 20:55:12 |
+---------------------+
1 row in set (0.00 sec)
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)
0 으로 10자리까지 생성이 된다.