๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Data Base/MySQL

MySQL 12๋ฒˆ์งธ์ˆ˜์—…

by ์ฝ”๋”ฉํ•˜๋Š” ๋ถ•์–ด 2021. 2. 8.
๋ฐ˜์‘ํ˜•

โ–ถ SELECT ๋ช…๋ น๋ฌธ๊ณผ ๊ณตํ†ต ์š”์†Œ

โ€‹

1. ์ˆ˜์น˜ ์ˆ˜์‹๊ณผ ์ˆซ์ž ์ฒ˜๋ฆฌ ํ•จ์ˆ˜

โ€‹

์˜ˆ์ œ 6-1) ๋“ฑ๋ก๊ธˆ ์ด์•ก์„ ๋ณ€๊ฒฝํ•˜๋ผ.

โ€‹

โ€‹

์˜ˆ์ œ 6-2) ๋‚ฉ์ž…๊ธˆ ์ด์•ก์€ "๋“ฑ๋ก๊ธˆ ์ด์•ก - ์žฅํ•™๊ธˆ ์ด์•ก"์ด๋‹ค. ๋‚ฉ์ž…๊ธˆ ์ด์•ก์„ ๋ณ€๊ฒฝํ•˜๋ผ.

โ€‹

desc fee; ๋กœ ํ™•์ธ

โ€‹

โ€‹

์˜ˆ์ œ 6-3) ์šฐํŽธ๋ฒˆํ˜ธ๊ฐ€ "06034"์ด๊ณ  ๋„๋กœ๋ช…์ด "์••๊ตฌ์ •๋กœ2๊ธธ"์ธ ์šฐํŽธ๋ฒˆํ˜ธ, ์‹œ๋„์ด๋ฆ„, ์‹œ๊ตฐ์ด๋ฆ„, ๋„๋กœ๋ช…, ๊ฑด๋ฌผ๋ฒˆํ˜ธ๋ณธ๋ฒˆ, ๊ฑด๋ฌผ๋ช…, ๋ฒ•์ •๋™๋ช…์„ ์ถœ๋ ฅํ•˜๋ผ.

โ€‹

โ€‹

โ€‹โ€‹

2. ์ˆซ์ž ์ฒ˜๋ฆฌ ํ•จ์ˆ˜

 

โ€‹*round, truncate ํ•จ์ˆ˜

round ํ•จ์ˆ˜๋Š” ์ˆซ์ž๋ฅผ ์†Œ์ˆ˜์  ์ดํ•˜ ์ž๋ฆฟ์ˆ˜์—์„œ ๋ฐ˜์˜ฌ๋ฆผ,

truncate ํ•จ์ˆ˜๋Š” ์ˆซ์ž๋ฅผ ์†Œ์ˆ˜์  ์ดํ•˜ ์ž๋ฆฟ์ˆ˜์—์„œ ๋ฒ„๋ฆฐ๋‹ค,

 

mysql> select round(123456.789, 2), truncate(123456.789, 2);

 

mysql> select round(12345678.901, -3), truncate(12345678.901, -3);

โ€‹

โ€‹

*floor, ceil ํ•จ์ˆ˜

floor ํ•จ์ˆ˜๋Š” ์†Œ์ˆ˜์  ์•„๋ž˜์˜ ์ˆ˜๋ฅผ ๋ฌด์กฐ๊ฑด ์ ˆ์‚ญํ•˜์—ฌ ์ •์ˆ˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

ceil ํ•จ์ˆ˜๋Š” ์†Œ์ˆ˜์  ์•„๋ž˜์˜ ์ˆ˜๋Š” ๋ฌด์‹œํ•˜๊ณ  ๋ฌด์กฐ๊ฑด ์˜ฌ๋ฆผ์„ ํ•˜์—ฌ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

โ€‹

mysql> select floor(123456.789), ceil(123456.123);

โ€‹

โ€‹

*mod ํ•จ์ˆ˜

์ฒซ๋ฒˆ์งธ ์ธ์ˆ˜๋ฅผ ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด ๋‚˜๋จธ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

โ€‹

mysql> select mod(10,3), mod(5,8);

โ€‹

โ€‹

*abs ํ•จ์ˆ˜

์ ˆ๋Œ€๊ฐ’์„ ์ถœ๋ ฅ

โ€‹

mysql> select abs(124), abs(-124);

โ€‹

โ€‹

*powํ•จ์ˆ˜ ๋˜๋Š” powerํ•จ์ˆ˜

์ œ๊ณฑ์˜ ๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜์ด๋ฉฐ ์†Œ์ˆซ์ ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋„ ์‹คํ–‰์ด ๋œ๋‹ค. ๋‹จ, ์Œ์ˆ˜๋Š” ์–‘์ˆ˜๋กœ ์Šน์ฒ˜๋ฆฌ๋œ๋‹ค.

โ€‹

mysql> select pow(2,4), pow(-2.5,2), pow(1.5,6);

โ€‹

