SQL ๋ฌธ๋ฒ์๋ ๊ตฌ๋ฌธ ๋ด ์คํ์์์ ์ฐ์ฐ์ฌ ์คํ์์๊ฐ ์กด์ฌํ๋ค.
SQL ๊ตฌ๋ฌธ์ ๊ฒฝ์ฐ์๋
FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY
์์๋ก ์คํ๋๋ค.
์ฆ, ์๋์ ๊ฐ์ SQL ์ฟผ๋ฆฌ๋ฌธ์ด ์กด์ฌํ ๊ฒฝ์ฐ:
SELECT COUNT(name) AS cnt, age from USER WHERE height>=170 GROUP BY age
DBMS๋ ๋ค์๊ณผ ๊ฐ์ ์์๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๋ค:
* DBMS: Database Management System
1) FROM๋ฌธ ์คํ: ๊ฒ์์์น๋ฅผ "USER" ํ ์ด๋ธ๋ก ์ง์
2) WHERE๋ฌธ ์คํ: ๊ฒ์๋์์ 'height'๊ฐ์ด 170์ด์์ธ ๊ฐ์ผ๋ก ํ์
3) GROUP BY๋ฌธ ์คํ: ๋ฐ์ดํฐ๋ฅผ 'age'๋ก ๊ทธ๋ฃนํํจ
4) SELECT๋ฌธ ์คํ: ๊ทธ๋ฃนํ๋ name์ ๊ฐฏ์๋ฅผ ์นด์ดํธํ์ฌ cnt๋ผ๋ Alias (=๋ณ๋ช )์ ๋ถ์ธ ๊ฐ๊ณผ age๋ง์ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ๋จ๊น
๋จ, ๋ง์ฝ SELECT์์ ์ค์ ๋ Alias๋ฅผ HAVING, GROUP BY , ORDER BY์์ ์ฌ์ฉํ๋ค๋ฉด, ์์น์ ์ผ๋ก๋ ์์ ๊ฐ์ ์์๋ก ์ฟผ๋ฆฌ๋ฌธ์ด ์คํ๋์ง๋ง Alias๋ฅผ ์ฐธ์กฐํ๊ธฐ ์ํด ๋ด๋ถ์ ์ผ๋ก ์์๊ฐ ์๋์ผ๋ก ๋ณ๊ฒฝ๋ ์ ์๋ค. ๋๋จธ์ง์์๋ SELECT์ Alias๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
SQL ์ฐ์ฐ์์ ๊ฒฝ์ฐ์๋ ๋ํ์ ์ผ๋ก AND์ OR์ด ์กด์ฌํ๋ค. ์ผ๋ฐ์ ์ผ๋ก๋ AND๊ฐ OR๋ณด๋ค ์ฐ์ ์์๊ฐ ๋์ผ๋ฏ๋ก
WHERE (A) AND (B) OR (C) AND (D) AND (E) OR (F)
๋ผ๋ ํํ๋ก ์กฐ๊ฑด์ด ๋ถ์ผ๋ฉด
1) A์ B๋ฅผ ๋์์ ๋ง์กฑํ๊ฑฐ๋
2) C์ D,E๋ฅผ ๋์์ ๋ง์กฑํ๊ฑฐ๋
3) F๋ฅผ ๋ง์กฑํ ๋
true๋ฅผ ๋ฐํํ๋ค.
ํ์ง๋ง ์ด๋ฐ ์ค์ฒฉ์ ์ธ ์ํฉ์์๋ ์๋ฏธ๊ฐ ์ค์์ ์ผ๋ก ํด์๋ ์ ์๋ ์ฌ์ง๊ฐ ๋ค๋ถํ๋ฏ๋ก ()๋ฅผ ํ์ฉํ์ฌ ๊ฐ์์ ์ผ๋ก ์กฐ๊ฑด์ ๋ช ํํ๊ฒ ํํํ ๊ฒ์ด ๊ถ์ฅ๋๊ณ ์๋ค.