๐Ÿ” Archive/์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต

[MySQL] ๋‹ค์‹œ ์ฒดํฌํ•  SQL ๊ตฌ๋ฌธ! (ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค MySQL level1, 2)

YoungRock 2020. 10. 30. 22:09

์ง„์งœ์ง„์งœ ์™„์ „ ์˜ค๋žœ๋งŒ์— ์“ฐ๋Š” ํ‹ฐ์Šคํ† ๋ฆฌ ๋ธ”๋กœ๊ทธ

์•ž์œผ๋กœ ๊ฐœ๋ฐœ๋ธ”๋กœ๊ทธ๋กœ ์“ธ๊ฒƒ์ด๋‹ค!!

์ง€๊ธˆ์€ ๋‚ด์ผ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ฒจ์šธ์ธํ„ด ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ฝ”ํ…Œ ์—ฐ์Šต์„ ํ•ด๋ณด๋ ค๊ณ ํ•œ๋‹ค!

(ํž˜..ํž˜๋‚ด์ž)


[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต๋ฌธ์ œ::MySQL (level 1,2)


1. order by ์‚ฌ์šฉ๋ฒ•

SELECT * FROM Customers ORDER BY Country DESC;	--๋‚ด๋ฆผ์ฐจ์ˆœ
SELECT * FROM Customers ORDER BY Country ASC;	--์˜ค๋ฆ„์ฐจ์ˆœ (default)

where๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ where ๋จผ์ €

2. MIN, MAX ๋‚ ์งœ์— ์ ์šฉ ์‹œ

SELECT MAX(DATETIME) FROM ANIMAL_INS; --์ตœ์‹ 
SELECT MIN(DATETIME) FROM ANIMAL_INS; --์˜ค๋ž˜๋œ ๊ฒƒ (ex) ๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด์˜จ ๋™๋ฌผ)

 MAX๊ฐ€ ์ตœ๊ทผ๊บผ~! ๊ทธ๋ž˜์„œ ๋‚˜์˜จ ๊ฒฐ๊ณผ๋Š”?  2018-02-03 10:40:00

๊ทธ๋ ‡๋‹ค๋ฉด ๊ฐ€์žฅ ์ตœ๊ทผ์˜ ๋ฐ์ดํ„ฐ์ธ ๋ชจ๋“  row๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?!

stack overflow๊ฐ€ ๊ทธ๋žฌ๋‹ค. Use a subselect

SELECT *  FROM ANIMAL_INS  WHERE DATETIME=(
    SELECT max(DATETIME) FROM ANIMAL_INS
) -- 5๋ฒˆ์—์„œ ์„ค๋ช…ํ•œ limit๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค!

์ด๋ ‡๊ฒŒ ๊ฐ€์ ธ์˜จ max๊ฐ’์„ where ๋ฌธ์˜ datetime์˜ ๊ฐ’์œผ๋กœ ์ฃผ๋ฉด ๋จ!!

๊ตฌ์šฐ์šฐ์šฐ์šท!ใ…Žใ…Ž

3. ์ค‘๋ณต์ œ๊ฑฐํ•˜๊ธฐ(distinct, group by)

๋ฌธ์ œ) ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋™๋ฌผ์˜ ์ด๋ฆ„์€ ๋ช‡ ๊ฐœ์ธ์ง€ ์กฐํšŒํ•˜๋Š” SQL ๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ์ด๋ฆ„์ด NULL์ธ ๊ฒฝ์šฐ๋Š” ์ง‘๊ณ„ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ค‘๋ณต๋˜๋Š” ์ด๋ฆ„์€ ํ•˜๋‚˜๋กœ ์นฉ๋‹ˆ๋‹ค.

์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

(1)  distinct ํ‚ค์›Œ๋“œ

 (temp tablespace์— ์ž„์‹œ๋กœ ์ €์žฅํ•˜๊ณ  ์ž‘์—…ํ•˜๋Š” ๋ฐฉ์‹์ด๋ผ ์‹œ์Šคํ…œ์— ๋ถ€ํ•˜๋ฅผ ์ค„ ์ˆ˜ ์žˆ์Œ)

