006. SELECT Statement - llighter/database GitHub Wiki

SQL ๋ ˆ๋ฒจ์—…

๊ฒ€์ƒ‰ == ์งˆ์˜(query), ์ถ”์ถœ(retrieve)

1. SELECT ๊ตฌ์™€ FROM ๊ตฌ

SELECT column1, column2, ...
FROM table_name;
  • column1, column2, ... are the field names of the table you want to select data from.
  • table_name : ๋Œ€์ƒ ํ…Œ์ด๋ธ”

2. WHERE ๊ตฌ

  • ์กฐ๊ฑด์„ ์ง€์ •

- WHERE ๊ตฌ์˜ ๋‹ค์–‘ํ•œ ์กฐ๊ฑด ์ง€์ •

- WHERE ๊ตฌ๋Š” ๊ฑฐ๋Œ€ํ•œ ๋ฒค๋‹ค์ด์–ด๊ทธ๋žจ

- IN์œผ๋กœ OR ์กฐ๊ฑด์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑ

- NULL ์•„๋ฌด๊ฒƒ๋„ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์€?

ORACLE์—์„œ NULL์„ ์ฐพ๋Š” ๋ฐฉ์‹ ๋ฐ ํ•จ์ˆ˜

3. GROUP BY ๊ตฌ

ํ•ฉ๊ณ„, ํ‰๊ท  ๋“ฑ์„ ๊ณ„์‚ฐ

- ๊ทธ๋ฃน์„ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ์˜ ์žฅ์ 

  • SQL์˜ ๋Œ€ํ‘œ์ ์ธ ํ•จ์ˆ˜ 5๊ฐœ
    • COUNT
    • SUM
    • AVG
    • MAX
    • MIN

4. HAVING ๊ตฌ

์„ ํƒ๋œ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์— ๋˜๋‹ค์‹œ ์กฐ๊ฑด์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

5. ORDER BY ๊ตฌ

6. VIEW and SUBQUERY

- ๋ทฐ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฒ•

- ์ต๋ช… ๋ทฐ

  • ๋ทฐ๋Š” ๋‚ด๋ถ€์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์œ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ SELECT ๊ตฌ๋ฌธ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ.
  • ๋”ฐ๋ผ์„œ ๋ทฐ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ์€ ๋‚ด๋ถ€์ ์œผ๋กœ ์ถ”๊ฐ€์ ์ธ SELECT ๊ตฌ๋ฌธ ์„ ์‹คํ–‰ํ•˜๋Š” ์ค‘์ฒฉ(nested) ๊ตฌ์กฐ๊ฐ€ ๋˜๋Š” ๊ฒƒ.
  • FROM ๊ตฌ์—์„œ ์ง์ ‘ ์ง€์ •ํ•˜๊ฒŒ ๋˜๋ฉด ๊ทธ๊ฒƒ์„ ์„œ๋ธŒ์ฟผ๋ฆฌ(subquery) ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

- ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ ํŽธ๋ฆฌํ•œ ์กฐ๊ฑด ์ง€์ •

  • ๋‘ ํ…Œ์ด๋ธ”์„ ๋งค์นญ(matching) ํ•  ์ˆ˜ ์žˆ์Œ.
  • IN๊ณผ SUBQUERY๋ฅผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด๋„ ๋”ฐ๋กœ ์ˆ˜์ •ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. <-> ํ•˜๋“œ์ฝ”๋”ฉ