1. SELECT(๊ฒ์)
1) ํ ์ด๋ธ์ ํน์ ์นผ๋ผ์ ๋ถ๋ฌ์ฌ ๋
SELECT ์นผ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
;
์ฌ๋ฌ ๊ฐ์ ์นผ๋ผ์ ๋ถ๋ฌ์ฌ ๋๋ ์ฝค๋ง(,)๋ฅผ ์ฌ์ฉํ๋ค.
SELECT ์นผ๋ผ๋ช
1, ์นผ๋ผ๋ช
2, ์นผ๋ผ๋ช
3 FROM ํ
์ด๋ธ๋ช
;
๋ชจ๋ ์นผ๋ผ์ * ๊ธฐํธ ์ฌ์ฉ
SELECT * FROM ํ
์ด๋ธ๋ช
;
AS ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ณ๋ช (์๋ก์ด ์ด๋ฆ)์ ๋ถ์ผ ์ ์๋ค.
SELECT ์นผ๋ผ1 AS ๋ณ๋ช
1 FROM ํ
์ด๋ธ๋ช
;
์ค๋ณต์ ์ ์ธํ๊ณ ๊ฐ์ ธ์ค๊ณ ์ถ์ ๋๋ DISTINCT ์ฐ์ฐ์๋ฅผ ์ด๋ค. ๋ฐ์ดํฐ๋ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋๋ค.
SELECT DISTINCT ์นผ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
;
2) ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์นผ๋ผ์ ๋ถ๋ฌ์ฌ ๋
SELECT ์นผ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
WHERE ์นผ๋ผ๋ช
= ๊ฐ; /*์กฐ๊ฑด๋น๊ต๋ =, !=, <, >, <=, >=, IS NULL ๋ฑ์ด ์์*/
SELECT ์นผ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
WHERE ์นผ๋ผ๋ช
LIKE ํจํด; /*ํจํด๊ธฐํธ๋ %(๋ชจ๋ ๋ฌธ์), _(์๋ฆฌ์)๊ฐ ์๋ค.*/
์กฐ๊ฑด์ด ์ฌ๋ฌ ๊ฐ์ผ ๋๋ AND, OR ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ค.
SELECT ์นผ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
WHERE ์นผ๋ผ๋ช
1 = ๊ฐ1 AND ์นผ๋ผ๋ช
2 = ๊ฐ2; /*์กฐ๊ฑด์ด ์ฌ๋ฌ ๊ฐ์ผ ๊ฒฝ์ฐ AND, OR ์ฐ์ฐ์ ์ฌ์ฉ*/
3) ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ์ฌ ๋ถ๋ฌ์ค๊ณ ์ถ์ ๋
SELECT ์นผ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
WHERE ์นผ๋ผ๋ช
= ๊ฐ ORDER BY ์นผ๋ผ๋ช
ASC or DESC;
๋ณต์ ์ ๋ ฌํ ๋๋ ์ฝค๋ง(,)๋ฅผ ์ด์ฉํ๋ฉด ๋๋ค.
SELECT ์นผ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
WHERE ์นผ๋ผ๋ช
= ๊ฐ ORDER BY ์นผ๋ผ๋ช
1 ASC, ์นผ๋ผ๋ช
2 DESC;
4) ํน์ ๊ฐ์๊น์ง๋ง ๋ถ๋ฌ์ค๊ณ ์ถ์ ๋
SELECT ์นผ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
WHERE ์นผ๋ผ๋ช
= ๊ฐ ORDER BY ์นผ๋ผ๋ช
ASC or DESC LIMIT ๊ฐ์;
2. INSERT(์ฝ์ )
1) ํ ์ด๋ธ์ ์นผ๋ผ๋ช ์ ๋ง๊ฒ ๊ฐ์ ์ ๋ ฅํ ๋(์นผ๋ผ๋ช ๊ณผ ๊ฐ์ ๊ฐ์๊ฐ ๋์ผํด์ผ ํจ)
INSERT INTO ํ
์ด๋ธ๋ช
(์นผ๋ผ๋ช
1, ์นผ๋ผ๋ช
2, ์นผ๋ผ๋ช
2) VALUES(๊ฐ1, ๊ฐ2, ๊ฐ3);
2) ๋ฌธ์๋ฅผ ์ ๋ ฅํ ๊ฒฝ์ฐ '' ์์ ๋ฌธ์์ด์ ๋ฃ์ด์ผ ํจ.
INSERT INTO TABLE_FRIEND(NAME, AGE, PHONE) VALUES('Mina', 20, '010-1111-1111');
3) ์นผ๋ผ ๊ฐ์ ์์์ ๊ฐ์๊ฐ ๋ง๋ค๋ฉด ์นผ๋ผ๋ช ์ ์ ๋ ฅํ์ง ์์๋ ๊ฐ๋ฅ
INSERT INTO ํ
์ด๋ธ๋ช
VALUES(๊ฐ1, ๊ฐ2, ๊ฐ3);
3. UPDATE(์์ )
1) ํ ์ด๋ธ์ ์๋ ํน์ ์นผ๋ผ์ ๊ฐ์ ์ ๋ถ ๋ณ๊ฒฝํ๊ณ ์ถ์ ๋
UPDATE ํ
์ด๋ธ๋ช
SET ์ปฌ๋ผ๋ช
= ๋ณ๊ฒฝํ ๊ฐ;
2) ์กฐ๊ฑด์ ๋ง๋ ๋ฐ์ดํฐ๋ง ๋ณ๊ฒฝํ๊ณ ์ถ์ ๋
UPDATE ํ
์ด๋ธ๋ช
SET ์นผ๋ผ๋ช
= ๋ณ๊ฒฝํ ๊ฐ WHERE ์นผ๋ผ๋ช
= ๊ฐ;
๋ณ๊ฒฝํ ์นผ๋ผ์ด ์ฌ๋ฌ ๊ฐ์ด๋ฉด ์ฝค๋ง(,)๋ฅผ ์ด์ฉํ๋ค.
UPDATE ํ
์ด๋ธ๋ช
SET ์นผ๋ผ๋ช
1 = ๋ณ๊ฒฝํ ๊ฐ1, ์นผ๋ผ๋ช
2 = ๋ณ๊ฒฝํ ๊ฐ2 WHERE ์นผ๋ผ๋ช
= ๊ฐ;
4. DELETE(์ญ์ )
1) ํ ์ด๋ธ์ ๋ชจ๋ ๋ฐ์ดํฐ ์ญ์
DELETE from ํ
์ด๋ธ๋ช
;
2) ์กฐ๊ฑด์ ๋ง๋ ๋ฐ์ดํฐ๋ง ์ญ์
DELETE from ํ
์ด๋ธ๋ช
WHERE ์นผ๋ผ๋ช
= ๊ฐ;
[์ถ๊ฐ ๋ด์ฉ]
1. SQL ํจ์
1) ํน์ ์นผ๋ผ์์ ์ต๋๊ฐ ๊ตฌํ๊ธฐ(์นผ๋ผ๋ช ์ด MAX(์นผ๋ผ๋ช )์ผ๋ก ๋์ด)
SELECT MAX(์นผ๋ผ๋ช
) FROM ํ
์ด๋ธ๋ช
;
2) ํน์ ์นผ๋ผ์์ ์ต์๊ฐ ๊ตฌํ๊ธฐ(์นผ๋ผ๋ช ์ด MIN(์นผ๋ผ๋ช )์ผ๋ก ๋์ด)
SELECT MIN(์นผ๋ผ๋ช
) FROM ํ
์ด๋ธ๋ช
;
3) ์นผ๋ผ์ ํฉ ๊ตฌํ๊ธฐ(์นผ๋ผ๋ช ์ด SUM(์นผ๋ผ๋ช )์ผ๋ก ๋์ด)
SELECT SUM(์นผ๋ผ๋ช
) FROM ํ
์ด๋ธ๋ช
;
๊ทธ ์ธ ํ๊ท ์ ๊ตฌํ๋ AVG(์นผ๋ผ๋ช ), ๊ฐ์๋ฅผ ๊ตฌํ๋ COUNT(์นผ๋ผ๋ช ),
๋๋ฌธ์๋ก ๋ฐ๊พธ๋ UPPER(์นผ๋ผ๋ช ), ์๋ฌธ์๋ก ๋ฐ๊พธ๋ LOWER(์นผ๋ผ๋ช ) ๋ ์์!!
4) ๊ทธ๋ฃน๋ณ ๊ฐ์ ๊ตฌํ๊ธฐ
: ํน์ ์ปฌ๋ผ์ ๊ทธ๋ฃนํ ํ๋ GROUP BY ํค์๋์ ํน์ ์นผ๋ผ์ ๊ทธ๋ฃนํํ ๊ฒฐ๊ณผ์ ์กฐ๊ฑด์ ๊ฑฐ๋ HAVING ํค์๋ ์ฌ์ฉ
SELECT ์ปฌ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
GROUP BY ๊ทธ๋ฃนํํ ์ปฌ๋ผ๋ช
HAVING ์กฐ๊ฑด์;
2. JOIN
๋ ๊ฐ ์ด์์ ํ ์ด๋ธ์ ํ์ ๊ฒฐํฉํด์ ํ๋์ ํ์ธ ๊ฒ์ฒ๋ผ ์ฌ์ฉ
SELECT ํ
์ด๋ธ ๋ณ๋ช
1.์นผ๋ผ์ด๋ฆ1, ์กฐ์ธํ
์ด๋ธ ๋ณ๋ช
2.์นผ๋ผ์ด๋ฆ2
FROM ํ
์ด๋ธ๋ช
(AS) ํ
์ด๋ธ ๋ณ๋ช
JOIN ์กฐ์ธํ
์ด๋ธ๋ช
(AS) ์กฐ์ธํ
์ด๋ธ ๋ณ๋ช
ON(WHERE) ํ
์ด๋ธ ๋ณ๋ช
.๊ธฐ์คํค = ํ
์ด๋ธ ๋ณ๋ช
.๊ธฐ์คํค....
JOIN ํค์๋ ๋์ ์ฝค๋ง(,)๋ฅผ ์ฌ์ฉํด๋ ๋จ
SELECT ํ
์ด๋ธ ๋ณ๋ช
1.์นผ๋ผ์ด๋ฆ1, ์กฐ์ธํ
์ด๋ธ ๋ณ๋ช
2.์นผ๋ผ์ด๋ฆ2
FROM ํ
์ด๋ธ๋ช
(AS) ํ
์ด๋ธ ๋ณ๋ช
, ์กฐ์ธํ
์ด๋ธ๋ช
(AS) ์กฐ์ธํ
์ด๋ธ ๋ณ๋ช
ON(WHERE) ํ
์ด๋ธ ๋ณ๋ช
.๊ธฐ์คํค = ํ
์ด๋ธ ๋ณ๋ช
.๊ธฐ์คํค....
1) INNER JOIN: ๊ต์งํฉ. ์ผ๋ฐ์ ์ธ JOIN์ INNER JOIN์ ๋งํ๋ค. EQUAL JOIN์ด๋ผ ๋ถ๋ฅด๊ธฐ๋ ํจ
SELECT ํ
์ด๋ธ๋ณ๋ช
.์นผ๋ผ์ด๋ฆ as ์๋ก์ง์ ์นผ๋ผ๋ช
, ์กฐ์ธํ
์ด๋ธ๋ณ๋ช
.์นผ๋ผ์ด๋ฆ as ์๋ก์ง์ ์นผ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
ํ
์ด๋ธ๋ณ๋ช
INNER JOIN ์กฐ์ธํ
์ด๋ธ๋ช
์กฐ์ธํ
์ด๋ธ๋ณ๋ช
ON(WHERE) ํ
์ด๋ธ๋ณ๋ช
.๊ธฐ์คํค = ์กฐ์ธํ
์ด๋ธ๋ณ๋ช
.๊ธฐ์คํค....
2) LEFT/RIGHT JOIN: ๋ถ๋ถ์งํฉ
2)-1 LEFT JOIN: JOIN ๊ธฐ์ค ์ผ์ชฝ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ํฌํจํ๋ค.
SELECT ํ
์ด๋ธ๋ช
.์นผ๋ผ์ด๋ฆ, ์กฐ์ธํ
์ด๋ธ๋ช
.์นผ๋ผ์ด๋ฆ
FROM ํ
์ด๋ธ๋ช
LEFT JOIN ์กฐ์ธํ
์ด๋ธ๋ช
ON(WHERE) ํ
์ด๋ธ๋ช
.๊ธฐ์คํค = ์กฐ์ธํ
์ด๋ธ๋ช
.๊ธฐ์คํค....
2)-2 RIGHT JOIN: JOIN ๊ธฐ์ค ์ค๋ฅธ์ชฝ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ํฌํจํ๋ค.
SELECT ํ
์ด๋ธ๋ช
.์นผ๋ผ์ด๋ฆ, ์กฐ์ธํ
์ด๋ธ๋ช
.์นผ๋ผ์ด๋ฆ
FROM ํ
์ด๋ธ๋ช
RIGHT JOIN ์กฐ์ธํ
์ด๋ธ๋ช
ON(WHERE) ํ
์ด๋ธ๋ช
.๊ธฐ์คํค = ์กฐ์ธํ
์ด๋ธ๋ช
.๊ธฐ์คํค....
3) OUTER JOIN: ํฉ์งํฉ
SELECT ํ
์ด๋ธ๋ช
.์นผ๋ผ์ด๋ฆ, ์กฐ์ธํ
์ด๋ธ๋ช
.์นผ๋ผ์ด๋ฆ
FROM ํ
์ด๋ธ๋ช
OUTER JOIN ์กฐ์ธํ
์ด๋ธ๋ช
ON(WHERE) ํ
์ด๋ธ๋ช
.๊ธฐ์คํค = ์กฐ์ธํ
์ด๋ธ๋ช
.๊ธฐ์คํค....
3. UNION / UNION ALL
: ๋ ๊ฐ์ ๊ฒฐ๊ณผ ์งํฉ์ ๊ฒฐํฉํ ๋ ์ฌ์ฉ(JOIN๊ณผ ์ ์ฌํจ)
: UNION ์ ์ฌ์ฉํ ๊ฒฝ์ฐ, ์ค๋ณต ๋ฐ์ดํฐ๋ ์ถ๋ ฅ๋์ง ์๋๋ค.(DISTINCT์ ์ ์ฌ)
: UNION๊ณผ UNION ALL์ ์ฐจ์ด๋ UNION ALL์ ๋ฐ์ดํฐ ๊ฐ์ด ์ค๋ณต๋๋๋ผ๋ ์กฐ๊ฑด์ ์ผ์นํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ํ์ํ๋ค๋ ์ !
* UNION ์์ฑ ์กฐ๊ฑด
1) UNION ๋ด์ ๊ฐ SELECT ๋ฌธ์ ๊ฐ์ ์์ ์ด์ ๊ฐ์ ธ์ผ ํ๋ค.
2) ์ด์ ์ ์ฌํ ๋ฐ์ดํฐ ํ์์ ๊ฐ์ ธ์ผ ํ๋ค.
3) ๊ฐ SELECT ๋ฌธ์ ์ด์ ๋์ผํ ์์๋ก ์์ด์ผ ํ๋ค.
[SQL๋ฌธ 1]
UNION
[SQL๋ฌธ 2]
์์)
TABLE1
ID | NAME |
1 | LEE |
2 | KIM |
3 | YOON |
TABLE2
ID | NAME |
2 | KIM |
4 | PARK |
[SQL ๋ฌธ]
SELECT ID, NAME
FROM TABLE1;
UNION
SELECT ID, NAME
FROM TABLE2;
[๊ฒฐ๊ณผ]
ID | NAME |
1 | KIM |
2 | LEE |
3 | YOON |
4 | PARK |
[๊ด๋ จ ๋ฌธ์ ]
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์์ด์ง ๊ธฐ๋ก ์ฐพ๊ธฐ | ํ๋ก๊ทธ๋๋จธ์ค (programmers.co.kr)
[๋ต]
SELECT OUTS.ANIMAL_ID, OUTS.NAME
FROM ANIMAL_OUTS OUTS LEFT OUTER JOIN ANIMAL_INS INS
ON OUTS.ANIMAL_ID = INS.ANIMAL_ID
WHERE INS.ANIMAL_ID IS NULL
ORDER BY OUTS.ANIMAL_ID ASC
'๐ Computer Science > CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQLD ์๊ฒฉ์ฆ] ์๊ฒฉ ์๊ตฌ๊ฐฑ์ ๋ฐ ๋ณด์๊ต์ก ์๋ฃ ๋ฐฉ๋ฒ (0) | 2023.05.18 |
---|---|
[Diagram] ๋ค์ด์ด๊ทธ๋จ ๊ทธ๋ฆฌ๋ ๋ฌด๋ฃ ์ฌ์ดํธ ๊ณต์ /์ถ์ฒ (0) | 2021.08.12 |