๊ด€๋ฆฌ ๋ฉ”๋‰ด

bom's happy life

SELECT๋ฌธ์˜ ํ˜•์‹๊ณผ ์‚ฌ์šฉ๋ฒ• ๋ณธ๋ฌธ

Deveolpment Study๐Ÿ—‚๏ธ/Databases

SELECT๋ฌธ์˜ ํ˜•์‹๊ณผ ์‚ฌ์šฉ๋ฒ•

bompeach 2023. 2. 22. 11:55

์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์ฃผ๋Š” ๊ธฐ๋ณธ์ ์ธ 

<SELECT...FROM>

 

.

.

 

SELECT ์—ด์ด๋ฆ„
FROM ํ…Œ์ด๋ธ”์ด๋ฆ„
WHERE ์กฐ๊ฑด

--SELECT ๊ตฌ๋ฌธ ํ˜•์‹

 

.

.

 

USE ๊ตฌ๋ฌธ(db์„ ํƒ)

-์‚ฌ์šฉํ•  DB๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ตฌ๋ฌธ

-๋‹ค๋ฅธ DB๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฐ™์€ DB์‚ฌ์šฉ

-HeidiSQL์—์„œ๋Š” ํด๋ฆญ์œผ๋กœ ํ•ด๊ฒฐ!

USE ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฆ„;

 

.

.

 

SELECT์™€ FROM ์‚ฌ์šฉ

- FROM ๋’ค์— ์˜ค๋Š” DB์ด๋ฆ„.ํ…Œ์ด๋ธ” ์ด๋ฆ„

 

- ๋ณดํ†ต USE DB๋ฅผ ๋จผ์ € ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์•„๋ž˜์˜ ๋‘ ๊ตฌ๋ฌธ์€ ๊ฐ™์Œ

 

.

.

 

ํ•ด๋‹น ํ…Œ์ด๋ธ”์—์„œ ์›ํ•˜๋Š” ์—ด ๊ฐ€์ ธ์˜ค๊ธฐ

-์—ฌ๋Ÿฌ ๊ฐœ์˜ ์—ด์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ๋Š” ์ฝค๋งˆ๋กœ ๊ตฌ๋ถ„

-์ˆœ์„œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๋Œ€๋กœ ์ง€์ •

SELECT memberName, memberID, memberAddress FROM memberTBL;

.

.

 

๋ณ„์นญ AS

-์—ด ์ด๋ฆ„์„ ๋‹ค๋ฅด๊ฒŒ ๋ณผ์ˆ˜ ์žˆ์–ด ๊ฐ€๋…์„ฑ์ด ์ข‹์Œ

-์ค‘๊ฐ„์— ๊ณต๋ฐฑ์ด ์žˆ๋‹ค๋ฉด ์ด๋ฆ„ ์ „์ฒด์— ' ' ์‚ฌ์šฉ

-๋ณต์žกํ•œ ์—ด ์ด๋ฆ„ ๋Œ€์‹  ํ•œ๊ธ€๋กœ ์ •๋ฆฌ๊ฐ€๋Šฅํ•จ

SELET memberID AS '์•„์ด๋””', memberAddress AS '์ฃผ์†Œ' FROM memberTBL;

 

.

.

 

ํŠน์ •ํ•œ ์กฐ๊ฑด์˜ ๋ฐ์ดํ„ฐ๋งŒ ์กฐํšŒํ•˜๋Š”

<SELECT...FROM...WHERE>

 

.

.

 

SELECT ํ•„๋“œ์ด๋ฆ„ FROM ํ…Œ์ด๋ธ”์ด๋ฆ„ WHERE ์กฐ๊ฑด์‹;

ex) SELECT * FROM userTBL WHERE userName = '๊ฐ•ํ˜ธ๋™';
-- * ๋Š” ๋ชจ๋“ ํ•„๋“œ๋ฅผ ์˜๋ฏธํ•จ

ํŠน์ •ํ•œ ์กฐ๊ฑด์˜ ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ ธ์˜ด

 

.

.

 

์›ํ•˜๋Š” ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•˜์—ฌ ์ถœ๋ ฅ : ORDER BY

-๊ฒฐ๊ณผ๋ฌธ์— ๋Œ€ํ•ด ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€๋Š” ์•Š์Œ

-๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ์ˆœ์„œ ์กฐ์ ˆํ•˜๋Š” ๊ตฌ๋ฌธ

-๊ธฐ๋ณธ์ ์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ฆฌ

-๋‚ด๋ฆผ์ฐจ์ˆœ์€ ์—ด ์ด๋ฆ„ ๋’ค์— DESC๋ผ ์ ์–ด์ค„ ๊ฒƒ

-ORDER BY์ ˆ์€ SELECT, FROM, WHERE, GROUP BY,HAVING, ORDER BY ์ค‘์—์„œ ์ œ์ผ ๋’ค์—

 

.

.

 

์ค‘๋ณต๋œ ๊ฒƒ์€ ํ•˜๋‚˜๋งŒ ๋‚จ๊ธฐ๋Š” DISTINCT

SELECT DISTINCT addr FROM userTBL;

--DISTINCT๋Š” ์ค‘๋ณต์ตœ์†Œํ™”, addr๋Š” ๊ฒ€์ƒ‰๋œ ํ•„๋“œ

 

 

.

.

 

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

ex) 30๋งŒ๋ช… ๊ฐ€์šด๋ฐ ์ž…์‚ฌ์ž…์ด ์˜ค๋ž˜๋œ ๋‹ค์„ฏ ๋ช… ์ถœ๋ ฅ

 

-ORDER BY ๋Š” 30๋งŒ ๊ฑด ๋ชจ๋‘๋ฅผ ๊ฒ€์ƒ‰

-ORDER BY ์ƒ์œ„ N๊ฐœ ์ถœ๋ ฅ(LIMIT N)์˜ ๊ฒฝ์šฐ -> ๊ฐœ์ˆ˜๊ฐ€ ์ฐจ๋ฉด ๊ฒ€์ƒ‰์„ ๋ฉˆ์ถ”๊ณ  DB์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์—ฌ ์•…์„ฑ์ฟผ๋ฆฌ๋ฌธ์„ ํ”ผํ•œ๋‹ค

SELECT * FROM `sqldb`.`userTBL` ORDER BY `userName` ASC LIMIT 2;

-- userName ๊ธฐ์ค€์œผ๋กœ
-- ASC : ์˜ค๋ฆ„์ฐจ์ˆœ
-- 2 : ์ œ์•ฝ 2๊ฐœ

 

.

.

 

GROUP BY์ ˆ - HAVING์ ˆ ์‚ฌ์šฉ

-์ง‘๊ณ„ํ•จ์ˆ˜๋Š” WHERE์ ˆ์— ๋‚˜ํƒ€๋‚  ์ˆ˜ ์—†์Œ

-GROUP BY ์ ˆ ๋‹ค์Œ์— ๊ผญ ์œ„์น˜ํ•ด์•ผํ•จ

 

ex)
SELECT userID AS '์‚ฌ์šฉ์ž', SUM(price * amount) AS '์ด๊ตฌ๋งค์•ก' FROM buyTBL
GROUP BY userID
HAVING SUM(price * amount) > 1000
ORDER BY SUM(price * amount);

-- HAVING์ ˆ์€ ์กฐ๊ฑด์ ˆ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋จ.
   price * amount๊ฐ€ 1000๋ณด๋‹ค ํฐ ๊ฒƒ๋งŒ ์ •๋ ฌํ•˜๊ฒ ๋‹ค(ORDER BY).