SQL - [Scalar Functions | UCASE, LCASE, MID, LENGTH, ROUND, NOW, FORMAT]

์†”๋น„ยท2024๋…„ 1์›” 25์ผ
0





UCASE


๐Ÿงท ์˜๋ฌธ์„ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜

mysql> SELECT UCASE('This is ucase Test.');
+------------------------------+
| UCASE('This is ucase Test.') |
+------------------------------+
| THIS IS UCASE TEST.          |
+------------------------------+
1 row in set (0.15 sec)
  • $15 ๊ฐ€ ๋„˜๋Š” ๋ฉ”๋‰ด๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ์กฐํšŒ
mysql> SELECT UCASE(menu)
    ->  FROM sandwich
    -> WHERE price > 15;
+----------------------------------+
| UCASE(menu)                      |
+----------------------------------+
| BLT                              |
| FRIED BOLOGNA                    |
| WOODLAND MUSHROOM                |
| ROAST BEEF                       |
| PB&L                             |
| BELGIAN CHICKEN CURRY SALAD      |
| LOBSTER ROLL                     |
| SMOKED SALMON SALAD              |
| ATOMICA CEMITAS                  |
| GRILLED LAUGHING BIRD SHRIMP AND |
| HAM AND RACLETTE PANINO          |
| THE HAWKEYE                      |
| CHICKEN DIP                      |
| WILD BOAR SLOPPY JOE             |
| MEATBALL SUB                     |
| CORNED BEEF                      |
| TURKEY CLUB                      |
| FALAFEL                          |
| CRAB CAKE                        |
| CHICKEN SCHNITZEL                |
| TOASTED PIMIENTO CHEESE          |
| VEGETARIAN PANINO                |
| PASTRAMI                         |
| SMOKED HAM                       |
| JIBARITO                         |
| SHAVED PRIME RIB                 |
| TUNA SALAD                       |
| PARAMOUNT REUBEN                 |
| THE ISTANBUL                     |
| B.A.D.                           |
| DUCK CONFIT AND MOZZARELLA       |
| CROQUE MONSIEUR                  |
| GREEN GARBANZO                   |
| TUSCAN CHICKEN                   |
| THE MARTY                        |
| WHITEFISH                        |
| CAULIFLOWER MELT                 |
| CUBANA                           |
| KUFTA                            |
| DEBBIEโ€™S EGG SALAD               |
| BEEF CURRY                       |
| LE Vร‰Gร‰TARIEN                    |
| THE GATSBY                       |
+----------------------------------+
43 rows in set (0.15 sec)





LCASE


๐Ÿงท ์˜๋ฌธ์„ ์†Œ๋ฌธ์ž๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜

mysql> SELECT LCASE('This is LCASE Test.');
+------------------------------+
| LCASE('This is LCASE Test.') |
+------------------------------+
| this is lcase test.          |
+------------------------------+
1 row in set (0.14 sec)
  • $5 ๊ฐ€ ์•ˆ๋˜๋Š” ๋ฉ”๋‰ด๋ฅผ ์†Œ๋ฌธ์ž๋กœ ์กฐํšŒ
mysql> SELECT LCASE(menu), price
    -> FROM sandwich
    -> WHERE price < 5;
+--------------+-------+
| LCASE(menu)  | price |
+--------------+-------+
| meatball sub |   4.5 |
+--------------+-------+
1 row in set (0.15 sec)





MID


๐Ÿงท ๋ฌธ์ž์—ด ๋ถ€๋ถ„์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜

mysql> SELECT MID('This is MID Test.',1,4);
+------------------------------+
| MID('This is MID Test.',1,4) |
+------------------------------+
| This                         |
+------------------------------+
1 row in set (0.15 sec)

mysql> SELECT MID('This is MID Test.', 6,5);
+-------------------------------+
| MID('This is MID Test.', 6,5) |
+-------------------------------+
| is MI                         |
+-------------------------------+
1 row in set (0.17 sec)

mysql> SELECT MID('This is MID Test.',-4,4);
+-------------------------------+
| MID('This is MID Test.',-4,4) |
+-------------------------------+
| est.                          |
+-------------------------------+
1 row in set (0.16 sec)

mysql> Select MID('This is MID Test.',-8,3);
+-------------------------------+
| MID('This is MID Test.',-8,3) |
+-------------------------------+
| ID                            |
+-------------------------------+
1 row in set (0.15 sec)
  • 11์œ„ ์นดํŽ˜์ด๋ฆ„ ์ค‘ ๋‘๋ฒˆ์งธ ๋‹จ์–ด๋งŒ ์กฐํšŒ - 6๋ฒˆ ์œ„์น˜์—์„œ 4๊ธ€์ž
