❇️ 요약
- Scalar Functions
- UCASE / LCASE / MID / LENGTH
- ROUND / NOW / FORMAT
📖 Scalar Functions
🔆 Scalar Functions
| Fuction | Description |
|---|
| UCASE | 영문을 대문자로 변환하는 함수 |
| LCASE | 영문을 소문자로 변환하는 함수 |
| MID | 문자열 부분을 반환하는 함수 |
| LENGTH | 문자열의 길이를 반환하는 함수 |
| ROUND | 지정한 자리에서 숫자를 반올림하는 함수(0이 소수점 첫째자리) |
| NOW | 현재 날짜 및 시간을 반환하는 함수 |
| FORMAT | 숫자를 천단위 콤마가 있는 형식으로 반환하는 함수 |
📖 UCASE
🔆 UCASE
SELECT UCASE(string);
☁️ 다음 문장을 모두 대문자로 조회
SELECT UCASE('This Is ucase Test.')
+
| UCASE('This Is ucase Test.') |
+
| THIS IS UCASE TEST. |
+
1 row in set (0.00 sec)
☁️ $ 15가 넘는 메뉴를 대문자로 조회
SELECT UCASE(menu)
FROM sandwich
WHERE price > 15;
+
| UCASE(menu) |
+
| LOBSTER ROLL |
| GRILLED LAUGHING BIRD SHRIMP AND FRIED PO’ BOY |
| SHAVED PRIME RIB |
+
3 rows in set (0.00 sec)
📖 LCASE
🔆 LCASE
SELECT LCASE(string);
☁️ 다음 문장을 모두 소문자로 조회
SELECT UCASE('This Is LCASE Test.');
+
| UCASE('This Is LCASE Test.') |
+
| THIS IS LCASE TEST. |
+
1 row in set (0.00 sec)
☁️ $ 5가 안되는 메뉴를 소문자로 조회
SELECT LCASE(menu)
FROM sandwich
WHERE price < 5;
+
| LCASE(menu) |
+
| meatball sub |
+
1 row in set (0.01 sec)
📖 MID
🔆 MID
SELECT MID(string, start_position, lenth);
string : 원본 문자열
start : 문자열 반환 시작 위치 (첫글자는 1, 마지막 글자는 -1)
length : 반환할 문자열 길이
☁️ 1번 위치에서 4글자를 조회
mysql> SELECT MID('This is mid test', 1, 4);
+
| MID('This is mid test', 1, 4) |
+
| This |
+
1 row in set (0.00 sec)
☁️ 11위 카페 이름 중 두번째 단어만 조회 - -4번 위치에서 4글자
mysql> SELECT MID(cafe, -4, 4)
-> FROM sandwich
-> WHERE ranking = 11;
+
| MID(cafe, -4, 4) |
+
| Cafe |
+
1 row in set (0.00 sec)
📖 LENGTH
이론
🔆 LENGTH
SELECT LENGTH(string);
실습
☁️ 다음 문장의 길이를 조회
mysql> SELECT LENGTH('This is len test');
+
| LENGTH('This is len test') |
+
| 16 |
+
1 row in set (0.00 sec)
mysql> SELECT LENGTH('');
+
| LENGTH('') |
+
| 0 |
+
1 row in set (0.00 sec)
mysql> SELECT LENGTH(' ');
+
| LENGTH(' ') |
+
| 1 |
+
1 row in set (0.00 sec)
mysql> SELECT LENGTH(NULL);
+
| LENGTH(NULL) |
+
| NULL |
+
1 row in set (0.00 sec)
☁️ sandwich 테이블에서 Top 3의 주소 길이를 검색
mysql> SELECT ranking, LENGTH(address), address
-> FROM sandwich
-> WHERE ranking <= 3;
+
| ranking | LENGTH(address) | address |
+
| 1 | 19 | 2109 W. Chicago Ave |
| 2 | 18 | 800 W. Randolph St |
| 3 | 16 | 445 N. Clark St |
+
3 rows in set (0.00 sec)
📖 ROUND
🔆 ROUND
- 지정한 자리에서 숫자를 반올림하는 함수
- DEFAULT 값 : 0, 소수점 자리 (0)에서 반올림
SELECT ROUND(number, decimals_place);
number : 반올림할 대상
decimals : 반올림할 소수점 위치 (Option)
☁️ ROUND 예제 1
- 반올림할 위치를 지정하지 않는 경우(DEFAULT) : 소수점 자리 (0)에서 반올림
SELECT ROUND(315.625);
+
| ROUND(315.625) |
+
| 316 |
+
1 row in set (0.00 sec)
SELECT ROUND(315.625, 1);
+
| ROUND(315.625, 1) |
+
| 315.6 |
+
1 row in set (0.00 sec)
SELECT ROUND(315.625, 2);
+
| ROUND(315.625, 2) |
+
| 315.63 |
+
1 row in set (0.00 sec)
SELECT ROUND(315.625, -1);
+
| ROUND(315.625, -1) |
+
| 320 |
+
1 row in set (0.01 sec)
SELECT ROUND(315.625, -2);
+
| ROUND(315.625, -2) |
+
| 300 |
+
1 row in set (0.00 sec)
☁️ sandwich 테이블에서 소수점 자리를 반올림해서 1달러 단위까지만 표시 (최하위 3개만 표시)
SELECT ranking, price, ROUND(price)
FROM sandwich
ORDER BY ranking DESC
LIMIT 3;
+
| ranking | price | ROUND(price) |
+
| 50 | 6.85 | 7 |
| 49 | 8.75 | 9 |
| 48 | 7.5 | 8 |
+
3 rows in set (0.00 sec)
📖 NOW
🔆 NOW
- 현재 날짜 및 시간을 반환하는 함수
- 조회 했을때의 날짜와 시간 반환
SELECT NOW();
- 숫자를 천단위 콤마가 있는 형식으로 반환하는 함수
SELECT FORMAT(number, decimal_place);
number : 포멧을 적용할 문자 혹은 숫자
decimals : 표시할 소수점 위치
- 소수점을 표시하지 않는 경우 : 0
- FORMAT은 ROUND와 다르게 생략 X
SELECT FORMAT(12345.6789, 0);
+
| FORMAT(12345.6789, 0) |
+
| 12,346 |
+
1 row in set (0.00 sec)
SELECT FORMAT(12345.6789, 2);
+
| FORMAT(12345.6789, 2) |
+
| 12,345.68 |
+
1 row in set (0.00 sec)
SELECT FORMAT(12345.6789, 10);
+
| FORMAT(12345.6789, 10) |
+
| 12,345.6789000000 |
+
1 row in set (0.00 sec)
☁️ oil_price 테이블에서 가격이 백원단위에서 반올림 했을 때 2000원 이상인 경우 천원 단위에 콤마를 넣어서 조회
SELECT FORMAT(가격, 0)
FROM oil_price
WHERE ROUND(가격, -3) >= 2000;
+
| FORMAT(가격, 0) |
+
| 1,509 |
| 1,598 |
| 1,635 |
| 2,160 |
+
4 rows in set (0.00 sec)