๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“š ์‹œ๋ฆฌ์ฆˆ/- ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ

[์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ] SELECT ์˜ WHERE๊ณผ ORDER BY ์— ๋Œ€ํ•ด

by Wonit 2021. 2. 25.

์นดํ…Œ๊ณ ๋ฆฌ ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์— ๊ฐ€์‹œ๋ฉด ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋ฅผ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชฉ์ฐจ

  • ์ž‘์—… ํ™˜๊ฒฝ ์„ธํŒ…
  • SELECT ๋ž€?
    • SELECT์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•
  • SELECT์™€ WHERE
    • ์กฐ๊ฑด ์—ฐ์‚ฐ์ž
    • ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž
    • BETWEEN A AND B
    • IN
  • SELECT์™€ ORDER BY
    • ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
    • ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ

์ง€๋‚œ ์‹œ๊ฐ„์— ๋Œ€์ถฉ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๊ณ„์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค.

 

์ด์ œ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์งˆ์˜๋ฌธ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณผ ๊ฒƒ์ธ๋ฐ ์•Œ์•„๋ณด๊ธฐ ์ „์— ์‚ฌ์ „ ์ค€๋น„๋ฌผ์ด ํ•„์š”ํ•˜๋‹ค.

 

  1. ์œˆ๋„์šฐ์—์„œ MySQL ์„ค์น˜ ๋ฐฉ๋ฒ•
  2. ๋งฅ์—์„œ MySQL ์„ค์น˜ ๋ฐฉ๋ฒ•
  3. ์ƒ˜ํ”Œ ํ…Œ์ด๋ธ” & ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

MySQL์€ ์œ„์˜ ๋งํฌ์—์„œ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๊ณ , ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ ๋˜ํ•œ ์œ„์˜ ๋งํฌ์—์„œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.


๊ฐ์ž ์„ค์น˜๋ฐ ์„ธํŒ… ํ•˜๊ณ  ๋‹ค์‹œ ๋Œ์•„์˜ค์ž.

์ด๋ฒˆ ์‹œ๋ฆฌ์ฆˆ์˜ ๋ชฉ์ ์€ ์งˆ์˜๋ฌธ์„ ํ†ตํ•ด์„œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•˜๋Š” ์‹œ๋ฆฌ์ฆˆ์ด๋ฏ€๋กœ ์–ด๋–ค ์„ค์น˜ ๊ณผ์ •์ด๋‚˜ ์‹œ๋ฆฌ์ฆˆ ์ฃผ์ œ์— ๋ฒ—์–ด๋‚œ ์ด๋ก ๋“ค์€ ์ตœ์†Œํ™” ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ๋งํฌ๋กœ ์—ฐ๊ฒฐ์‹œํ‚จ์ ์€ ์–‘ํ•ด๋ฐ”๋ž๋‹ˆ๋‹ค ใ… ใ… ..

์ด์ œ๋ถ€ํ„ฐ ์‹ค์งˆ์ ์ธ ์งˆ์˜๋ฌธ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž.

SELECT

SELECT๋ฌธ์€ ์šฐ๋ฆฌ๊ฐ€ ์•Œ์•„์•ผํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์•„์ฃผ์•„์ฃผ์•„์ฃผ ๊ธฐ์ดˆ์ ์ด๊ณ  ์ค‘์š”ํ•œ ๋ช…๋ น์–ด์ด๋‹ค.

 

SELECT ๋ฌธ์˜ ๊ธฐ๋ณธ์ ์ธ ์“ฐ์ž„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

SELECT select_expr
  FROM table_reference
  WHERE where_condition
  GROUP BY column_name or expression or position
  HAVING where_condition
  ORDER BY column_name or expression or position

SELECT ๋ฌธ์—์„œ๋Š” ์กฐ๊ฑด์„ ์ฃผ๊ฑฐ๋‚˜, ์›ํ•˜๋Š”๋ฐ๋กœ ๋ฌถ๋Š”๋‹ค๊ฑฐ๋‚˜, ํŠน์ • ์ˆœ์„œ๋กœ ์ •๋ ฌ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ตฌ๋ฌธ์ด ๋ฐ”๋กœ

  • WHERE
  • GROUP BY
  • HAVING
  • ORDER BY

์ด๋ฉฐ ์ด๋“ค์˜ ์œ„์น˜์™€ ์ˆœ์„œ๋Š” ์ง€์ผœ์ ธ์•ผ ํ•œ๋‹ค.

 

์•ž์„œ์„œ MySQL ์„ค์น˜์™€ ์‹ค์Šต ํ™˜๊ฒฝ ์„ธํŒ…์ด ๋๋‚ฌ๋‹ค๋ฉด ์šฐ๋ฆฌ์˜ workbench๋กœ ๊ฐ€์„œ ํ•œ ๋ฒˆ ๋ช…๋ น์–ด๋ฅผ ์ณ๋ณด์ž.