mysql> SELECT cafe
    -> FROM sandwich
    -> WHERE ranking = 11;
+-----------+
| cafe      |
+-----------+
| Lula Cafe |
+-----------+
1 row in set (0.15 sec)

mysql> SELECT MID(cafe, 6,4)
    -> FROM sandwich
    -> WHERE ranking = 11;
+----------------+
| MID(cafe, 6,4) |
+----------------+
| Cafe           |
+----------------+
1 row in set (0.15 sec)





LENGTH


๐Ÿงท ๋ฌธ์ž์—ด ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜

mysql> SELECT LENGTH('This is len test');
+----------------------------+
| LENGTH('This is len test') |
+----------------------------+
|                         16 |
+----------------------------+
1 row in set (0.15 sec)

#๋ฌธ์ž๊ฐ€ ์—†์„๊ฒฝ์šฐ 0
mysql> SELECT LENGTH('');
+------------+
| LENGTH('') |
+------------+
|          0 |
+------------+
1 row in set (0.15 sec)

#๊ณต๋ฐฑ๋„ ๋ฌธ์ž์ด๋ฏ€๋กœ 1
mysql> SELECT LENGTH(' ');
+-------------+
| LENGTH(' ') |
+-------------+
|           1 |
+-------------+
1 row in set (0.14 sec)

#null์€ ๊ธธ์ด๊ฐ€ ์—†์Œ
mysql> SELECT LENGTH(null);
+--------------+
| LENGTH(null) |
+--------------+
|         NULL |
+--------------+
1 row in set (0.15 sec)
  • sandwich ํ…Œ์ด๋ธ”์—์„œ Top 3์˜ ์ฃผ์†Œ ๊ธธ์ด๋ฅผ ๊ฒ€์ƒ‰
mysql> SELECT LENGTH(address)
    -> FROM sandwich
    -> WHERE ranking <= 3;
+-----------------+
| LENGTH(address) |
+-----------------+
|              19 |
|              18 |
|              16 |
+-----------------+
3 rows in set (0.15 sec)





ROUND


๐Ÿงท ์ง€์ •ํ•œ ์ž๋ฆฌ์—์„œ ์ˆซ์ž๋ฅผ ๋ฐ˜์˜ฌ๋ฆผํ•˜๋Š” ํ•จ์ˆ˜


  • ๐Ÿ“Œ ์œ„์น˜ ๋ฏธ๊ธฐ์žฌ ์‹œ default 0 (์†Œ์ˆ˜์ ์ž๋ฆฌ 0์—์„œ ๋ฐ˜์˜ฌ๋ฆผ)
    ์ผ๋‹จ์œ„ ์œ„์น˜๋Š” -1 / ์‹ญ๋‹จ์œ„ ์œ„์น˜๋Š” -2
mysql> SELECT ROUND(315.625);
+----------------+
| ROUND(315.625) |
+----------------+
|            316 |
+----------------+
1 row in set (0.15 sec)

mysql> SELECT ROUND(315.625,0);
+------------------+
| ROUND(315.625,0) |
+------------------+
|              316 |
+------------------+
1 row in set (0.15 sec)
  • sandwich ํ…Œ์ด๋ธ”์—์„œ ์†Œ์ˆ˜์  ์ž๋ฆฌ๋Š” ๋ฐ˜์˜ฌ๋ฆผํ•ด์„œ 1๋‹ฌ๋Ÿฌ ๋‹จ์œ„๊นŒ์ง€๋งŒ ํ‘œ์‹œ (์ตœํ•˜์œ„ 3๊ฐœ๋งŒ ํ‘œ์‹œ)
mysql> SELECT ranking, price, ROUND(price,0)
    -> FROM sandwich
    -> ORDER BY ranking DESC
    -> LIMIT 3;
+---------+-------+----------------+
| ranking | price | ROUND(price,0) |
+---------+-------+----------------+
|      50 |  6.85 |              7 |
|      49 |  8.75 |              9 |
|      48 |   7.5 |              8 |
+---------+-------+----------------+
3 rows in set (0.14 sec)





NOW


๐Ÿงท ํ˜„์žฌ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜

mysql> SELECT NOW();
+---------------------+
| NOW()               |
+---------------------+
| 2024-01-25 05:44:30 |
+---------------------+
1 row in set (0.15 sec)