SELECT distinct name FROM ANIMAL_INS --๊ฒฐ๊ณผ: ์ค‘๋ณต์•ˆ๋˜๊ฒŒ ์ด๋ฆ„๋“ค์ด ์ซ™ ๋‚˜์˜ด

๋ฌธ์ œ์—์„œ๋Š” ๊ฒฐ๊ณผ๋กœ ๋ ˆ์ฝ”๋“œ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ง‘๊ณ„ํ•จ์ˆ˜ count๋กœ distinct๋ฅผ ๊ฐ์‹ธ์ค€๋‹ค.

SELECT count(distinct name) FROM ANIMAL_INS 

๊ตณ!!

(2)  group by ์ ˆ

(select์ ˆ์˜ ์ปฌ๋Ÿผ์„ group by์ ˆ์—๋„ ๋™์ผํ•˜๊ฒŒ ๋ช…์‹œ๋ฅผ ํ•ด์•ผํ•˜๋Š” ๋ถ€๋‹ด๊ฐ์ด ์žˆ์ง€๋งŒ distinct์— ๋น„ํ•˜์—ฌ ์กฐ๊ธˆ ๋น ๋ฅธ๊ฐ์ด ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค)

SELECT name FROM ANIMAL_INS group by name
-- ์—ฌ๊ธฐ๊นŒ์ง€๋Š” ๊ฒฐ๊ณผ๋กœ ์ค‘๋ณต์ด ์ œ๊ฑฐ๋œ ์ด๋ฆ„ ๋ชฉ๋ก์ด ์ญ‰ ๋‚˜์˜จ๋‹ค (select distinct name... ํ–ˆ์„ ๋•Œ์™€ ๊ฐ™์Œ)

ํ•˜์ง€๋งŒ count๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด group by๋กœ ๋ฌถ์€ ๊ฐ๊ฐ์˜ ์ด๋ฆ„ ๊ฐœ์ˆ˜๋“ค์ด ๋‚˜์˜ด

์ด๊ฒŒ ์•„๋‹Œ๋ฐ..

๊ฒฐ๋ก !! count ์ง‘๊ณ„ํ•จ์ˆ˜ ์‚ฌ์šฉ์‹œ, group by๋Š” ๊ฐ๊ฐ์˜ ๊ฒน์น˜๋Š” ๊ฐœ์ˆ˜๋ฅผ, distinct๋Š” ๊ฒน์น˜์ง€ ์•Š๋Š” ๊ฐ’๋“ค ์ „์ฒด์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋ฐ”๋กœ ๋‹ค์Œ๋ฌธ์ œ๊ฐ€ ๋ฐ”๋กœ group by์— count๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ์˜€๋‹ค

๋ฌธ์ œ: ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋™๋ฌผ ์ค‘ ๊ณ ์–‘์ด์™€ ๊ฐœ๊ฐ€ ๊ฐ๊ฐ ๋ช‡ ๋งˆ๋ฆฌ์ธ์ง€ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š” 

SELECT ANIMAL_TYPE, count(*) FROM ANIMAL_INS  group by ANIMAL_TYPE order by ANIMAL_TYPE

4. order by ๋ณต์ˆ˜ ์ •๋ ฌ์กฐ๊ฑด

๋ฌธ์ œ) ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋ชจ๋“  ๋™๋ฌผ์˜ ์•„์ด๋””์™€ ์ด๋ฆ„, ๋ณดํ˜ธ ์‹œ์ž‘์ผ์„ ์ด๋ฆ„ ์ˆœ์œผ๋กœ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ๋‹จ, ์ด๋ฆ„์ด ๊ฐ™์€ ๋™๋ฌผ ์ค‘์—์„œ๋Š” ๋ณดํ˜ธ๋ฅผ ๋‚˜์ค‘์— ์‹œ์ž‘ํ•œ ๋™๋ฌผ์„ ๋จผ์ € ๋ณด์—ฌ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

1. ์ด๋ฆ„ ์ˆœ(์˜ค๋ฆ„์ฐจ์ˆœ) 2. ์‹œ๊ฐ„ ์ˆœ(๋‚ด๋ฆผ์ฐจ์ˆœ) ์œผ๋กœ ์ •๋ ฌ์„ ํ•ด์•ผํ•œ๋‹ค.

SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS order by NAME asc, DATETIME desc

์ฝค๋งˆ(,)๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ •๋ ฌ ์กฐ๊ฑด์„ ๋‘ ๊ฐœ ์ด์ƒ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

5. ์ƒ์œ„ n๊ฐœ ๋ ˆ์ฝ”๋“œ๋งŒ ๋ณด์—ฌ์ฃผ๊ธฐ: limit

๋ฌธ์ œ) ๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด์˜จ ๋™๋ฌผ๋“ค์˜ ์ด๋ฆ„ ๋ณด์—ฌ์ฃผ๊ธฐ

๊ฐ€์žฅ๋จผ์ €์ด๋‹ˆ๊นŒ (ํ•œ๊ฐœ๋งŒ๋ณด์—ฌ์ค„๋•Œ) ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค

-- 1. limit
SELECT NAME FROM ANIMAL_INS order by DATETIME LIMIT 1;	--limit n์œผ๋กœ ์‚ฌ์šฉ -> ์ƒ์œ„ n๊ฐœ ์ถœ๋ ฅ
-- 2. subselect
SELECT NAME FROM ANIMAL_INS  WHERE DATETIME=(
    SELECT min(DATETIME) FROM ANIMAL_INS
)

 

6. where์ ˆ์—์„œ ์ด๋ฆ„์ด null์ธ ๋ ˆ์ฝ”๋“œ ์ฐพ๊ธฐ

SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME is NULL

๋ฐ˜๋Œ€๋กœ null์ด ์•„๋‹Œ ๊ฒƒ๋“ค๋งŒ ์ถœ๋ ฅํ•˜๋ ค๋ฉด

SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME is not NULL

7. null ์ดˆ๊ธฐ๊ฐ’ ์„ค์ •

... ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ๋“ค์€ NULL์ด๋ผ๋Š” ๊ธฐํ˜ธ๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฆ„์ด ์—†๋Š” ๋™๋ฌผ์˜ ์ด๋ฆ„์€ No name์œผ๋กœ ํ‘œ์‹œํ•ด ์ฃผ์„ธ์š”.

SELECT ANIMAL_TYPE, IFNULL(NAME, "No name"), SEX_UPON_INTAKE FROM ANIMAL_INS order by ANIMAL_ID

IFNULL(์†์„ฑํ•„๋“œ, null์ผ๋•Œ ๋Œ€์ฒดํ•  ๊ฐ’) : null์ด ์•„๋‹ˆ๋ฉด ์ฒซ๋ฒˆ์งธ ์ธ์ž ๋ฆฌํ„ด, null์ด๋ฉด ๋‘๋ฒˆ์งธ ์ธ์ž ๋ฆฌํ„ด

8. having

๋ฌธ์ œ) ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋™๋ฌผ ์ด๋ฆ„ ์ค‘ ๋‘ ๋ฒˆ ์ด์ƒ ์“ฐ์ธ ์ด๋ฆ„๊ณผ ํ•ด๋‹น ์ด๋ฆ„์ด ์“ฐ์ธ ํšŸ์ˆ˜๋ฅผ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ๊ฒฐ๊ณผ๋Š” ์ด๋ฆ„์ด ์—†๋Š” ๋™๋ฌผ์€ ์ง‘๊ณ„์—์„œ ์ œ์™ธ(where name is not null ์ถ”๊ฐ€)ํ•˜๋ฉฐ, ๊ฒฐ๊ณผ๋Š” ์ด๋ฆ„ ์ˆœ์œผ๋กœ ์กฐํšŒํ•ด์ฃผ์„ธ์š”.

SELECT name, count(*) from ANIMAL_INS group by name  having count(name) > 1 order by name

๋‘๋ฒˆ์ด์ƒ์ธ๋ฐ having์— >2 ์ด๋Ÿฌ๊ณ  ์žˆ์–ด์„œ ํ‹€๋ ธ๋‹ค;;

9. ์ž…์–‘์‹œ๊ฐ ๊ตฌํ•˜๊ธฐ

