SELECT๋ฌธ์ ํ
์ด๋ธ์ ๊ตฌ์ฑํ๋ ํํ(ํ)๋ค ์ค์์ ์ ์ฒด ๋๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ํํ(ํ)์ ๊ฒ์ํ์ฌ ์ฃผ๊ธฐ์ต์ฅ์น ์์ ์์ ํ
์ด๋ธ๋ก ๊ตฌ์ฑํ๋ ๋ช
๋ น๋ฌธ์ด๋ค.
์ผ๋ฐ ํ์
1 2 3 4 5 6
| SELECT PREDICATE [ํ
์ด๋ธ๋ช
,]์์ฑ๋ช
1, [ํ
์ด๋ธ๋ช
,]์์ฑ๋ช
2, ... FROM ํ
์ด๋ธ๋ช
1, ํ
์ด๋ธ๋ช
2,... [WHERE ์กฐ๊ฑด] [GROUP BY ์์ฑ๋ช
1, ์์ฑ๋ช
2, ...] [HAVING ์กฐ๊ฑด] [ORDER BY ์์ฑ๋ช
[ASC | DEAC]];
|
์์ฑ๋ช
: ๊ฒ์ํ์ฌ ๋ถ๋ฌ์จ ์์ฑ(์ด) ๋๋ ์์ฑ์ ์ด์ฉํ ์์์ ์ง์ ํ๋ค.
- ๊ธฐ๋ณธ ํ
์ด๋ธ์ ๊ตฌ์ฑํ๋ ๋ชจ๋ ์์ฑ์ ์ง์ ํ ๋๋ โ*โ๋ฅผ ๊ธฐ์ ํ๋ค.
- ๋ ๊ฐ ์ด์์ ํ
์ด๋ธ์ ๋์์ผ๋ก ๊ฒ์ํ ๋๋ โํ
์ด๋ธ๋ช
.์์ฑ๋ช
โ์ผ๋ก ํํํ๋ค.
PREDICATE : ๋ถ๋ฌ์ฌ ํํ ์๋ฅผ ์ ํํ ๋ช
๋ น์ด๋ฅผ ๊ธฐ์ ํ๋ค.
- ALL : ๋ชจ๋ ํํ์ ๊ฒ์ํ ๋ ์ง์ ํ๋ ๊ฒ์ผ๋ก, ์ฃผ๋ก ์๋ตํฉ๋๋ค.
- DISTINCT : ์ค๋ณต๋ ํํ์ด ์์ผ๋ฉด ๊ทธ ์ค ์ฒซ ๋ฒ์งธ ํ ๊ฐ๋ง ๊ฒ์ํฉ๋๋ค.
- DISINCTROW : ์ค๋ณต๋ ํํ์ ์ ๊ฑฐํ๊ณ ํ ๊ฐ๋ง ๊ฒ์ํ์ง๋ง ์ ํ๋ ์์ฑ์ ๊ฐ์ด ์๋, ํํ ์ ์ฒด๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค.
FORM์ : ์ง์์ ์ํด ๊ฒ์๋ ๋ฐ์ดํฐ๋ค์ ํฌํจํ๋ ํ
์ด๋ธ๋ช
์ ๊ธฐ์ ํ๋ค.
WHERE์ : ๊ฒ์ํ ์กฐ๊ฑด์ ๊ธฐ์ ํ๋ค.
GROUP BY์ : ํน์ ์์ฑ์ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํํ์ฌ ๊ฒ์ํ ๋ ๊ทธ๋ฃนํํ ์์ฑ์ ์ง์ ํ๋ค.
์ผ๋ฐ์ ์ผ๋ก GROUP BY์ ์ ๊ทธ๋ฃน ํจ์์ ํจ๊ป ์ฌ์ฉ๋๋ค.
HAVING์ : GROUP BY์ ํจ๊ป ์ฌ์ฉ๋๋ฉฐ, ๊ทธ๋ฃน์ ๋ํ ์กฐ๊ฑด์ ์ง์ ํ๋ค.
ORDER BY์ : ํน์ ์์ฑ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๋ฉฐ ๊ฒ์ํ ๋ ์ฌ์ฉํ๋ค.
- ์์ฑ๋ช
: ์ ๋ ฌ์ ๊ธฐ์ค์ด ๋๋ ์์ฑ๋ช
์ ๊ธฐ์ ํ๋ค.
- [ASC|DESC] : ์ ๋ ฌ ๋ฐฉ์์ผ๋ก์โASCโ๋ ์ค๋ฆ์ฐจ์, โDESCโ๋ ๋ด๋ฆผ์ฐจ์์ด๋ค, ์๋ตํ๋ฉด ์ค๋ฆ์ฐจ์โASCโ์ผ๋ก ์ง์ ๋๋ค.
๊ธฐ๋ณธ๊ฒ์
SELECT์ ์ ์ํ๋ ์์ฑ์ ์ง์ ํ์ฌ ๊ฒ์ํ๋ค.
| ์ด๋ฆ |
๋ถ์ |
์์ผ |
์ฃผ์ |
๊ธฐ๋ณธ๊ธ |
| ํ๊ธธ๋ |
๊ธฐํ |
04/05/61 |
๋ง์๋ |
120 |
| ์๊บฝ์ |
์ธํฐ๋ท |
01/09/69 |
๋ง์๋ |
80 |
| ํฉ์ง์ด |
ํธ์ง |
07/21/75 |
๋ง์๋ |
100 |
| ๊น์ ๋ฌ |
ํธ์ง |
10/22/73 |
๋ง์๋ |
90 |
| ์ฑ์ถํฅ |
๊ธฐํ |
02/20/64 |
๋ง์๋ |
100 |
| ์ฅ๊ธธ์ฐ |
ํธ์ง |
03/11/67 |
๋ง์๋ |
120 |
| ์ผ์ง๋งค |
๊ธฐํ |
04/29/78 |
๋ง์๋ |
110 |
| ๊ฐ๊ฑด๋ฌ |
์ธํฐ๋ท |
12/11/80 |
๋ง์๋ |
90 |
| ์ด๋ฆ |
์ทจ๋ฏธ |
๊ฒฝ๋ ฅ |
| ๊น์ ๋ฌ |
๋น๊ตฌ |
10 |
| ์ ์ถํฅ |
๋์ดํธ๋์ค |
5 |
| ์ผ์ง๋งค |
ํ๊ฒฌ |
15 |
| ์๊บฝ์ |
์จ๋ฆ |
8 |
1 2 3 4
| SELECT FROM ์ฌ์; SELECT ์ฌ์ FROM ์ฌ์; SELECT ์ด๋ฆ, ๋ถ์, ์์ผ, ์ฃผ์, ๊ธฐ๋ณธ๊ธ FROM ์ฌ์; SELECT ์ฌ์.์ด๋ฆ, ์ฌ์.๋ถ์, ์ฌ์.์์ผ, ์ฌ์.์ฃผ์, ์ฌ์.๊ธฐ๋ณธ๊ธ FROM ์ฌ์;
|
- Q1 <์ฌ์> ํ
์ด๋ธ์ ๋ชจ๋ ํํ์ ๊ฒ์ํ์์ค.
1 2
| SELECT DISTINCT ์ฃผ์ FROM ์ฌ์;
|
| ์ฃผ์ |
| ๋๊ต๋ |
| ๋ง์๋ |
| ์์๋ |
| ์๊ต๋ |
| ์ฐ๋จ๋ |
| ํฉ์ ๋ |
- Q3 <์ฌ์> ํ
์ด๋ธ์์ โ๊ธฐ๋ณธ๊ธโ์ ํน๋ณ์๋น 10์ ๋ํ ์๊ธ์ โXX๋ถ์์ XXX์ ์๊ธ XXXโํํ๋ก ์ถ๋ ฅํ์์ค.
1 2
| SELECT ๋ถ์ + '๋ถ์์' AS ๋ถ์2, ์ด๋ฆ + '์ ์๊ธ',AS ์ด๋ฆ, ๊ธฐ๋ณธ๊ธ + 10 AS RLQHSRMQ2 FROM ์ฌ์;
|
| ๋ถ์ |
์ด๋ฆ2 |
๊ธฐ๋ณธ๊ธ2 |
| ๊ธฐํ๋ถ์์ |
ํ๊ธธ๋์ ์๊ธ |
130 |
| ์ธํฐ๋ท๋ถ์์ |
์๊บฝ์ ์ ์๊ธ |
90 |
| ํธ์ง๋ถ์์ |
ํฉ์ง์ด์ ์๊ธ |
110 |
| ํธ์ง๋ถ์์ |
๊น๊ฑด๋ฌ์ ์๊ธ |
100 |
| ๊ธฐํ๋ถ์์ |
์ฑ์ถํฅ์ ์๊ธ |
110 |
| ํธ์ง๋ถ์์ |
์ฅ๊ธธ์ฐ์ ์๊ธ |
130 |
| ๊ธฐํ๋ถ์์ |
์ผ์ง๋งค์ ์๊ธ |
120 |
| ์ธํฐ๋ท๋ถ์์ |
๊ฐ๊ฑด๋ฌ์ ์๊ธ |
100 |
์กฐ๊ฑด ์ง์ ๊ฒ์
WHERE์ ์ ์กฐ๊ฑด์ ์ง์ ํ์ฌ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ํํ์ ๊ฒ์ํ๋ค.
- Q1 <์ฌ์> ํ
์ด๋ธ์์ โ๊ธฐํโ ๋ถ์ ๋ชจ๋ ํํ์ ๊ฒ์ํ์์ค.
1 2 3
| SELECT * FROM ์ฌ์ WHERE ๋ถ์ = '๊ธฐํ';
|
| ์ด๋ฆ |
๋ถ์ |
์์ผ |
์ฃผ์ |
๊ธฐ๋ณธ๊ธ |
| ํ๊ธธ๋ |
๊ธฐํ |
04/05/61 |
๋ง์๋ |
120 |
| ์ฑ์ถํฅ |
๊ธฐํ |
02/20/64 |
๋ํฅ๋ |
100 |
| ์ผ์ง๋งค |
๊ธฐํ |
04/29/78 |
์ฐ๋จ๋ |
110 |
- Q2 <์ฌ์> ํ
์ด๋ธ์์ ๋ถ์๋ โ๊ธฐํโ์ด๊ณ , ๊ธฐ๋ณธ๊ธ์ด 110๋ณด๋ค ํฐ ํํ์ ๊ฒ์ํ๋ SQL๋ฌธ์ ์์ฑํ์์ค.
1 2 3
| SELECT * FROM ์ฌ์ WHERE ๋ถ์ = '๊ธฐํ' AND ๊ธฐ๋ณธ๊ธ > 110;
|
| ์ด๋ฆ |
๋ถ์ |
์์ผ |
์ฃผ์ |
๊ธฐ๋ณธ๊ธ |
| ํ๊ธธ๋ |
๊ธฐํ |
04/05/61 |
๋ง์๋ |
120 |
- Q3 <์ฌ์> ํ
์ด๋ธ์์ โ๋ถ์โ๊ฐ โ๊ธฐํโ ์ด๊ฑฐ๋ โ์ธํฐ๋ทโ์ธ ํํ์ ๊ฒ์ํ์์ค.
1 2 3
| SELECT * FROM ์ฌ์ WHERE ๋ถ์= '๊ธฐํ' OR ๋ถ์ = '์ธํฐ๋ท';
|
| ์ด๋ฆ |
๋ถ์ |
์์ผ |
์ฃผ์ |
๊ธฐ๋ณธ๊ธ |
| ํ๊ธธ๋ |
๊ธฐํ |
04/05/61 |
๋ง์๋ |
120 |
| ์๊บฝ์ |
์ธํฐ๋ท |
01/09/69 |
์๊ต๋ |
80 |
| ์ฑ์ถํฅ |
๊ธฐํ |
02/20/64 |
๋ํฅ๋ |
100 |
| ์ผ์ง๋งค |
๊ธฐํ |
04/29/78 |
์ฐ๋จ๋ |
110 |
| ๊ฐ๊ฑด๋ฌ |
์ธํฐ๋ท |
12/11/80 |
|
90 |
- Q4 <์ฌ์> ํ
์ด๋ธ์์ ์ฑ์ด โ๊นโ์ธ ์ฌ๋์ ํํ์ ๊ฒ์ํ์์ค.
1 2 3
| SELECT * FROM ์ฌ์ WHERE ์ด๋ฆ LIKE '๊น%'
|
| ์ด๋ฆ |
๋ถ์ |
์์ผ |
์ฃผ์ |
๊ธฐ๋ณธ๊ธ |
| ๊น์ ๋ฌ |
ํธ์ง |
10/22/73 |
๋ง์๋ |
90 |
- q5 <์ฌ์> ํ
์ด๋ธ์์ โ์์ผโ์ด โ01/01/69โ์์ โ12/31/73โ์ฌ์ด์ธ ํํ์ ๊ฒ์ํ์์ค.
1 2 3
| SELECT * FROM ์ฌ์ WHERE ์์ผ BETWEEN #01/01/69# AND #12/31/73#;
|
| ์ด๋ฆ |
๋ถ์ |
์์ผ |
์ฃผ์ |
๊ธฐ๋ณธ๊ธ |
| ์๊บฝ์ |
์ธํฐ๋ท |
01/09/69 |
์๊ต๋ |
80 |
| ๊น์ ๋ฌ |
ํธ์ง |
10/22/73 |
๋ง์๋ |
90 |
- Q6 <์ฌ์> ํ
์ด๋ธ์์ โ์ฃผ์โ๊ฐ NULL์ธ ํํ์ ๊ฒ์ํ์์ค.
1 2 3
| SELECT * FROM ์ฌ์ WHERE ์ฃผ์ IS NULL;
|
| ์ด๋ฆ |
๋ถ์ |
์์ผ |
์ฃผ์ |
๊ธฐ๋ณธ๊ธ |
| ๊ฐ๊ฑด๋ฌ |
์ธํฐ๋ท |
12/11/80 |
|
90 |
์ ๋ ฌ ๊ฒ์
ORDER BY์ ์ ํน์ ์์ฑ์ ์ง์ ํ์ฌ ์ง์ ๋ ์์ฑ์ผ๋ก ์๋ฃ๋ฅผ ์ ๋ ฌํ์ฌ ๊ฒ์ํ๋ค.
- Q1 <์ฌ์> ํ
์ด๋ธ์์ โ์ฃผ์โ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์์ผ ์์2๊ฐ ํํ๋ง ๊ฒ์ํ์์ค.
1 2 3
| SELECT TOP 2 * FROM ์ฌ์ DRDER BY ์ฃผ์ DESC;
|
| ์ด๋ฆ |
๋ถ์ |
์์ผ |
์ฃผ์ |
๊ธฐ๋ณธ๊ธ |
| ํฉ์ง์ด |
ํธ์ง |
07/21/75 |
ํฉ์ ๋ |
100 |
| ์ผ์ง๋งค |
๊ธฐํ |
04/29/78 |
์ฐ๋จ๋ |
110 |
- Q2 <์ฌ์> ํ
์ด๋ธ์์โ๋ถ์โ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๊ณ , ๊ฐ์ ๋ถ์์ ๋ํด์๋ โ์ด๋ฆโ์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์์ผ์ ๊ฒ์ํ์์ค.
1 2 3
| SELECT * FROM ์ฌ์ ORDER BY ๋ถ์ ASC,์ด๋ฆ DESC;
|
| ์ด๋ฆ |
๋ถ์ |
์์ผ |
์ฃผ์ |
๊ธฐ๋ณธ๊ธ |
| ํ๊ธธ๋ |
๊ธฐํ |
04/05/61 |
๋ง์๋ |
120 |
| ์ผ์ง๋งค |
๊ธฐํ |
04/29/78 |
์ฐ๋จ๋ |
110 |
| ์ฑ์ถํฅ |
๊ธฐํ |
02/20/64 |
๋ํ๋ |
100 |
| ์๊บฝ์ |
์ธํฐ๋ท |
01/09/69 |
์๊ต๋ |
80 |
| ๊ฐ๊ฑด๋ฌ |
์ธํฐ๋ท |
12/11/80 |
|
90 |
| ํฉ์ง์ด |
ํธ์ง |
07/21/75 |
ํฉ์ ๋ |
100 |
| ์ฅ๊ธธ์ฐ |
ํธ์ง |
03/11/67 |
์์๋ |
120 |
| ๊น์ ๋ฌ |
ํธ์ง |
10/22/73 |
๋ง์๋ |
90 |
๊ทธ๋ฃน์ง์ ๊ฒ์
GROUP BY์ ์ ์ง์ ํ ์์ฑ์ ๊ธฐ์ค์ผ๋ก ์๋ฃ๋ฅผ ๊ทธ๋ฃนํํ์ฌ ๊ฒ์ํ๋ค.
- Q1 <์ฌ์> ํ
์ด๋ธ์์ โ๋ถ์โ๋ณ โ๊ธฐ๋ณธ๊ธโ์ ํ๊ท ์ ๊ตฌํ์์ค.
1 2 3
| SELECT ๋ถ์, AVG(๊ธฐ๋ณธ๊ธ) AS ํ๊ท FROM ์ฌ์ GROUP BY ๋ถ์;
|
| ๋ถ์ |
ํ๊ท |
| ๊ธฐํ |
110 |
| ์ธํฐ๋ท |
85 |
| ํธ์ง |
103.3 |
- Q2 <์ฌ์> ํ
์ด๋ธ์์ โ๋ถ์โ๋ณ ํํ ์๋ฅผ ๊ฒ์ํ์์ค.
1 2 3
| SELECT ๋ถ์, COUNT(*) AS ์ฌ์์ FROM ์ฌ์ GROUP BY ๋ถ์;
|
| ๊ฒฐ๊ณผ |
์ฌ์์ |
| ๊ธฐํ |
3 |
| ์ธํฐ๋ท |
2 |
| ํธ์ง |
3 |
- Q3 <์ฌ์> ํ
์ด๋ธ์์ โ๊ธฐ๋ณธ๊ธโ์ด 100์ด์์ธ ์ฌ์์ด 2๋ช
์ด์์ธ โ๋ถ์โ์ ํํ ์๋ฅผ ๊ตฌํ์์ค.
1 2 3 4 5
| SELECT ๋ถ์, COUNT(*) AS ์ฌ์์ FROM ์ฌ์ WHERE ๊ธฐ๋ณธ๊ธ>=100 GROUP BY ๋ถ์ HVAING COUNT(*) >=2;
|
| ๊ฒฐ๊ณผ |
์ฌ์์ |
| ๊ธฐํ |
3 |
| ํธ์ง |
2 |
ํ์ ์ง์
ํ์ ์ง์๊ฐ ์๋ ์ง์๋ฌธ์ ์กฐ๊ฑด์ ์ ์ฃผ์ด์ง ํ์ ์ง์๋ฅผ ๋จผ์ ์ํํ๋ฉฐ ๊ทธ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ์กฐ๊ฑด์ ์ ํผ์ฐ์ฐ์๋ก ์ฌ์ฉํ๋ค.
- Q1 โ์ทจ๋ฏธโ๊ฐ โ๋์ดํธ๋์คโ์ธ ์ฌ์์ โ์ด๋ฆโ๊ณผ โ์ฃผ์โ๋ฅผ ๊ฒ์ํ์์ค.
1 2 3
| SELECT ์ด๋ฆ, ์ฃผ์ FROM ์ฌ์ WHERE ์ด๋ฆ=(SELECT ์ด๋ฆ FROM ์ฌ๊ฐํ๋ WHERE ์ทจ๋ฏธ='๋์ดํธ๋์ค');
|
| ์ด๋ฆ |
์ฃผ์ |
| ์ฑ์ถํฅ |
๋ํฅ๋ |
- Q2 ์ทจ๋ฏธํ๋์ ํ์ง ์๋ ์ฌ์๋ค์ ๊ฒ์ํ์์ค.
1 2 3
| SELECT * FROM ์ฌ์ WHERE ์ด๋ฆ NOT IN (SELECT ์ด๋ฆ FROM ์ฌ๊ฐํ๋);
|
| ์ด๋ฆ |
๋ถ์ |
์์ผ |
์ฃผ์ |
๊ธฐ๋ณธ๊ธ |
| ํ๊ธธ๋ |
๊ธฐํ |
04/05/61 |
๋ง์๋ |
120 |
| ํ์ง์ด |
ํธ์ง |
07/21/75 |
ํฉ์ ๋ |
100 |
| ์ฅ๊ธธ์ฐ |
ํธ์ง |
03/11/67 |
์์๋ |
120 |
| ๊ฐ๊ฑด๋ฌ |
์ธํฐ๋ท |
12/11/80 |
|
90 |
ํตํฉ(UNION) ์ง์
๋ SELECT๋ฌธ์ ์กฐํ ๊ฒฐ๊ณผ๋ฅผ ํตํฉํ์ฌ ๊ฒ์ํ๋ค.
- Q1 ์ฌ์๋ค์ ๋ช
๋จ์ด <์ฌ์> ํ
์ด๋ธ๊ณผ <์ง์> ํ
์ด๋ธ์ ์ ์ฅ๋์ด ์๋ค. ๋ ํ
์ด๋ธ์ ํตํฉํ๋ ์ง์๋ฌธ์ ์์ฑํ์์ค. ๋จ. ๊ฐ์ ๋ ์ฝ๋๊ฐ ๋ ๋ฒ ๋์ค์ง ์๊ฒ ํ์์ค.
| ์ฌ์ |
์ง๊ธ |
| ๊นํ์ |
๋๋ฆฌ |
| ํ์ฐ์ |
๊ณผ์ฅ |
| ๋ฅ๊ธฐ์ |
๋ถ์ฅ |
| ๊นํ์ฒ |
์ด์ฌ |
| ์ฌ์ |
์ง๊ธ |
| ์ ์์ญ |
์ด์ฌ |
| ์ด์ฑํธ |
๋๋ฆฌ |
| ํ์์ |
๊ณผ์ฅ |
| ๋ฅ๊ธฐ์ |
๋ถ์ฅ |
1 2 3 4 5
| SELECT * FROM ์ฌ์ UNION SELECT * FROM ์ง์;
|
| ์ฌ์ |
์ง๊ธ |
| ๊นํ์ฒ |
์ด์ฌ |
| ๊นํ์ |
๋๋ฆฌ |
| ๋ฅ๊ธฐ์ |
๋ถ์ฅ |
| ์ ์์ญ |
์ด์ฌ |
| ์ด์ฑํธ |
๋๋ฆฌ |
| ํ์์ |
๊ณผ์ฅ |