๐
SQL๊ธฐ๋ณธ ๋ฌธ๋ฒ ๋ฐ ๋จ์ด์ ๋ฆฌ
SELECT ์ด_์ด๋ฆ
FROM ํ
์ด๋ธ_์ด๋ฆ
WHERE ์กฐ๊ฑด์
GROUP BY ์ด_์ด๋ฆ
HAVING ์กฐ๊ฑด์
ORDER BY ์ด_์ด๋ฆ
LIMIT ์ซ์
โ ์ฐ์ฐ์ ์ข ๋ฅ
1. ๊ด๊ณ ์ฐ์ฐ์
> , < , >= , <= , =
2. ๋
ผ๋ฆฌ ์ฐ์ฐ์
AND : ๋ ์กฐ๊ฑด์ด ๋ชจ๋ ๋ง์กฑํ๋ฉด ์กฐํ
SELECT mem_name,height, mem_number
FROM member
WHERE height >= 165 AND mem_number > 6;
OR : ๋ ์ค ํ๋๋ผ๋ ๋ง์กฑํ๋ฉด ์กฐํ
SELECT mem_name,height, mem_number
FROM member
WHERE height >= 165 OR mem_number > 6;
BETWEEN ~AND : ๋ฒ์ ~ ๋ฅผ ์ฌ์ฉํ ๋ ์ด์ฉ
SELECT mem_name,height, mem_number
FROM member
WHERE height BETWEEN 163 AND 165;
IN : in๋ด์ ๋ค์ด์๋ ๊ฒ๋ค ์ค ํ๋๋ผ๋ ์กด์ฌํ๋ฉด ์กฐํ.
SELECT mem_name, addr
FROM member
WHERE addr IN ('๊ฒฝ๊ธฐ', '์ ๋จ', '๊ฒฝ๋จ');
LIKE : ์์ธ%, %๋ฏผ๊ตญ ์ ๊ฐ์ด %์ ๊ธฐ์ค์ผ๋ก ์ ๋๋ ๋ค์ ์ค๋ ๋ฌธ์์ด์ ์กฐํ
SELECT *
FROM member
WHERE mem_name LIKE '์ฐ%';
_ : ๊ธ์์ ๋งค์นํ๋ ์๋ฃ๋ฅผ ์กฐํ
SELECT *
FROM member
WHERE mem_name LIKE '__ํํฌ';
3. ๊ฒฐ๊ณผ๋ฅผ ์ ๋ ฌํ๋ : ORDER BY
SELECT mem_id, mem_name, debut_date
FROM member
ORDER BY debut_date;
debut_date(๋ฐ๋ท ์ผ์)๋ฅผ ๋ฆ์ ์์๋๋ก ํ๋ ค๋ฉด DESC(Descending)์ ๋ถ์ด๋ฉด ๋จ.
์ค๋ฆ์ฐจ์ ASC(Ascending) ๋ด๋ฆผ์ฐจ์DESC(Descending)
SELECT mem_id, mem_name, debut_date
FROM member
ORDER BY debut_date DESC, mem_id ASC ;
์ฝ๋ ๋ถ์ : debut_date ๋ ๋ด๋ฆผ์ฐจ์ , mem_id ๋ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ.
4. ์ถ๋ ฅ์ ๊ฐ์๋ฅผ ์ ํํ๋ LIMIT
<span style="color: #FF0000">`SELECT`</span> mem_name, height
FROM member
ORDER BY height DESC LIMIT 3, 2 ;
์ฝ๋ ๋ถ์ : height๋ฅผ ๋ด๋ฆผ์ฐจ์ ์ฆ, ํฐ ์์ผ๋ก ์ ๋ ฌํ๋ 3๋ฒ์งธ๋ถํฐ 2๊ฑด๋ง ์กฐํ.
5. ์ค๋ณต์ ์ ๊ฑฐํ๋ DISTINCT
SELECT DISTINCT addr
FROM member
์ฝ๋ ๋ถ์ : addr ์ด์ ์กฐํ๋๋ ์ค๋ณต๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ ๊ฑฐ.
6. ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ๋ GROUP BY (์ง๊ณํจ์์ ์ฃผ๋ก ์ฌ์ฉ)
SUM() : ํฉ๊ณ๋ฅผ ๊ตฌํฉ๋๋ค.
AVG() : ํ๊ท ์ ๊ตฌํฉ๋๋ค.
MIN(): ์ต์๊ฐ์ ๊ตฌํฉ๋๋ค.
MAX() : ์ต๋๊ฐ์ ๊ตฌํฉ๋๋ค.
COUNT(): ํ์ ๊ฐ์๋ฅผ ์
๋๋ค.
COUNT(DISTINCT):ํ์ ๊ฐ์๋ฅผ ์ธ๋ฉฐ ์ค๋ณต์ 1๊ฐ๋ง ์ธ์ ๋ฉ๋๋ค.
SELECT member_id SUM()
FROM buy GROUP BY member;
SELECT member_id "ํ์ ์์ด๋", SUM(price * amoount) "์ด๊ตฌ๋งค์ก"
FROM buy GROUP BY mem_id;
7. WHERE์ ๋์ ์ฌ์ฉํ๋ GROUP BY ์ ์น๊ตฌ HAVING
(HAVING ์ ์ ๊ผญ GROUP BY ์ ๋ค์์ ๋์์ผํ๋ค.)
์ง๊ณ ํจ์์ ๋ํด์ ์กฐ๊ฑด์ ์ ํํ๋ ๊ฒ.
SELECT member_id "ํ์ ์์ด๋", SUM(price * amoount) "์ด๊ตฌ๋งค์ก"
FROM buy GROUP BY mem_id;
HAVING SUM(price * amoount) > 10
์ง๊ธ๊น์ง ๋ค๋ฃฌ ๋ด์ฉ์ ์ฟผ๋ฆฌ์์ ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ SELECT ๋ฌธ์ ๋ฌธ๋ฒ์ด๊ณ
๊ณ ๊ธ ๋ฌธ๋ฒ์ด๋ ํจ์ ๋ฑ ์ฌ๋ฌ ํ์ฉ ๋ฐฉ์์ด ๋ง๋ค.
์ฐธ๊ณ ํ๊ธฐ ์ข์ ์ฌ์ดํธ
https://suy379.tistory.com/107 - ํจ์์ ๋ฆฌ
https://suy379.tistory.com/106 - ์๋ธ์ฟผ๋ฆฌ ์ฌ์ฉ๋ฒ
https://mangkyu.tistory.com/25#google_vignette - ํจ์ ๋ฐ ๊ณ ๊ธ๋ฌธ๋ฒ