[ ์ค์ ์์ - 1 ] 23๋
3ํ ๊ธฐ์ถ
Q) ๋ค์ ๋ ํ
์ด๋ธ์ ๋ํด SQL๋ฌธ์ ์คํํ์์ ๋, ๋ํ๋๋ ๊ฒฐ๊ณผ ์์ฑ (์์ฑ๋ช
+ ๊ฐ ์ถ๋ ฅ)
SELECT A FROM L UNION SELECT A FROM R ORDER BY DESC; |
A)
A |
4 |
3 |
2 |
1 |
* UNION: ๋ ์งํฉ์ ํฉ (์ค๋ณต์ ์ ๊ฑฐ) โ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ
[ ์ค์ ์์ - 2 ] 23๋
2ํ ๊ธฐ์ถ
Q) ๋ค์ ์ฒ๋ฆฌ ์กฐ๊ฑด์ ๋ง๋ ์ฟผ๋ฆฌ๋ฌธ ์์ฑ
- ํ์ ํ
์ด๋ธ์ ํ๋ฒ์ด 1415245, ์ด๋ฆ์ด '๋ผ์ด์ธ', ํ๋
์ด 2, ๊ณผ๋ชฉ์ด '์ํ', ์ฐ๋ฝ์ฒ๊ฐ '010-1234-5678'์ธ ํ์์ ์ ๋ณด ์
๋ ฅ
- ์ธ์ฉ ๋ถํธ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์์ ๋ฐ์ํ(' ') ์ฌ์ฉ
- ๋ช
๋ น๋ฌธ ๋ง์ง๋ง ์ธ๋ฏธ์ฝ๋ก (;) ์๋ต ๊ฐ๋ฅ
[ ํ์ ] ํ
์ด๋ธ
์์ฑ๋ช | ํ ์ด๋ธ ํ์ | ๋น๊ณ |
ํ๋ฒ | INT | PRIMARY KEY |
์ด๋ฆ | VARCHAR (20) | |
ํ๋ | INT | |
๊ณผ๋ชฉ | VARCHAR (20) | |
์ฐ๋ฝ์ฒ | VARCHAR (20) |
A)
INSERT INTO ํ์(ํ๋ฒ, ์ด๋ฆ, ํ๋
, ๊ณผ๋ชฉ, ์ฐ๋ฝ์ฒ) VALUES(1415245, '๋ผ์ด์ธ', 2, '์ํ', '010-1234-5678' |
[ ์ค์ ์์ - 3 ] 23๋
1ํ ๊ธฐ์ถ
Q) [ํ์] ํ
์ด๋ธ์์ ํ์ ์ด๋ฆ์ด '์ง์'์ธ ํํ์ ์ญ์ ํ๋ ์ฟผ๋ฆฌ ์์ฑ
[ํ์] ํ
์ด๋ธ
์๋ฒ | ํ๋ | ์ด๋ฆ |
1 | 1 | ๋ํฌ |
2 | 2 | ์ง์ |
3 | 2 | ์์จ |
4 | 3 | ์ด์ |
A)
DELETE FROM ํ์ WHERE ์ด๋ฆ = '์ง์'; |
โ ์์ฑ์ธ [์ด๋ฆ]์๋ ๋ฐ์ดํ ๋ถ์ด์ง ์๊ธฐ!
[ ์ค์ ์์ - 4 ] 23๋
1ํ ๊ธฐ์ถ
Q) ๋ค์ ํ
์ด๋ธ๊ณผ SQL๋ฌธ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ์ฌ ์ฒ๋ฆฌํ SQL๋ฌธ ์์ฑ (๊ณผ๋ชฉ๋ณ ๊ทธ๋ฃน์ ๋ฌถ์์ ๋ ๊ณผ๋ชฉ ํ๊ท ์ด 90์ด์์ธ ๊ณผ๋ชฉ์ ๋ํด์๋ง ์ถ๋ ฅ)
[์ฑ์ ] ํ
์ด๋ธ
์๋ฒ | ๊ณผ๋ชฉ | ์ ์ |
1 | ๋ฐ์ดํฐ ๋ฒ ์ด์ค | 89 |
2 | ๋ฐ์ดํฐ ๋ฒ ์ด์ค | 94 |
3 | ๋คํธ์ํฌ | 45 |
4 | ์ํํธ์จ์ด | 68 |
5 | ๋คํธ์ํฌ | 95 |
6 | ์ํํธ์จ์ด | 74 |
[๊ฒฐ๊ณผ]
๊ณผ๋ชฉ | ์ต์์ ์ | ์ต๋์ ์ |
๋ฐ์ดํฐ๋ฒ ์ด์ค | 89 | 94 |
- WHERE ์ฌ์ฉ ๊ธ์ง
- SELECT์ ์ ๋ณ์น ์ ์ฌ์ฉํ์ฌ ์์ฑ
- ๋ฐ๋์ GROUP BY์ HAVING์ ์ฌ์ฉ
- ์ง๊ณํจ์๋ฅผ ์ฌ์ฉ
- SQL๋ฌธ ๋ง์ง๋ง ์ธ๋ฏธ์ฝ๋ก (;) ์๋ต ๊ฐ๋ฅ
A)
SELECT ๊ณผ๋ชฉ, MIN(์ ์) AS ์ต์์ ์, MAX(์ ์) AS ์ต๋์ ์ FROM ์ฑ์ GROUP BY ๊ณผ๋ชฉ HAVING AVG(์ ์)>=90 |
[ ์ค์ ์์ - 5 ] 22๋
3ํ ๊ธฐ์ถ
Q) ํ์(STUDNET) ํ
์ด๋ธ์ ์ฌ๋ฃ๊ฐ ํ์์ด 50๋ช
, ์ ๊ธฐ๊ณผ ํ์์ด 100๋ช
, ์ปดํจํฐ๊ณตํ๊ณผ ํ์์ด 50๋ช
์๋ค๊ณ ํ ๋, ์๋ 1~3๋ฒ SQL๋ฌธ ์คํผ ๊ฒฐ๊ณผ๋ก ํ์๋๋ ํํ์ ์ ๊ตฌํ๊ธฐ
1) SELECT DEPT FROM STUDENT;
2) SELECT DISTINCT DEPT FROM STUDENT;
3) SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT='์ฌ๋ฃ๊ณผ';
A)
1. ์ฌ๋ฃ๊ณผ 50๋ช , ์ ๊ธฐ๊ณผ 100๋ช , ์ปดํจํฐ๊ณตํ๊ณผ 40๋ช ์ด ๋์ด๋ ์ ์ฒด ํ์ ํ ์ด๋ธ๋ก ์ ์ฒด ํํ(ํ)์ ๊ฐ์๋ 200 (์ ๋ต)
2. ์์ 1๋ฒ์์ ์คํ๋ ์ ์ฒด ํ์ ํ
์ด๋ธ์์ ์ค๋ณต๋ ํ๊ณผ๋ช
์ ์ ๊ฑฐ
์ด 3๊ฐ์ ํ๊ณผ๋ช
๋ง ํ ํ์ฉ ์ถ๋ ฅ โ ๊ทธ๋ ํ์ ๊ฐ์๋ 3 (์ ๋ต)
3. ํ์ ํ
์ด๋ธ์์ ํ๊ณผ๊ฐ ์ฌ๋ฃ๊ณผ์ธ ํํ๋ง ์ถ๋ ฅ (์ด๋ ํ๊ณผ๊ฐ ์ค๋ณต๋ ํํ์ ์ ๊ฑฐ)
์ต์ข
์ฌ๋ฃ๊ณผ ํ ํ๋ง ์ถ๋ ฅ โ ๊ทธ๋ ํ์ ๊ฐ์๋ 1 (์ ๋ต)
[ ์ค์ ์์ - 6 ] 22๋
3ํ ๊ธฐ์ถ
Q) ๋ค์๊ณผ ๊ฐ์ด ํ
์ด๋ธ์ ์ ์ํ๊ณ ํํ์ ์ฝ์
ํ์ ๋ ์๋ 1, 2๋ฒ SQL๋ฌธ ๊ฒฐ๊ณผ ์์ฑ
CREATE TABLE ๋ถ์ ( ๋ถ์์ฝ๋ INT PRIMARY KEY, ๋ถ์๋ช VARCHAR(20) ); CREATE TABLE ์ง์ ( ์ง์์ฝ๋ INT PRIMARY KEY, ๋ถ์์ฝ๋ INT, ์ง์๋ช VARCHAR(20), FOREIGN KEY(๋ถ์์ฝ๋) REFERENCES ๋ถ์(๋ถ์์ฝ๋) ON DELETE CASCADE ); INSERT INTO ๋ถ์ VALUES(10, '์์ ํ'); INSERT INTO ๋ถ์ VALUES(20, '๊ฐ๋ฐํ'); INSERT INTO ๋ถ์ VALUES(30, '๊ธฐํํ'); INSERT INTO ์ง์ VALUES(1000, 10, '์ค์ง์'); INSERT INTO ์ง์ VALUES(2000, 10, 'ํฉ๋์'); INSERT INTO ์ง์ VALUES(3000, 20, '๊น์ํฌ'); INSERT INTO ์ง์ VALUES(4000, 20, '์ด์ฌ๊ธฐ'); INSERT INTO ์ง์ VALUES(5000, 20, '์ฑ์์'); INSERT INTO ์ง์ VALUES(6000, 30, '๋ฐ์ํฌ'); INSERT INTO ์ง์ VALUES(7000, 30, '๊น์งํ'); |
1)
SELECT DISTINCT COUNT(๋ถ์์ฝ๋) FROM ์ง์ WHERE ๋ถ์์ฝ๋ = 20; |
2)
DELETE FROM ๋ถ์ WHERE ๋ถ์์ฝ๋ = 20; SELECT DISTINCT COUNT(๋ถ์์ฝ๋) FROM ์ง์ |
A)
1)
โถ๏ธ ์ง์ ํ
์ด๋ธ์์ ๋ถ์์ฝ๋๊ฐ 20์ธ ํํ์ ๊ฐ์ = 3 (์ ๋ต)
โ [๋ถ์์ฝ๋] ์์ฒด๊ฐ ์๋ ๋ถ์์ฝ๋์ '๊ฐ์' (=COUNT(๋ถ์์ฝ๋)) ์ด๋ฏ๋ก DISTINCT๋ ์๋ฌด ์ญํ ์ ํ์ง ์์!!(2๋ฒ๋ ๋์ผ)
2)
โถ๏ธ ๋ถ์ ํ
์ด๋ธ์์ ๋ถ์์ฝ๋๊ฐ 20์ธ ํํ ์ญ์
โ ์ง์ ํ
์ด๋ธ ๋ด ๋ถ์์ฝ๋๋ ๋ถ์ ํ
์ด๋ธ ๋ด ๋ถ์์ฝ๋์ ์ธ๋ํค๋ก ์ฐ๊ฒฐ๋์ด ์๊ธฐ์ ์ง์ ํ
์ด๋ธ ๋ด ๋ถ์์ฝ๋๊ฐ 20์ธ ํํ๋ ๊ฐ์ด ์ญ์ (DELETE CASCADE)
โถ๏ธ ์ดํ ์ง์ ํ
์ด๋ธ์์ ๋ถ์์ฝ๋์ ๊ฐ์ = 4 (์ ๋ต)
[ ์ค์ ์์ - 7 ] 22๋
2ํ ๊ธฐ์ถ
Q) ์๋๋ <์ ํ>(์ ํ๋ช
, ๋จ๊ฐ, ์ ์กฐ์ฌ) ํ
์ด๋ธ์ ๋์์ผ๋ก "C" ์ ์กฐ์ฌ์์ ์์ฐํ ์ ํ๋ค์ '๋จ๊ฐ'๋ณด๋ค ๋์ '๋จ๊ฐ'๋ฅผ ๊ฐ์ง ์ ํ์ ์ ๋ณด๋ฅผ ์กฐํํ๋ SQL๋ฌธ์ด๋ค. ์ด๋, ๊ดํธ ( )์์ ์๋ง์ ๋ต์ ๋ฃ์ด SQL๋ฌธ์ ์์ฑํ๋ผ
SELECT ์ ํ๋ช
, ๋จ๊ฐ, ์ ์กฐ์ฌ FROM ์ ํ WHERE ๋จ๊ฐ > ( ) (SELECT ๋จ๊ฐ FROM ์ ํ WHERE ์ ์กฐ์ฌ = "C"); |
A)
โ SELECT ๋จ๊ฐ FROM ์ ํ WHERE ์ ์กฐ์ฌ = "C";
โ ์ ์กฐ์ฌ๊ฐ "C"์ธ ๋จ๊ฐ๋ค์ ์ถ๋ ฅ
โก WHERE ๋จ๊ฐ > ( )
โ ์์ 1๋ฒ์์ ์ถ๋ ฅ๋ C ์ ์กฐ์ฌ์ ๋จ๊ฐ๋ค ๋ณด๋ค '๋ชจ๋' ํฐ ๋จ๊ฐ๋ค์ด ์ถ๋ ฅ๋์ด์ผ ํจ โ ALL (์ ๋ต)
[ ์ค์ ์์ - 8 ] 22๋
2ํ ๊ธฐ์ถ
Q) ๋ค์ <TABLE>์ ์ฐธ์กฐํ์ฌ SQL๋ฌธ์ ์คํํ์ ๋ ์ถ๋ ฅ ๊ฒฐ๊ณผ ๊ตฌํ๊ธฐ (<TABLE> ๋ด 'NULL'์ ๊ฐ์ด ์์์ ์๋ฏธ)
INDEX | COL1 | COL2 |
1 | 2 | NULL |
2 | 5 | 8 |
3 | 3 | 5 |
4 | 7 | 3 |
5 | NULL | 3 |
SELECT COUNT(COL2) FROM TABLE WHERE COL1 IN (2, 3) OR COL2 IN (3,5) |
A)
COL1์ ๊ฐ์ด 2 ๋๋ 3์ด๊ฑฐ๋ COL2์ ๊ฐ์ด 3 ๋๋ 5์ธ ํํ์์ COL2 ๊ฐ๋ง ์ถ๋ ฅ
์ด๋, NULL์ COUNT์ ์ ์ฉ๋์ง ์์ผ๋ฏ๋ก ์ด ๊ฐ์๋ 3 (์ ๋ต)
[ ์ค์ ์์ - 9 ] 22๋
1ํ ๊ธฐ์ถ
Q) ๋ค์ SQL๋ฌธ์ ๋ณด๊ณ SQL๋ฌธ์ Score ๊ฒฐ๊ณผ๊ฐ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ๋๋๋ก ๊ดํธ ์ฑ์ฐ๊ธฐ
[์ฑ์ ] ํ
์ด๋ธ
NAME | SCORE | |
1 | PARK | 95 |
2 | KIM | 90 |
3 | LEE | 65 |
SELECT NAME, SCORE FROM ์ฑ์ ( โ ) BY ( โก ) ( โข ) |
A)
โ ORDER โก SCORE โข DESC
[ ์ค์ ์์ - 10 ] 21๋
3ํ ๊ธฐ์ถ
Q) ๋ค์์ ํ
์ด๋ธ์์ ์กฐ๊ฑด๊ฐ์ ์คํํ ํ๋ฉด์ผ๋ก ์ด์ ๋ํ ์๋ง์ ๊ฒฐ๊ณผ๊ฐ ๊ตฌํ๊ธฐ
SELECT COUNT(*) CNT FROM A CROSS JOIN B WHERE A.NAME LIKE B.RULE |
A)
S% โ S๋ก ์์ํ๋ ๋ชจ๋ ๋ฌธ์
%T% โ T๊ฐ ์กด์ฌํ๋ ๋ชจ๋ ๋ฌธ์
โถ๏ธ Cross Join๋ ์ฐ์ธก ํ ์ด๋ธ์์ B.RULE์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ A.NAME ํ์ ๊ฐ์๋ ์ด 5๊ฐ (๋นจ๊ฐ ๋ฐ์ค) = 5 (์ ๋ต)
* CROSS JOIN: JOINํด์ ๋์ฌ ์ ์๋ ๋ชจ๋ ํ์ ์กฐํฉ
[ ์ค์ ์์ - 11 ] 21๋
2ํ ๊ธฐ์ถ
Q) '์ด'์จ ์ฑ์ ๊ฐ์ง ์ฌ๋์ ์ด๋ฆ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ถ๋ ฅํ๋ SQL๋ฌธ์ ๊ดํธ ์ฑ์ฐ๊ธฐ
SELECT ใปใปใป FROM ใปใปใป WHERE ์ด๋ฆ LIKE ( โ ) ORDER BY ์ด๋ฆ ( โก ) |
A)
โ '์ด%' โก DESC
[ ์ค์ ์์ - 12 ] 21๋
2ํ ๊ธฐ์ถ
Q) ํ์ ํ
์ด๋ธ์ ์ ์๊ฐ 90์ ์ด์์ธ ํ์์ ๊ณผ๋ชฉํ๊ฐ๋ฅผ 'A'๋ก ์์ ํ๋ SQL๋ฌธ ์์ฑ
( โ ) ํ์ ( โก ) ๊ณผ๋ชฉ ํ๊ฐ = 'A' WHERE ์ ์ >= 90 |
A)
โ UPDATE โก SET
[ ์ค์ ์์ - 13 ] 21๋
2ํ ๊ธฐ์ถ
Q) ํ์ ์ ๋ณด์ ํ๊ณผ ์ ๋ณด๋ฅผ ์กฐ์ธํ์ฌ ๊ฒฐ๊ณผ๊ฐ์ ์ถ๋ ฅํ๋ SELECT๋ฌธ ์์ฑ
SELECT * FROM ํ์์ ๋ณด A JOIN ํ๊ณผ์ ๋ณด B ( โ ) A.ํ๊ณผ = B.( โก ) |
A)
โ ON โก ํ๊ณผ
[ ์ค์ ์์ - 14 ] 21๋
1ํ ๊ธฐ์ถ
Q) ๋ค์ <TABLE>์ ์ฐธ์กฐํ์ฌ SQL๋ฌธ์ ์คํํ์ ๋ ์ถ๋ ฅ ๊ฒฐ๊ณผ ๊ตฌํ๊ธฐ
[๊ธ์ฌ] ํ
์ด๋ธ
EMPNO | SAL |
100 | 1000 |
200 | 3000 |
300 | 1500 |
SELECT COUNT(*) FROM ๊ธ์ฌ WHERE EMPNO > 100 AND SAL >= 3000 OR EMPNO = 200; |
A)
EMPNO๊ฐ 100 ์ด๊ณผ์ด๊ณ , SAL์ด 3000 ์ด์์ด๊ฑฐ๋ EMPNO๊ฐ 200์ธ ํ์ ๊ฐ์ = 1 (์ ๋ต)
'Computer Science ๐ > ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ ์ฒ๊ธฐ] ์ํ์ฅ ๋ค์ด๊ฐ๊ธฐ ์ ์ ๋ณผ ๊ฒ ๐ซต (1) | 2024.07.23 |
---|---|
[์ ์ฒ๊ธฐ] ์ ์ฒ๊ธฐ ์ค๊ธฐ ํต์ฌ ํค์๋ (0) | 2024.07.22 |
[์ ์ฒ๊ธฐ] SQL๋ฌธ ํ์ฉ (0) | 2024.07.19 |
[์ ์ฒ๊ธฐ] ๊ธฐํ ์ฉ์ด (1) | 2024.07.18 |
[์ ์ฒ๊ธฐ] ์ ๋ณด ๋ณด์ (0) | 2024.07.18 |