FORMAT


๐Ÿงท ์ˆซ์ž๋ฅผ ์ฒœ๋‹จ์œ„ ์ฝค๋งˆ๊ฐ€ ์žˆ๋Š” ํ˜•์‹์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ (๋ฐ˜์˜ฌ๋ฆผ๊นŒ์ง€)


  • ๐Ÿ“Œ round์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ‘œ์‹œํ•  ์ž๋ฆฌ์ˆ˜์˜ ์ˆซ์ž๋ฅผ ์ ์–ด์ฃผ๋ฉด๋จ
    ์ผ์˜์ž๋ฆฌ -1 / ์‹ญ์˜์ž๋ฆฌ -2 ..
mysql> SELECT FORMAT(12345.6789,0);
+----------------------+
| FORMAT(12345.6789,0) |
+----------------------+
| 12,346               |
+----------------------+
1 row in set (0.15 sec)

mysql> SELECT FORMAT(12345.6789,2);
+----------------------+
| FORMAT(12345.6789,2) |
+----------------------+
| 12,345.68            |
+----------------------+
1 row in set (0.15 sec)

mysql> SELECT FORMAT(12345.6789,10);
+-----------------------+
| FORMAT(12345.6789,10) |
+-----------------------+
| 12,345.6789000000     |
+-----------------------+
1 row in set (0.15 sec)
  • oil_price ํ…Œ์ด๋ธ”์—์„œ ๊ฐ€๊ฒฉ์ด ๋ฐฑ์›๋‹จ์œ„์—์„œ ๋ฐ˜์˜ฌ๋ฆผ ํ–ˆ์„ ๋•Œ 2000์› ์ด์ƒ์ธ ๊ฒฝ์šฐ ์ฒœ์›๋‹จ์œ„์— ์ฝค๋งˆ๋ฅผ ๋„ฃ์–ด์„œ ์กฐํšŒ
mysql> 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.01 sec)





์—ฐ์Šต๋ฌธ์ œ


  • sandwich ํ…Œ์ด๋ธ”์—์„œ ๊ฐ€๊ฒŒ์ด๋ฆ„์€ ๋Œ€๋ฌธ์ž, ๋ฉ”๋‰ด์ด๋ฆ„์€ ์†Œ๋ฌธ์ž๋กœ ์กฐํšŒํ•˜์„ธ์š”
mysql> use zerobase
Database changed
mysql> select UCASE(cafe), LCASE(menu)
    -> from sandwich;
+---------------------------------+----------------------------------+
| UCASE(cafe)                     | LCASE(menu)                      |
+---------------------------------+----------------------------------+
| OLD OAK TAP                     | blt                              |
| AU CHEVAL                       | fried bologna                    |
| XOCO                            | woodland mushroom                |
| ALโ€™S DELI                       | roast beef                       |
| PUBLICAN QUALITY MEATS          | pb&l                             |
| HENDRICKX BELGIAN BREAD CRAFTER | belgian chicken curry salad      |
| ACADIA                          | lobster roll                     |
| BIRCHWOOD KITCHEN               | smoked salmon salad              |
| CEMITAS PUEBLA                  | atomica cemitas                  |
| NANA                            | grilled laughing bird shrimp and |
| LULA CAFE                       | ham and raclette panino          |
| RICOBENEโ€™S                      | breaded steak                    |
| FROG N SNAIL                    | the hawkeye                      |
| CROSBYโ€™S KITCHEN                | chicken dip                      |
| LONGMAN & EAGLE                 | wild boar sloppy joe             |
| BARI                            | meatball sub                     |
| MANNYโ€™S                         | corned beef                      |
| EGGYโ€™S                          | turkey club                      |
| OLD JERUSALEM                   | falafel                          |
| MINDYโ€™S HOTCHOCOLATE            | crab cake                        |
| OLGAโ€™S DELICATESSEN             | chicken schnitzel                |
| DAWALI MEDITERRANEAN KITCHEN    | shawarma                         |
| BIG JONES                       | toasted pimiento cheese          |
| LA PANE                         | vegetarian panino                |
| PASTORAL                        | cali chรจvre                      |
| MAXโ€™S DELI                      | pastrami                         |
| LUCKYโ€™S SANDWICH CO.            | the fredo                        |
| CITY PROVISIONS                 | smoked ham                       |
| PAPAโ€™S CACHE SABROSO            | jibarito                         |
| BAVETTEโ€™S BAR & BOEUF           | shaved prime rib                 |
| HANNAHโ€™S BRETZEL                | serrano ham and manchego cheese  |
| LA FOURNETTE                    | tuna salad                       |
| PARAMOUNT ROOM                  | paramount reuben                 |
| MELT SANDWICH SHOPPE            | the istanbul                     |
| FLORIOLE CAFE & BAKERY          | b.a.d.                           |
| FIRST SLICE PIE CAFร‰            | duck confit and mozzarella       |
| TROQUET                         | croque monsieur                  |
| GRAHAMWICH                      | green garbanzo                   |
| SAIGON SISTERS                  | the hen house                    |
| ROSALIAโ€™S DELI                  | tuscan chicken                   |
| Z&H MARKETCAFE                  | the marty                        |
| MARKET HOUSE ON THE SQUARE      | whitefish                        |
| ELAINEโ€™S COFFEE CALL            | oat bread, pecan butter, and fru |
| MARION STREET CHEESE MARKET     | cauliflower melt                 |
| CAFECITO                        | cubana                           |
| CHICKPEA                        | kufta                            |
| THE GODDESS AND GROCER          | debbieโ€™s egg salad               |
| ZENWICH                         | beef curry                       |
| TONI PATISSERIE                 | le vรฉgรฉtarien                    |
| PHOEBEโ€™S BAKERY                 | the gatsby                       |
+---------------------------------+----------------------------------+
50 rows in set (0.15 sec)
  • sandwich ํ…Œ์ด๋ธ”์—์„œ 10์œ„ ๋ฉ”๋‰ด์˜ ๋งˆ์ง€๋ง‰ ๋‹จ์–ด๋ฅผ ์กฐํšŒํ•˜์„ธ์š”.