๋ฌธ์ œ) 09:00๋ถ€ํ„ฐ 19:59๊นŒ์ง€, ๊ฐ ์‹œ๊ฐ„๋Œ€๋ณ„๋กœ ์ž…์–‘์ด ๋ช‡ ๊ฑด์ด๋‚˜ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์กฐํšŒ, ๊ฒฐ๊ณผ๋Š” ์‹œ๊ฐ„๋Œ€ ์ˆœ์œผ๋กœ ์ •๋ ฌ

SELECT HOUR(DATETIME) AS HOUR, COUNT(HOUR(datetime)) AS COUNT FROM ANIMAL_OUTS
GROUP BY HOUR(DATETIME)
HAVING HOUR >= 9 AND HOUR <= 19
ORDER BY HOUR

having ์ ˆ์„ ์•ˆ์จ์„œ ํ‹€๋ ธ๋‹ค..

SELECT 
    HOUR(@dt),
    MINUTE(@dt),
    SECOND(@dt),
    DAY(@dt),
    WEEK(@dt),
    MONTH(@dt),
    QUARTER(@dt),
    YEAR(@dt);

datetime์€ ์ด๋ ‡๊ฒŒ ์‹œ, ๋ถ„, ์ดˆ, ์ผ, ์ฃผ, ๋‹ฌ ๋“ฑ๋“ฑ ๋งŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜์žˆ๋‹ค. date()๋กœ ๋‚ ์งœ๋งŒ, time()์œผ๋กœ ์‹œ๊ฐ„๋งŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜๋„ ์žˆ์Œ

(์ž…์–‘์‹œ๊ฐ๊ตฌํ•˜๊ธฐ(2)๋Š” ์–ด๋ ค์›Œ์„œ ๋‹ค์Œ์— ๋‹ค์‹œ!)

10. WHERE IN ์‚ฌ์šฉํ•˜๊ธฐ

IN์€ ๋ฆฌ์ŠคํŠธ๋‚˜ ์„œ๋ธŒ์ฟผ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ๊ฐ’๊ณผ ๋งค์นญํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS 
WHERE NAME = "Lucy" OR NAME = "Ella" OR NAME = "Pickle" 
OR NAME = "Rogan" OR NAME = "Sabrina" OR NAME = "Mitty"
-- ์ค‘์ฒฉ OR๋ฅผ WHERE IN ์‚ฌ์šฉํ•˜๋ฉด ํ›จ์”ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Œ
 SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME IN('Lucy','Ella','Pickle','Rogan','Sabrina','Mitty');

11. ๋ถ€๋ถ„๋ฌธ์ž์—ด ํฌํ•จ ์—ฌ๋ถ€ ์•Œ๊ธฐ

๋ฌธ์ œ) ๋ณดํ˜ธ์†Œ์— ๋Œ์•„๊ฐ€์‹  ํ• ๋จธ๋‹ˆ๊ฐ€ ๊ธฐ๋ฅด๋˜ ๊ฐœ๋ฅผ ์ฐพ๋Š” ์‚ฌ๋žŒ์ด ์ฐพ์•„์™”์Šต๋‹ˆ๋‹ค. ์ด ์‚ฌ๋žŒ์ด ๋งํ•˜๊ธธ ํ• ๋จธ๋‹ˆ๊ฐ€ ๊ธฐ๋ฅด๋˜ ๊ฐœ๋Š” ์ด๋ฆ„์— 'el'์ด ๋“ค์–ด๊ฐ„๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋™๋ฌผ ์ด๋ฆ„ ์ค‘, ์ด๋ฆ„์— EL์ด ๋“ค์–ด๊ฐ€๋Š” ๊ฐœ์˜ ์•„์ด๋””์™€ ์ด๋ฆ„์„ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ๊ฒฐ๊ณผ๋Š” ์ด๋ฆ„ ์ˆœ์œผ๋กœ ์กฐํšŒํ•ด์ฃผ์„ธ์š”. ๋‹จ, ์ด๋ฆ„์˜ ๋Œ€์†Œ๋ฌธ์ž๋Š” ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

