...

์ง๊ณ ํจ์
COUNT(ํ๋๋ช ) --NULL ๊ฐ์ด ์๋ ๋ ์ฝ๋ ์๋ฅผ ๊ตฌํ๋ค.
SUM(ํ๋๋ช ) - ํ๋๋ช ์ ํฉ๊ณ๋ฅผ ๊ตฌํ๋ค.
AVG(ํ๋๋ช ) - ๊ฐ๊ฐ์ ๊ทธ๋ฃน ์์์ ํ๋๋ช ์ ํ๊ท ๊ฐ์ ๊ตฌํ๋ค.
MAX(ํ๋๋ช ) - ์ต๋๊ฐ์ ๊ตฌํ๋ค.
MIN(ํ๋๋ช ) - ์ต์๊ฐ์ ๊ตฌํ๋ค.
select userId, sum(amount) as 'SUM' # as์์ฐ๋ฉด sum(amount)์ด ์ปฌ๋ผ ์ด๋ฆ์ด ๋๋๊น ๊น๋ํ๊ฒ ๋ณ์นญ ์ฌ์ฉ
from buyTbl
group by userid; #๊ทธ๋ฃนํ์ ์ํด์ฃผ๋ฉด sum์ด ์ ์ฒด๋ฅผ ๋ํด๋ฒ๋ฆฐ๋ค. ๊ทธ๋ฃน์ ํด์ค์ผ ๊ทธ๋ฃน๋ id์ ๋ง๊ฒ sum์ ํด์ค๋ค
select name, height
from userTbl
where height = (select max(height) from usertbl) or height = (select min(height) from usertbl);
--> ํ์๋ค ์ค์ ๊ฐ์ฅ ํฐ ํค์ธ ์ฌ๋๊ณผ ๊ฐ์ฅ ์์ ํค ์ฌ๋
#๋์๋ ์ด ๋ช๊ฐ์ธ๊ฐ?
select count(*) from city;
์ง๊ณํจ์๋ select์ ์จ์ ํ ์ด๋ธ๋ก ๋ํ๋ผ์๋ ์๊ณ , having์์ ์กฐ๊ฑด์ ์ฌ๋ฃ๋ก ์ฐ์ผ ์๋ ์๋ค.
์ ์ฒด๋ฅผ ์ง๊ฒํ๋ ๊ฒ์ด ํ์ํ ๋๋ ๋ฐ๋ก select ์ง๊ณํจ์ from ํ ์ด๋ธ๋ช ์ ์ด๋ค
์ง๊ณํจ์ ์กฐ๊ฑด having
#having : where๊ณผ ๋น์ทํ ๊ฐ๋
์ผ๋ก, ์ง๊ณํจ์์ ๋ํด์ ์กฐ๊ฑด ์ ํ์ ๊ฑธ๋!! group by ๋ค์์ ์ธ๊ฒ!
select countrycode, max(population) as 'max'
from city
group by countrycode
having max > 8000000; # ์์์ max๋ฅผ ๋ณ์นญ์ผ๋ก ์ง์ ํจ
ex) ๋๋ฌผ ๋ณดํธ์์ ๋ค์ด์จ ๋๋ฌผ ์ด๋ฆ ์ค ๋ ๋ฒ ์ด์ ์ฐ์ธ ์ด๋ฆ๊ณผ ํด๋น ์ด๋ฆ์ด ์ฐ์ธ ํ์๋ฅผ ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ๊ฒฐ๊ณผ๋ ์ด๋ฆ์ด ์๋ ๋๋ฌผ์ ์ง๊ณ์์ ์ ์ธํ๋ฉฐ, ๊ฒฐ๊ณผ๋ ์ด๋ฆ ์์ผ๋ก ์กฐํํด์ฃผ์ธ์.
SELECT name, count(name) -- ๋๋ฌผ ์ด๋ฆ, ํด๋น ์ด๋ฆ์ด ์ฐ์ธ ํ์
from animal_ins
where name is not null -- ์ง๊ณ ํ๊ธฐ ์ ์, ์ฐ์ ์ด๋ฆ์ด ์๋ ๋๋ฌผ์ ์ ์ธ
group by name -- ๋๋ฌผ ์ด๋ฆ์ผ๋ก ๊ทธ๋ฃนํ ํจ
having count(name) > 1 -- ๊ทธ๋ฃนํ ์ค์, ๋ ๋ฒ ์ด์ ์ฐ์ธ ์ด๋ฆ๋ง ๊ณ ๋ฆ
order by name -- ๊ฒฐ๊ณผ๋ ์ด๋ฆ ์์ผ๋ก ์กฐํ
Math ํจ์
ABS(์ซ์) - ์ ๋๊ฐ ์ถ๋ ฅ.
MOD (๋ถ์, ๋ถ๋ชจ) - ๋ถ์๋ฅผ ๋ถ๋ชจ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ค. (์ฐ์ฐ์ %์ ๊ฐ์)
์์
CEILING(์ซ์) - ์์์ ์ฌ๋ฆผ
FLOOR(์ซ์) - ์์์ ๋ด๋ฆผ
TRUNCATE(์ซ์,์๋ฆฟ์) - ์ซ์๋ฅผ ์์์ ์ดํ ์๋ฆฟ์์์ ๋ฒ๋ฆผ.
ROUND(์ซ์,์๋ฆฟ์) - ์ซ์๋ฅผ ์์์ ์ดํ ์๋ฆฟ์์์ ๋ฐ์ฌ๋ฆผ. (์๋ฆฟ์๋ ์์,0,์์๋ฅผ ๊ฐ์ ์ ์๋ค.)
round(๊ฐ, ๋ฐ์ฌ๋ฆผ ํ ์๋ฆฌ)
round(10.95, -1);