โ€‹

*greatest, leastํ•จ์ˆ˜

greatest ํ•จ์ˆ˜๋Š” ์ฃผ์–ด์ง„ ์ˆซ์ž ์ค‘ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ด๊ณ ,

least ํ•จ์ˆ˜๋Š” ๋ฐ˜๋Œ€๋กœ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

โ€‹

mysql> select greatest(15,45,32,65), least(15,45,32,65);

โ€‹

โ€‹

์˜ˆ์ œ 6-4) ์žฌํ•™์ƒ๋“ค์˜ ๋“ฑ๋ก๊ธˆ์•ก ๋น„๋ก€ํ•œ ์žฅํ•™๊ธˆ์˜ ๋น„์œจ์€ ๋ช‡ %์ธ๊ฐ€ ?

โ€‹

mysql> select fee_total "๋“ฑ๋ก๊ธˆ์•ก", jang_total "์žฅํ•™๊ธˆ์•ก",

→ round(ifnull(jang_total, 0) / fee_total*100,2) "๋น„์œจ"

→ from fee;

โ€‹

โ€‹

*์Šค์นผ๋ผ ํ•จ์ˆ˜

์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ๋œ๋‹ค.

โ€‹

concatํ•จ์ˆ˜ : ๋‘ ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐ์‹œ์ผœ ํ•ฉ์ณ์ค€๋‹ค

substringํ•จ์ˆ˜ : ์ง€์ •๋œ ์œ„์น˜์—์„œ ์ง€์ •๋œ ๊ธธ์ด๋งŒํผ์˜ ๋ฌธ์ž์—ด์„ ์ถ”์ถœํ•œ๋‹ค.

lengthํ•จ์ˆ˜ : ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ์ •์ˆ˜๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

instrํ•จ์ˆ˜ : ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ๋ฌธ์ž์˜ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

lpadํ•จ์ˆ˜ : ์™ผ์ชฝ์— ์ง€์ •๋œ ๋ฌธ์ž๋ฅผ ์ง€์ •๋œ ๊ธธ์ด๋งŒํผ ์ฑ„์›Œ์ค€๋‹ค.

rpadํ•จ์ˆ˜ : ์˜ค๋ฅธ์ชฝ์— ์ง€์ •๋œ ๋ฌธ์ž๋ฅผ ์ง€์ •๋œ ๊ธธ์ด๋งŒํผ ์ฑ„์›Œ์ค€๋‹ค.

lowerํ•จ์ˆ˜ : ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

upperํ•จ์ˆ˜ : ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

initcapํ•จ์ˆ˜ : ๋ฌด๋‚ฎ์—ด์— ์†ํ•œ ๊ฐ ๋‹จ์–ด๋ณ„๋กœ ์ฒซ ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ, ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์€ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พธ์–ด์ค€๋‹ค.

โ€‹โ€‹

โ€‹

์˜ˆ์ œ 6-5) ํ•™๋ฒˆ์ด 20191001์ธ ํ•™์ƒ์˜ ํ•™๋ฒˆ, ์ด๋ฆ„, ์˜๋ฌธ์ด๋ฆ„์„ ์ถœ๋ ฅํ•˜๋ผ.

๋‹จ, ์˜๋ฌธ์ด๋ฆ„์€ ๋Œ€๋ฌธ์ž๋กœ ์ถœ๋ ฅํ•˜๋ผ.

mysql> select stu_no, stu_name, upper(stu_ename)

→ from student

→ where stu_no = '20191001';

โ€‹

โ€‹

์˜ˆ์ œ 6-6) 2ํ•™๋…„ ํ•™์ƒ์˜ ๋ฒˆํ˜ธ์™€ ์ด๋ฆ„, ์˜๋ฌธ์ด๋ฆ„ ๊ทธ๋ฆฌ๊ณ  ์˜๋ฌธ์ด๋ฆ„์˜ ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋‚ด์–ด๋ผ.

mysql> select stu_no, stu_name, stu_ename, length(rtrim(stu_ename))

→ from student

→ where grade = 2;

- rtrim(right trim)ํ•จ์ˆ˜ : ์˜์ˆ˜์น˜ ๊ฐ’์—์„œ ์šฐ์ธก์— ์žˆ๋Š” ๋ถˆํ•„์š”ํ•œ ๊ณต๋ฐฑ์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•œ๋‹ค.

๋ฐ˜์‘ํ˜•

'Data Base > MySQL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

MySQL 14๋ฒˆ์งธ์ˆ˜์—…  (0) 2021.02.08
MySQL 13๋ฒˆ์งธ์ˆ˜์—…  (0) 2021.02.08
MySQL 11๋ฒˆ์งธ์ˆ˜์—…  (0) 2021.02.08
MySQL 10๋ฒˆ์งธ์ˆ˜์—…  (0) 2021.02.08
MySQL 9๋ฒˆ์งธ ์ˆ˜์—…  (0) 2021.02.08

๋Œ“๊ธ€