SELECT * FROM usertb1;

์ด ๋ช…๋ น์–ด๋Š” usertb1๋กœ๋ถ€ํ„ฐ (FROM) ๋ชจ๋“  ๋ฐ์ดํ„ฐ(*)๋ฅผ ๊ฐ€์ ธ์˜ค๊ฒ ๋‹ค(SELECT)๋Š” ๋œป์ด๋‹ค.

 

์ฐธ๊ณ ๋กœ sql๋ฌธ์€ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.


๊ทธ๋ž˜์„œ ๋‚˜๋Š” ์ฟผ๋ฆฌ ๋ช…๋ น์–ด๋งŒ ๋Œ€๋ฌธ์ž๋กœ ์“ฐ๊ณ  ์šฐ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ ๊ด€๋ จ๋œ ๋ฌธ์ž๋Š” ์†Œ๋ฌธ์ž๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

 

๊ทธ๋Ÿผ ์ •์ƒ์ ์œผ๋กœ usertb1์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

 

๋งŒ์•ฝ ์—ฌ๊ธฐ์„œ ํŠน์ • ์นผ๋Ÿผ(name, addr)๋งŒ ๋ณด๊ณ ์‹ถ๋‹ค๋ฉด ๋ชจ๋“  ๋ฐ์ดํ„ฐ(*)๊ฐ€ ์•„๋‹ˆ๋ผ ํŠน์ • ์นผ๋Ÿผ(name, addr)์œผ๋กœ ์“ฐ๋ฉด ๋œ๋‹ค.

 

SELECT name, addr
FROM usertb1;

์„ ์ˆ˜ํ–‰ํ•˜๋ฉด usertb1๋กœ๋ถ€ํ„ฐ (FROM) ํŠน์ • ์นผ๋Ÿผ์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ(name, addr)๋ฅผ ๊ฐ€์ ธ์˜ค๊ฒ ๋‹ค(SELECT)๋Š” ๋œป์ด๋‹ค.

 

์ด ๊ฒƒ์„ ์ผ๋ฐ˜ํ™” ํ•œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ SELECT ๋ฌธ์žฅ์ด ๋œ๋‹ค.

SELECT ํ•„๋“œ
FROM ํ…Œ์ด๋ธ”๋ช…;

SELECT ์—์„œ WHERE๋กœ ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•˜๊ธฐ

๋งŒ์•ฝ ๋‚ด๊ฐ€ addr์ด ์„œ์šธ์ธ ์‚ฌ๋žŒ๋งŒ ๋ณด๊ณ ์‹ถ๋‹ค๋ฉด ์–ด๋–กํ• ๊นŒ?

 

์ด์ œ ์šฐ๋ฆฌ๋Š” ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•ด์•ผํ•  ํƒ€์ด๋ฐ์ด ๋œ ๊ฒƒ์ด๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์งˆ์˜๋ฌธ์— ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•œ๋‹ค๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ๊ณจ๋ผ์„œ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•  ๋•Œ๋Š” WHERE ์ ˆ์„ ์‚ฌ์šฉํ•œ๋‹ค.

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

์—ฌ๊ธฐ WEHRE์ ˆ ๋’ค์—๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€ ์—ฐ์‚ฐ์ž๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

 

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

์กฐ๊ฑด ์—ฐ์‚ฐ์ž

 

์กฐ๊ฑด ์—ฐ์‚ฐ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐํ˜ธ๋“ค์ด ์กด์žฌํ•œ๋‹ค. =, <, >, <=, >=, !=

์กฐ๊ฑด ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด์„œ addr์ด ์„œ์šธ์ธ ์‚ฌ๋žŒ๋งŒ ์ถœ๋ ฅํ•˜๋ผ
SELECT name, addr
FROM usertb1
WHERE addr = '์„œ์šธ';

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

 

๊ด€๊ณ„ ์—ฐ์‚ฐ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐํ˜ธ๋“ค์ด ์กด์žฌํ•œ๋‹ค. OR, AND, NOT

์กฐ๊ฑด ์—ฐ์‚ฐ์ž์™€ ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ์ด๋ฆ„์ด '์ด์Šน๊ธฐ'๊ฐ€ ์•„๋‹ˆ๊ณ  addr์ด ์„œ์šธ์ธ ์‚ฌ๋žŒ์„ ์ถœ๋ ฅํ•˜๋ผ
SELECT name, addr
FROM usertb1
WHERE name != '์ด์Šน๊ธฐ' AND addr = '์„œ์šธ'