MAX / MIN ์
GREATEST(์ซ์1,์ซ์2,์ซ์3...) - ์ฃผ์ด์ง ์ ์ค ์ ์ผ ํฐ ์ ๋ฆฌํด.
LEAST(์ซ์1,์ซ์2,์ซ์3...) - ์ฃผ์ด์ง ์ ์ค ์ ์ผ ์์ ์ ๋ฆฌํด.
์ง์
bin() : 2์ง์
hex() : 16์ง์
oct() : 8์ง์
select bin(31), hex(31),oct(31);
๊ณ ๊ธ ํจ์
SQRT(4) : ๋ฃจํธ
POW(2, 3) : ์ ๊ณฑ
EXP(3) : e์ ๊ฑฐ๋ญ์ ๊ณฑ
LOG(3) :์์ฐ๋ก๊ทธ
์ผ๊ฐ ํจ์
SIN(PI() / 2)
COS(PI())
TAN(PI() / 4)
๋๋ค ๊ฐ
ROUND(RAND()*100, 0) : 0 ~ 100 ์ฌ์ด ๋๋ค๊ฐ
๊ฐ๋ ๊ฐ
degrees : ๋ผ๋์์ ๊ฐ๋๊ฐ์ผ๋ก
radians : ๊ฐ๋๊ฐ์ ๋ผ๋์์ผ๋ก ๋ณํ
select degrees(pi()),radians(180);
String ํจ์
๋ฌธ์์ด ๊ธธ์ด
bit_length : ํ ๋น๋ ๋นํธ์ ํฌ๊ธฐ
char_length : ๋ฌธ์์ ๊ฐ์
length : ํ ๋น๋ byte ๋ฐํ
-- ํ๊ธ๊ณผ ์์ด์ byte๋ ๋ค๋ฅด๋ค.
select bit_length('abc'), char_length('abc'), length('abc');
select bit_length('๊ฐ๋๋ค'), char_length('๊ฐ๋๋ค'),length('๊ฐ๋๋ค');
๋ฌธ์์ดํฉ์น๊ธฐ
concat('My', 'sql op', 'en source');
โ
๋ฌธ์์ด ๋ฐ๋ณต
repeat('์ด๊ฒ์ด',3);
โ
๋ฌธ์์ด ๋ค์ง๊ธฐ
reverse('mysql');
โ
๋ฌธ์์ด ์์น
-- mysql์ ๋ฐฐ์ด์ธ๋ฑ์ค ์์์ด 1์.
LOCATE('abc', 'ababcDEFabc'); // 3
LOCATE('abc', 'ababcDEFabc', 4); // 9
โ
๋ฌธ์์ด ์ง์ ํ ๊ฐฏ์๋งํผ ์ค๋ฅธ์ชฝ ์ผ์ชฝ ๋ฝ์
left('MySQL is an open source relational database management system', 5); -- MYSQL
right('MySQL is an open source relational database management system', 6); -- system
๋ฌธ์์ด ๋ถ๋ฆฌ
-- mysql์ ๋ฐฐ์ด์ธ๋ฑ์ค ์์์ด 1์.
substring('๋ํ๋ฏผ๊ตญ๋ง์ธ',1,2);
โ
๋ฌธ์์ด ์๋ฌธ์ ๋๋ฌธ์
select lower('MySQL is an open source relational database management system');
select upper('MySQL is an open source relational database management system');
โ
๋ฌธ์์ด ๊ต์ฒด
replace('MSSQL', 'MS', 'My'); #ํ๋ผ๋ฏธํฐ1์ ํ๋ผ๋ฏธํฐ2๋ถ๋ถ์ ํ๋ผ๋ฏธํฐ3์ผ๋ก ๋ณ๊ฒฝ
โ
๋ฌธ์์ด ๊ณต๋ฐฑ ์์ ๊ธฐ
SELECT
TRIM(' Mysql ') -- ๋ฌธ์์ด ๊ณต๋ฐฑ ๋ค ์์ ์ค
TRIM(leading '!' FROM '!!!!!!!!!!!!!!!!MySQL PHP###') -- ๋ฌธ์์ด ์์ '!' ๋ค ์์ ์ค -> MySQL PHP###
TRIM(trailing '@' from '%%%MYSQL@@@@@@@@'); -- ๋ฌธ์์ด ๋ค์ชฝ @ ์ ์ ์ค -> %%%MYSQL
โ
ltrim(' ์ด๊ฒ์ด') : ์ผ์ชฝ ๊ณต๋ฐฑ ์ ๊ฑฐ
rtrim('์ด๊ฒ์ด ') : ์ค๋ฅธ์ชฝ ๊ณต๋ฐฑ ์ ๊ฑฐ
โ
๋ฌธ์์ด ํฌ๋งท
select format(123123123123.123123123, 3);
-> 123,123,123,123,123
Date ํจ์
ํ์ฌ ๋ ์ง์ ์๊ฐ ์ถ๋ ฅ
NOW()
SYSDATE()
CURRENT_TIMESTAMP()
โ
ํ์ฌ ๋ ์ง ์ถ๋ ฅ
CURDATE()
CURRENT_DATE()
โ
ํ์ฌ ์๊ฐ ์ถ๋ ฅ
CURTIME()
CURRENT_TIME()
โ
๋ ์ง์์ ๊ธฐ์ค๊ฐ ๋งํผ ๋ง์
DATE_ADD(๋ ์ง, INTERVAL ๊ธฐ์ค๊ฐ)
โป ๊ธฐ์ค๊ฐ : YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
โ
๋ ์ง์์ ๊ธฐ์ค๊ฐ ๋งํผ ๋บ์
DATE_SUB(๋ ์ง, INTERVAL ๊ธฐ์ค๊ฐ)
โป ๊ธฐ์ค๊ฐ : YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
โ
๋ ์ง ํฌ๋งท
YEAR(๋ ์ง) -๋ ์ง์ ์ฐ๋ ์ถ๋ ฅ.
MONTH(๋ ์ง) -๋ ์ง์ ์ ์ถ๋ ฅ.
MONTHNAME(๋ ์ง) -๋ ์ง์ ์์ ์์ด๋ก ์ถ๋ ฅ.
DAYNAME(๋ ์ง) -๋ ์ง์ ์์ผ์ผ ์์ด๋ก ์ถ๋ ฅ.
DAYOFMONTH(๋ ์ง) -๋ ์ง์ ์๋ณ ์ผ์ ์ถ๋ ฅ.
DAYOFWEEK(๋ ์ง) -๋ ์ง์ ์ฃผ๋ณ ์ผ์ ์ถ๋ ฅ(์์์ผ(0),ํ์์ผ(1)...์ผ์์ผ(6))
WEEKDAY(๋ ์ง) -๋ ์ง์ ์ฃผ๋ณ ์ผ์ ์ถ๋ ฅ(์์์ผ(0),ํ์์ผ(1)...์ผ์์ผ(6))
DAYOFYEAR(๋ ์ง) -์ผ๋ ์ ๊ธฐ์ค์ผ๋ก ํ ๋ ์ง๊น์ง์ ๋ ์.
WEEK(๋ ์ง) -์ผ๋ ์ค ๋ช ๋ฒ์จฐ ์ฃผ.
โ
FROM_DAYS(๋ ์) : 00๋ 00์ 00์ผ๋ถํฐ ๋ ์ ๋งํผ ๊ฒฝ๊ณผํ ๋ ์ ๋ ์ง ์ถ๋ ฅ.
TO_DAYS(๋ ์ง) : 00 ๋ 00 ์ 00์ผ ๋ถํฐ ๋ ์ง๊น์ง์ ์ผ์ ์ ์ถ๋ ฅ.
DATE_FORMAT(๋ ์ง,'ํ์') : ๋ ์ง๋ฅผ ํ์์ ๋ง๊ฒ ์ถ๋ ฅ
โ
๋ ์ง ํจ์ ๋ชจ์
Linux DB - MYSQL-๋ ์ง ๊ด๋ จ ํจ์ ๋ชจ์
[mysql-ํจ์]๋ ์ง ๊ด๋ จ ํจ์ ๋ชจ์dayofweek(date) ๋ ์ง๋ฅผ ํ ์ฃผ์ ๋ช ๋ฒ์งธ ์์ผ์ธ์ง๋ฅผ ๋ํ๋ด๋ ์ซ์๋ก ๋ฆฌํดํ๋ค. (1 = ์ผ์์ผ, 2 = ์์์ผ, ... 7 = ํ ์์ผ) mysql> select dayofweek('1998-02-03'); -> 3 weekday(date) ๋
faq.hostway.co.kr
์ด ๊ธ์ด ์ข์ผ์ จ๋ค๋ฉด ๊ตฌ๋ & ์ข์์
์ฌ๋ฌ๋ถ์ ๊ตฌ๋
๊ณผ ์ข์์๋
์ ์์๊ฒ ํฐ ํ์ด ๋ฉ๋๋ค.