sql query ์์ ํฌํจ๋ ๋๋ค๋ฅธ SELECT ๋ฌธ์ด๋ค. ์ฑ๋ฅ์ ์ฟผ๋ฆฌ๊ฐ ์ฌ๋ฌ๊ฐ ์๋ ๊ฒ๋ณด๋ค ์ข์ง ์๋ค. ๋๋ฌธ์ row ๊ฐ ์ ์ table ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
์๋ธ ์ฟผ๋ฆฌ์ ๋ถ๋ฅ
(1) ์ฌ์ฉ ์์น์ ๋ฐ๋ฅธ ๋ถ๋ฅ
SELECT ์ : ์ค์นผ๋ผ(๋จ์ผ๊ฐ) ์๋ธ์ฟผ๋ฆฌ
FROM ์ : inline view
WHERE, HAVING : subquery
(2) ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ์ ๋ฐ๋ฅธ ๋ถ๋ฅ
๋จ์ผํ, ๋จ์ผ์ด ์๋ธ์ฟผ๋ฆฌ : ๋น๊ต์ฐ์ฐ์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
๋ค์คํ ์๋ธ์ฟผ๋ฆฌ
โข
์๋ธ์ฟผ๋ฆฌ์ ์กฐํ๊ฒฐ๊ณผ ํ์ด ์ฌ๋ฌ๊ฐ์ธ ์๋ธ์ฟผ๋ฆฌ
โข
IN (+ NOT IN), ANY, ALL, EXISTS ์ฐ์ฐ์์ ์กฐํฉํ์ฌ ์ฌ์ฉ
๋ค์ค์ด ์๋ธ์ฟผ๋ฆฌ : ์๋ธ์ฟผ๋ฆฌ์ ์ด์ด ์ฌ๋ฌ๊ฐ์ธ ๊ฒฝ
ANY
์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๊ฐ๊ณผ ์ปฌ๋ผ๊ฐ๊ฐ์ ๋น๊ต์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ ํ๋๋ผ๋ True ๊ฐ ๋๋ค๋ฉด True ์ด๋ค. WHERE 1 > ANY(0.1, 100, 200, 300) == TRUE
ALL
์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๊ฐ๋ค๊ณผ ์ปฌ๋ผ๊ฐ์ ๋น๊ต์ฐ์ฐ ํ์ ๋ ๋ชจ๋ TRUE ์ฌ์ผ์ง๋ง TRUE
EXISTS
์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๊ฐ ์์ผ๋ฉด True ์์ผ๋ฉด False
์๊ด์ฟผ๋ฆฌ(์ํธ์ฐ๊ด์ฟผ๋ฆฌ)
๋ฉ์ธ์ฟผ๋ฆฌ์์ ์ฌ์ฉํ ์ปฌ๋ผ๊ฐ์ ์๋ธ์ฟผ๋ฆฌ์์๋ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ.
๋ฉ์ธ์ฟผ๋ฆฌ์ ์ปฌ๋ผ๊ฐ์ด ๋ณ๊ฒฝ๋๋ฉด ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๊ฐ๋ ๋ฐ๋๋ค.
์๊ด์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ฐธ์กฐ๋ฅผ ์ํ ๋ ํผ๋ฐ์ค๊ฐ ํ์ํ๋ค. ๋ฉ์ธ์ฟผ๋ฆฌ์ FROM ์ ๋ณ์นญ์ ์ง์ ํ๋ค.
์ธ๋ผ์ธ๋ทฐ
FROM ์ ์์ ์ฌ์ฉํ๋ ์๋ธ์ฟผ๋ฆฌ
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ๋ฐ์ดํฐ์ ์ค๋ณต์ ์ต์ํํ๊ณ , ์ด์ํ์์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฐ๊ด๋ ๋ฐ์ดํฐ๋ค์ ๋ถ๋ฆฌํ์ฌ ์ ์ฅํ๋๋ก ์ค๊ณํ๋ค.ํ์ํ ๋ ํ
์ด๋ธ๊ฐ JOIN ์ ํตํด ์ํ๋ ํํ์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ค.
(1) CROSS JOIN : ์กฐ์ธ ์กฐ๊ฑด์ ์ ๊ฒฐ๊ณผ๊ฐ ๋ฌด์กฐ๊ฑด ์ฐธ์ธ JOIN
(2) INNER JOIN(=EQUALS JOIN, ๋ฑ๊ฐ ์กฐ์ธ)
JOIN [ํ
์ด๋ธ๋ช
] ON(์กฐ๊ฑด);
JOIN ํ ํ
์ด๋ธ์ ์ปฌ๋ผ๋ช
์ด ๊ฐ์ผ๋ฉด USING() ์ ์ฌ์ฉํ๋ค.
(3) OUTER JOIN
ํน์ ํ
์ด๋ธ์ ๊ธฐ์ค์ผ๋ก JOIN ์ ์ํํ๋ค.
ํน์ ํ
์ด๋ธ์ ๊ธฐ์ค์ผ๋ก JOIN ์กฐ๊ฑด์ ์ด False ๋ฅผ ๋ฐํํ๋๋ผ๋ ํน์ ํ
์ด๋ธ์ ์ปฌ๋ผ์ Result set ์ ํฌํจ์ํจ๋ค.
LEFT JOIN, RIGHT JOIN, FULL OTHER JOIN
(4) SELF JOIN : ์๊ธฐ ์์ ๊ณผ JOIN
(1) ๋ฌธ์์ด ๊ธฐ๋ฐ ํจ์
LENGTH, CHAR_LENGTH, SUBSTR, INSTR, CONCAT, REPLACE, TRIM, LPAD, RPAD
(2) ์ซ์ ๊ด๋ จ ํจ์
ABS(์ ๋๊ฐ), MOD(๋๋จธ์ง), FLOOR(๋ด๋ฆผ์ฒ๋ฆฌ), ROUND(๋ฐ์ฌ๋ฆผ), CEIL(์ฌ๋ฆผ์ฒ๋ฆฌ), TRUNCATE(์ ์ญ)
(3) ๋ ์ง ๊ด๋ จ ํจ์
NOW, DATEDIFF, DATE_ADD, DATE_SUB, TIMESTAMPDIFF, DATE, MONTH, YEAR
(4) ํ๋ณํ ํจ์
CAST
(5) NULL ์ฒ๋ฆฌ ํจ์
IFNULL(A,B) : A ๊ฐ NULL ์ด ์๋๋ผ๋ฉด A ๊ฐ ๋ฐํ ๋ฐ๋๋ B ๊ฐ ๋ฐํ๋๋ค.
CASE-WHEN-THEN ์กฐ๊ฑด์
IF ELSE ์ ๋น์ทํ ๊ตฌ๋ฌธ์ด๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ๋ค.
CASE WHEN [์กฐ๊ฑด์] THEN [๊ฒฐ๊ณผ๊ฐ]
WHEN [์กฐ๊ฑด์] THEN [๊ฒฐ๊ณผ๊ฐ]
WHEN [์กฐ๊ฑด์] THEN [๊ฒฐ๊ณผ๊ฐ]
ELSE
END
SQL
๋ณต์ฌ