๐Ÿฌ MySQL/๋ฌธ์ œํ’€์ด

[MySQL] SQL ์ฝ”๋”ฉํ…Œ์ŠคํŠธ Day1

xod22 2022. 2. 11. 23:55
728x90

์‹ค๋ฌด์—์„œ SQL์„ ์‚ฌ์šฉํ• ์ผ์ด ๋งŽ์€๋ฐ ์ฃผ๊ธฐ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋‹ˆ ์ž๊พธ ๊นŒ๋จน๊ฒŒ ๋˜๋”๋ผ๊ตฌ์š”

๊ทธ๋ž˜์„œ SQL ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด๋ฉฐ ๊ฐ์„ ์žก์œผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!

 

๋ฌธ์ œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ Level1๋ฌธ์ œ๋ฅผ ๊ฐ€์ ธ์™€ ํ’€์–ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

 

๊ธฐ๋ณธ์ ์ธ SQL๋ฌธ ์ˆœ์„œ

SELECT --์ปฌ๋Ÿผ๋ช…

FROM --ํ…Œ์ด๋ธ”๋ช…

WHERE --ํ…Œ์ด๋ธ” ์กฐ๊ฑด

GROUP BY --์ปฌ๋Ÿผ๋ช…

HAVING --๊ทธ๋ฃน ์กฐ๊ฑด

ORDER BY --์ปฌ๋Ÿผ๋ช…


1. SELECT

https://programmers.co.kr/learn/courses/30/lessons/59034

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ ์กฐํšŒํ•˜๊ธฐ

ANIMAL_INS ํ…Œ์ด๋ธ”์€ ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋™๋ฌผ์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ANIMAL_INS ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE๋Š” ๊ฐ๊ฐ ๋™๋ฌผ์˜ ์•„์ด๋””

programmers.co.kr

 

๋ฌธ์ œ1
ANIMAL_INS ํ…Œ์ด๋ธ”์€ ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋™๋ฌผ์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ANIMAL_INS ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE๋Š” ๊ฐ๊ฐ ๋™๋ฌผ์˜ ์•„์ด๋””, ์ƒ๋ฌผ ์ข…, ๋ณดํ˜ธ ์‹œ์ž‘์ผ, ๋ณดํ˜ธ ์‹œ์ž‘ ์‹œ ์ƒํƒœ, ์ด๋ฆ„, ์„ฑ๋ณ„ ๋ฐ ์ค‘์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

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

 

๋ฌธ์ œ1 ํ’€์ด
SELECT *
FROM ANIMAL_INS
ORDER BY ANIMAL_ID

๋ฌธ์ œ2
๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋ชจ๋“  ๋™๋ฌผ์˜ ์ด๋ฆ„(NAME)๊ณผ ๋ณดํ˜ธ ์‹œ์ž‘์ผ(DATETIME)์„ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ๊ฒฐ๊ณผ๋Š” ANIMAL_ID ์—ญ์ˆœ์œผ๋กœ ๋ณด์—ฌ์ฃผ์„ธ์š”. 

 

๋ฌธ์ œ2 ํ’€์ด

์—ญ์ˆœ : DESC(๋‚ด๋ฆผ์ฐจ์ˆœ)

๋””ํดํŠธ๊ฐ’์ด ASC(์˜ค๋ฆ„์ฐจ์ˆœ)

SELECT NAME, DATETIME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC;

๋ฌธ์ œ3
๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋™๋ฌผ ์ค‘ ์•„ํ”ˆ ๋™๋ฌผ์˜ ์•„์ด๋””(ANIMAL_ID)์™€ ์ด๋ฆ„(NAME)์„ ์กฐํšŒํ•˜๋Š” SQL ๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ๊ฒฐ๊ณผ๋Š” ์•„์ด๋”” ์ˆœ์œผ๋กœ ์กฐํšŒํ•ด์ฃผ์„ธ์š”.

 

๋ฌธ์ œ3 ํ’€์ด

=> INTAKE_CONDITION์ด Sick์ธ ๋™๋ฌผ

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION = "Sick"
ORDER BY ANIMAL_ID;

* MySQL์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์ด ์—†์–ด SICK๋กœ ๊ฒ€์ƒ‰ํ•ด๋„ ๋จ!


๋ฌธ์ œ4
๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋™๋ฌผ ์ค‘ ์ Š์€ ๋™๋ฌผ์˜ ์•„์ด๋””(ANIMAL_ID)์™€ ์ด๋ฆ„(NAME)์„ ์กฐํšŒํ•˜๋Š” SQL ๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ๊ฒฐ๊ณผ๋Š” ์•„์ด๋””(ANIMAL_ID) ์ˆœ์œผ๋กœ ์กฐํšŒํ•ด์ฃผ์„ธ์š”.

 

๋ฌธ์ œ4 ํ’€์ด

=> ์ Š์€ ๋™๋ฌผ์ด๋ž€ INTAKE_CONDITION์ด Aged๊ฐ€ ์•„๋‹Œ ๋™๋ฌผ!

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION <> "Aged"
ORDER BY ANIMAL_ID;

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

 

<๋ฌธ์ œ5 ํ’€์ด>

SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY NAME ASC, DATETIME DESC;

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

 

๋ฌธ์ œ6 ํ’€์ด

=> ๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด์˜จ ๋™๋ฌผ ํ•œ๋ช… : LIMIT 1

=> MySQL์—์„œ๋Š” LIMIT,  MSSQL์—์„œ๋Š” TOP์„ ์‚ฌ์šฉ

SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1;

์ €๋Š” MSSQL๋งŒ ์‚ฌ์šฉํ•ด๋ณด์•˜๋Š”๋ฐ MySQL๋„ ๊ฑฐ์˜ ๋™์ผํ•ด์„œ ๋ฌธ์ œํ’€๊ธฐ ์ˆ˜์›”ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์•„์š”!

 

๊ณ ๋Ÿผ ์˜ค๋Š˜ ํฌ์ŠคํŒ… ๋~_~

728x90