SQL ๊ธฐ์ดˆ ๋ฌธ๋ฒ•

jojaljaejalยท2024๋…„ 8์›” 20์ผ

DataBase

๋ชฉ๋ก ๋ณด๊ธฐ
1/1

๐Ÿ“Œ SQL ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ๋ฐ ๋‹จ์–ด์ •๋ฆฌ


SELECT ์—ด_์ด๋ฆ„

FROM ํ…Œ์ด๋ธ”_์ด๋ฆ„

WHERE ์กฐ๊ฑด์‹

GROUP BY ์—ด_์ด๋ฆ„

HAVING ์กฐ๊ฑด์‹

ORDER BY ์—ด_์ด๋ฆ„

LIMIT ์ˆซ์ž


โš™ ์—ฐ์‚ฐ์ž ์ข…๋ฅ˜

1. ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž

> , < , >= , <= , =


2. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž


AND : ๋‘ ์กฐ๊ฑด์ด ๋ชจ๋‘ ๋งŒ์กฑํ•˜๋ฉด ์กฐํšŒ

SELECT mem_name,height, mem_number
FROM member
WHERE height >= 165 AND mem_number > 6;


OR : ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๋งŒ์กฑํ•˜๋ฉด ์กฐํšŒ

SELECT mem_name,height, mem_number
FROM member
WHERE height >= 165 OR mem_number > 6;


BETWEEN ~AND : ๋ฒ”์œ„ ~ ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ด์šฉ

SELECT mem_name,height, mem_number
FROM member
WHERE height BETWEEN 163 AND 165;


IN : in๋‚ด์— ๋“ค์–ด์žˆ๋Š” ๊ฒƒ๋“ค ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์กด์žฌํ•˜๋ฉด ์กฐํšŒ.

SELECT mem_name, addr
FROM member
WHERE addr IN ('๊ฒฝ๊ธฐ', '์ „๋‚จ', '๊ฒฝ๋‚จ');


LIKE : ์„œ์šธ%, %๋ฏผ๊ตญ ์™€ ๊ฐ™์ด %์„ ๊ธฐ์ค€์œผ๋กœ ์•ž ๋˜๋Š” ๋’ค์— ์˜ค๋Š” ๋ฌธ์ž์—ด์„ ์กฐํšŒ

SELECT *
FROM member
WHERE mem_name LIKE '์šฐ%';


_ : ๊ธ€์ž์™€ ๋งค์น˜ํ•˜๋Š” ์ž๋ฃŒ๋ฅผ ์กฐํšŒ

SELECT *
FROM member
WHERE mem_name LIKE '__ํ•‘ํฌ';


3. ๊ฒฐ๊ณผ๋ฅผ ์ •๋ ฌํ•˜๋Š” : ORDER BY

SELECT mem_id, mem_name, debut_date
FROM member
ORDER BY debut_date;

debut_date(๋ฐ๋ท” ์ผ์ž)๋ฅผ ๋Šฆ์€ ์ˆœ์„œ๋Œ€๋กœ ํ•˜๋ ค๋ฉด DESC(Descending)์„ ๋ถ™์ด๋ฉด ๋จ.


์˜ค๋ฆ„์ฐจ์ˆœ ASC(Ascending) ๋‚ด๋ฆผ์ฐจ์ˆœDESC(Descending)

SELECT mem_id, mem_name, debut_date
FROM member
ORDER BY debut_date DESC, mem_id ASC ;

์ฝ”๋“œ ๋ถ„์„ : debut_date ๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ , mem_id ๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ.


4. ์ถœ๋ ฅ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ œํ•œํ•˜๋Š” LIMIT

<span style="color: #FF0000">`SELECT`</span> mem_name, height

FROM member
ORDER BY height DESC LIMIT 3, 2 ;

์ฝ”๋“œ ๋ถ„์„ : height๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ฆ‰, ํฐ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋˜ 3๋ฒˆ์งธ๋ถ€ํ„ฐ 2๊ฑด๋งŒ ์กฐํšŒ.


5. ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋Š” DISTINCT
SELECT DISTINCT addr
FROM member

์ฝ”๋“œ ๋ถ„์„ : addr ์—ด์˜ ์กฐํšŒ๋˜๋Š” ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์ œ๊ฑฐ.


6. ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๋Š” GROUP BY (์ง‘๊ณ„ํ•จ์ˆ˜์™€ ์ฃผ๋กœ ์‚ฌ์šฉ)

SUM() : ํ•ฉ๊ณ„๋ฅผ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
AVG() : ํ‰๊ท ์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
MIN(): ์ตœ์†Œ๊ฐ’์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
MAX() : ์ตœ๋Œ€๊ฐ’์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
COUNT(): ํ–‰์˜ ๊ฐœ์ˆ˜๋ฅผ ์…‰๋‹ˆ๋‹ค.
COUNT(DISTINCT):ํ–‰์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋ฉฐ ์ค‘๋ณต์€ 1๊ฐœ๋งŒ ์ธ์ •๋ฉ๋‹ˆ๋‹ค.

SELECT member_id SUM()
FROM buy GROUP BY member;

SELECT member_id "ํšŒ์› ์•„์ด๋””", SUM(price * amoount) "์ด๊ตฌ๋งค์•ก"
FROM buy GROUP BY mem_id;


7. WHERE์ ˆ ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋Š” GROUP BY ์˜ ์นœ๊ตฌ HAVING
(HAVING ์ ˆ์€ ๊ผญ GROUP BY ์ ˆ ๋‹ค์Œ์— ๋‚˜์™€์•ผํ•œ๋‹ค.)
์ง‘๊ณ„ ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ ์กฐ๊ฑด์„ ์ œํ•œํ•˜๋Š” ๊ฒƒ.

SELECT member_id "ํšŒ์› ์•„์ด๋””", SUM(price * amoount) "์ด๊ตฌ๋งค์•ก"
FROM buy GROUP BY mem_id;
HAVING SUM(price * amoount) > 10

์ง€๊ธˆ๊นŒ์ง€ ๋‹ค๋ฃฌ ๋‚ด์šฉ์€ ์ฟผ๋ฆฌ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” SELECT ๋ฌธ์˜ ๋ฌธ๋ฒ•์ด๊ณ 
๊ณ ๊ธ‰ ๋ฌธ๋ฒ•์ด๋‚˜ ํ•จ์ˆ˜ ๋“ฑ ์—ฌ๋Ÿฌ ํ™œ์šฉ ๋ฐฉ์•ˆ์ด ๋งŽ๋‹ค.

์ฐธ๊ณ ํ•˜๊ธฐ ์ข‹์€ ์‚ฌ์ดํŠธ

https://suy379.tistory.com/107 - ํ•จ์ˆ˜์ •๋ฆฌ
https://suy379.tistory.com/106 - ์„œ๋ธŒ์ฟผ๋ฆฌ ์‚ฌ์šฉ๋ฒ•
https://mangkyu.tistory.com/25#google_vignette - ํ•จ์ˆ˜ ๋ฐ ๊ณ ๊ธ‰๋ฌธ๋ฒ•

profile
Ader_Error

0๊ฐœ์˜ ๋Œ“๊ธ€