๊ด€๊ณ„ ์—ฐ์‚ฐ์ž์˜ ์ง„ํ™” BETWEEN A AND B

ํ‚ค๊ฐ€ 180 ~ 190์ธ ์‚ฌ๋žŒ์„ ์กฐํšŒํ•ด๋ณด์ž.

 

์—ฌ๊ธฐ๊นŒ์ง€ ์ž˜ ๋”ฐ๋ผ์™”๋‹ค๋ฉด ๋ฌด๋ฆฌ์—†์ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

SELECT name, height
FROM usertb1
WHERE height >= 180 AND height <= 190;

 

์ด ๋ฌธ์žฅ์„ ์ข€ ๋” ์ง๊ด€์ ์ด๊ฒŒ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ฐ”๋กœ BETWEEN A AND B ๊ตฌ๋ฌธ์ด๋‹ค.

 

SELECT name, height
FROM usertb1
WHERE height BETWEEN 180 AND 190;

๊ด€๊ณ„ ์—ฐ์‚ฐ์ž์˜ ์ง„ํ™” IN

๋งŒ์•ฝ ๋ฌธ์ œ์—์„œ addr์ด ์„œ์šธ์ด๊ฑฐ๋‚˜ ๊ฒฝ๋ถ์ธ ์‚ฌ๋žŒ์„ ์กฐํšŒํ•˜๋ผ ๋ผ๊ณ  ํ•˜๋ฉด BETWEEN A AND B๋ฅผ ํ†ตํ•ด์„œ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์„๊นŒ?

 

๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์ด์œ ๋Š” BETWEEN A AND B๋Š” ์—ฐ์†์ ์ธ ๊ฐ’์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ํŠน์ • ์ด์‚ฐ ๊ฐ’๋“ค์—์„œ๋Š” ์ ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

 

๊ทธ๋Ÿด ๋•Œ ๋ฐ”๋กœ IN์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

addr์ด ์„œ์šธ์ด๊ฑฐ๋‚˜ ๊ฒฝ๋ถ์ธ ์‚ฌ๋žŒ์„ ์กฐํšŒํ•˜๋ผ
SELECT name, addr
FROM usertb1
WHERE addr IN('์„œ์šธ', '๊ฒฝ๋ถ');

์›ํ•˜๋Š” ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•˜๊ธฐ ORDER BY

์ •๋ ฌ ํ•˜๋ฉด ๋ญ๊ฐ€ ๋– ์˜ค๋ฅด๋‚˜?


์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์ง€๋งŒ ๋‚˜๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ๊ณผ ๋‚ด๋ฆผ์ฐจ์ˆœ์ด ๋– ์˜ค๋ฅธ๋‹ค.

 

์—ญ์‹œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ๊ณผ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ์ด ์กด์žฌํ•œ๋‹ค.

 

์šฐ๋ฆฌ๋Š” ์งˆ์˜๋ฌธ์—์„œ ์ด ์ •๋ ฌ ์ˆœ์„œ๋ฅผ ORDER BY๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ธฐ๋ณธ์ ์œผ๋กœ ORDER BY์˜ ์‚ฌ์šฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

SELECT ํ•„๋“œ
FROM ํ…Œ์ด๋ธ”๋ช…
ORDER BY ์ •๋ ฌ ๊ธฐ์ค€ ํ•„๋“œ;

์˜ค๋ฆ„์ฐจ์ˆœ์˜ ASC

ORDER BY๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์ด ๋œ๋‹ค.

ํ‚ค๊ฐ€ 180 ~ 190์ธ ์‚ฌ๋žŒ์„ ์กฐํšŒํ•˜๋Š”๋ฐ, ํ‚ค๊ฐ€ ์ž‘์€ ์ˆœ์œผ๋กœ ์กฐํšŒํ•˜์ž.
SELECT name, height
FROM usertb1
ORDER BY height

/* ํ˜น์€ */
SELECT name, height
FROM usertb1
ORDER BY height ASC

๋‚ด๋ฆผ์ฐจ์ˆœ์˜ DESC

๋‚ด๋ฆผ์ฐจ์ˆœ์€ ORDER BY ๋งˆ์ง€๋ง‰์— ์จ์ฃผ๋ฉด ๋œ๋‹ค.

 

ํ‚ค๊ฐ€ 180 ~ 190์ธ ์‚ฌ๋žŒ์„ ์กฐํšŒํ•˜๋Š”๋ฐ, ํ‚ค๊ฐ€ ํฐ ์ˆœ์œผ๋กœ ์กฐํšŒํ•˜์ž.
SELECT name, height
FROM usertb1
ORDER BY height DESC

์นดํ…Œ๊ณ ๋ฆฌ ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์— ๊ฐ€์‹œ๋ฉด ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋ฅผ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€