mysql> SELECT menu
    -> FROM sandwich
    -> WHERE ranking = 10;
+----------------------------------+
| menu                             |
+----------------------------------+
| Grilled Laughing Bird Shrimp and |
+----------------------------------+
1 row in set (0.15 sec)

mysql> SELECT MID(menu, -3,3)
    -> FROM sandwich
    -> WHERE ranking = 10;
+-----------------+
| MID(menu, -3,3) |
+-----------------+
| and             |
+-----------------+
1 row in set (0.21 sec)
  • sandwich ํ…Œ์ด๋ธ”์—์„œ ๋ฉ”๋‰ด ์ด๋ฆ„์˜ ํ‰๊ท  ๊ธธ์ด๋ฅผ ์กฐํšŒํ•˜์„ธ์š”
mysql> SELECT AVG ( LENGTH(menu) )
    -> FROM sandwich;
+----------------------+
| AVG ( LENGTH(menu) ) |
+----------------------+
|              13.9600 |
+----------------------+
1 row in set (0.15 sec)
  • oil_price ํ…Œ์ด๋ธ”์—์„œ ๊ฐ€๊ฒฉ์„ ์‹ญ์›๋‹จ์œ„์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•ด์„œ ์กฐํšŒํ•˜์„ธ์š”
mysql> SELECT FORMAT(๊ฐ€๊ฒฉ,-1)
    -> FROM oil_price;
+-------------------+
| FORMAT(๊ฐ€๊ฒฉ,-1)   |
+-------------------+
| 1,484             |
| 1,485             |
| 1,498             |
| 1,498             |
| 1,509             |
| 1,598             |
| 1,635             |
| 2,160             |
| 1,498             |
+-------------------+
9 rows in set (0.00 sec)
  • oil_price ํ…Œ์ด๋ธ”์—์„œ ๊ฐ€๊ฒฉ์ด ์‹ญ์›๋‹จ์œ„์—์„œ ๋ฐ˜์˜ฌ๋ฆผ ํ–ˆ์„ ๋•Œ 2000์› ์ด์ƒ์ธ ๊ฒฝ์šฐ,
    ์ฒœ๋‹จ์œ„์— ์ฝค๋งˆ๋ฅผ ๋„ฃ์–ด์„œ ์กฐํšŒํ•˜์„ธ์š”
mysql> SELECT FORMAT(๊ฐ€๊ฒฉ,0)
    -> FROM oil_price
    -> WHERE ROUND(๊ฐ€๊ฒฉ,-2) >= 2000;
+------------------+
| FORMAT(๊ฐ€๊ฒฉ,0)   |
+------------------+
| 2,160            |
+------------------+
1 row in set (0.00 sec)

Daily Study Note

0๊ฐœ์˜ ๋Œ“๊ธ€