-- locate ์‚ฌ์šฉ
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS
WHERE LOCATE("el", NAME) > 0 and ANIMAL_TYPE = "Dog"
order by name
-- like ์‚ฌ์šฉ
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS 
WHERE NAME LIKE '%EL%' AND ANIMAL_TYPE LIKE 'Dog'
ORDER BY NAME

๊ฒฐ๊ณผ

๊ฐœ๋ฅผ ์ฐพ๊ณ  ์žˆ๋Š”๋ฐ animal_type์œผ๋กœ dog๋ฅผ ํ•„ํ„ฐ๋ง ์•ˆํ•ด์ค˜์„œ ํ‹€๋ ธ๋‹ค.

12. DATE_FORMAT

SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, "%Y-%m-%d") as ๋‚ ์งœ
FROM ANIMAL_INS order by ANIMAL_ID

%y (์†Œ๋ฌธ์ž)๋กœ ํ•˜๋ฉด ์—ฐ๋„์˜ ๋’ท ๋‘์ž๋ฆฌ๋งŒ ๋‚˜์˜ด(ex) 2018 -> 18) (๋Œ€๋ฌธ์ž -> 2018)

13. case ์‚ฌ์šฉ

๋ฌธ์ œ) ๋ณดํ˜ธ์†Œ์˜ ๋™๋ฌผ์ด ์ค‘์„ฑํ™”๋˜์—ˆ๋Š”์ง€ ์•„๋‹Œ์ง€ ํŒŒ์•…ํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ค‘์„ฑํ™”๋œ ๋™๋ฌผ์€ SEX_UPON_INTAKE ์ปฌ๋Ÿผ์— 'Neutered' ๋˜๋Š” 'Spayed'๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋“ค์–ด์žˆ์Šต๋‹ˆ๋‹ค. ๋™๋ฌผ์˜ ์•„์ด๋””์™€ ์ด๋ฆ„, ์ค‘์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ์•„์ด๋”” ์ˆœ์œผ๋กœ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ์ค‘์„ฑํ™”๊ฐ€ ๋˜์–ด์žˆ๋‹ค๋ฉด 'O', ์•„๋‹ˆ๋ผ๋ฉด 'X'๋ผ๊ณ  ํ‘œ์‹œํ•ด์ฃผ์„ธ์š”.

case ์‚ฌ์šฉ๋ฒ•:

CASE
	WHEN ์กฐ๊ฑด
	THEN '๋ฐ˜ํ™˜ ๊ฐ’'
	WHEN ์กฐ๊ฑด
	THEN '๋ฐ˜ํ™˜ ๊ฐ’'
	ELSE 'WHEN ์กฐ๊ฑด์— ํ•ด๋‹น ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ ๋ฐ˜ํ™˜ ๊ฐ’'
END

๋‹ต)

-- ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”
SELECT
    ANIMAL_ID,
    NAME,    
    case
        when (SEX_UPON_INTAKE Like'%Neutered%') OR (SEX_UPON_INTAKE Like'%Spayed%') then 'O'
        else 'X' --else๋ฅผ ์ง€์ •ํ•ด ์ฃผ์ง€ ์•Š์€ ๊ฒฝ์šฐ null ๋ฐ˜ํ™˜
    end as '์ค‘์„ฑํ™”'
FROM ANIMAL_INS

ํ›„ ์ง„์งœ ์˜ค๋žœ๋งŒ์— ํ‘ธ๋‹ˆ๊นŒ ๋„ˆ๋ฌด ์–ด๋ ต๊ณ ,

sql์— ๋‚ด๊ฐ€ ๋ชจ๋ฅด๋Š” ๋ฌธ๋ฒ•๋“ค์ด ์ •๋ง ๋งŽ์€ ๊ฒƒ ๊ฐ™๋‹ค

์™ธ์ฃผํ•  ๋•Œ ๋„ˆ๋ฌด ๋น„ํšจ์œจ์ ์œผ๋กœ ์ฟผ๋ฆฌ๋ฌธ์„ ๊ตฌ์„ฑํ•œ๊ฒƒ ๊ฐ™๋‹ค..

sql๋„ ๋” ๋งŽ์ด ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค

level 1, level 2 ๋‹คํ’€์—ˆ๋‹ค! ์ด์ œ 3,4๋„ ํ’€์–ด์•ผ์ง€