songining

8์ ˆ. ORDER BY ์ ˆ 

- ORDER BY ์ ˆ์—์„œ ์นผ๋Ÿผ๋ช…, ALIAS๋ช…, ์นผ๋Ÿผ ์ˆœ์„œ๋ฅผ ๊ฐ™์ด ํ˜ผ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. 

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

ORACLE ์€ NULL ๊ฐ’์„ ๊ฐ€์žฅ ํฐ ๊ฐ’์œผ๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค. 

   ๋ฐ˜๋ฉด, SQL server ๋Š” ์ตœ์†Œ๊ฐ’์œผ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.

- ORDER BY ์ ˆ์—๋Š” SELECT ๋ชฉ๋ก์— ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์€ ๋ฌธ์žํ˜• ํ•ญ๋ชฉ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ๋‹ค.

(์„œ๋ธŒ์ฟผ๋ฆฌ๋กœ ์ธํ•ด ์ปฌ๋Ÿผ์ด ์ œํ•œ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ)

- ์˜ˆ์‹œ)

์นผ๋Ÿผ๋ช…, ALIAS๋ช…, ์นผ๋Ÿผ ์ˆœ์„œ๋ฅผ ๊ฐ™์ด ํ˜ผ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. 
GROUP BY ์ดํ›„ ๊ฐœ๋ณ„๋ฐ์ดํ„ฐ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์—๋Ÿฌ 

GROUP BY๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ GROUP BY ํ‘œํ˜„์‹(EX)์ง‘๊ณ„ํ•จ์ˆ˜,์‚ฌ์šฉํ•œ ์†์„ฑ..)์ด ์•„๋‹Œ ๊ฐ’์€ ๊ธฐ์ˆ  ๋  ์ˆ˜ ์—†๋‹ค. 

GROUP BY ์ ˆ ์‚ฌ์šฉ์‹œ SELECT ์ ˆ์— ์ •์˜๋˜์ง€ ์•Š์€ ์ง‘๊ณ„ ์ปฌ๋Ÿผ์„ ORDER BY์ ˆ์— ์‚ฌ์šฉ 

TOPN์ฟผ๋ฆฌ

- SQL SERVER

- ๋‘๊ฑด์ด์ƒ์˜ N ํ–‰์„ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์„ ๋•Œ๋Š” ROWNUM =N ์ด ์•„๋‹ˆ๋ผ ROWNUM <= N / < N+1๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•ด์•ผ ํ•จ 

- TOP WITH TIES ์‚ฌ์šฉํ•˜๋ฉด ๋™์ผ ์ˆœ์œ„์— ๋Œ€ํ•˜์—ฌ ํ•จ๊ป˜ ์ถœ๋ ฅ (๋”ฐ๋ผ์„œ ORDER BY์™€ ํ•จ๊ป˜ ์™€์•ผ ํ•จ)

- ์˜ˆ์‹œ) ์‚ฌ์› ํ…Œ์ด๋ธ”์—์„œ ๊ธ‰์—ฌ๊ฐ€ ๋†’์€ 3๋ช…์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ

 

 

 

 

์˜ค๋‹ต์ž„. 3๊ฐœ ๋žœ๋ค ์ถ”์ถœ ํ›„ ์ •๋ ฌ๋จ. 

 

 

 

 

 

์ •๋‹ต. 

์ผ๋ฐ˜์ ์œผ๋กœ ์ธ๋ผ์ธ ๋ทฐ๊ฐ€ ๋ฉ”์ธ์ฟผ๋ฆฌ๋ณด๋‹ค ๋จผ์ € ์ˆ˜ํ–‰๋œ๋‹ค. ์ธ๋ผ์ธ ๋ทฐ์—์„œ ์ •๋ ฌ์„ ๋จผ์ € ์ˆ˜ํ–‰ ํ›„ ์ƒ์œ„ 3๊ฑด ์ถœ๋ ฅํ•œ๋‹ค. 

 

 

 

๋ฐ˜๋ฉด, SQL server ๋Š” TOP ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋ณ„๋„ ์ฒ˜๋ฆฌ ์—†์ด ๊ด€๋ จ ORDER BY ์ ˆ์˜ ๋ฐ์ดํ„ฐ ์ •๋ ฌ ํ›„ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์‰ฝ๊ฒŒ ์ถœ๋ ฅ ๊ฐ€๋Šฅํ•˜๋‹ค. 

 

 

 

9์ ˆ. JOIN 

JOIN

- ๋‘๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”๋“ค์„ ์—ฐ๊ฒฐ ๋˜๋Š” ๊ฒฐํ•ฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๊ฒƒ

- ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฐ€์žฅ ํฐ ์žฅ์ ์ด๋ฉด์„œ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ 

- ์ผ๋ฐ˜์ ์œผ๋กœ PK,FK ์—ฐ๊ด€์— ์˜ํ•ด JOIN์ด ์„ฑ๋ฆฝ๋œ๋‹ค. 

- ๊ทธ๋Ÿฌ๋‚˜ PK,FK ๊ด€๊ณ„๊ฐ€ ์—†์–ด๋„ ๋…ผ๋ฆฌ์ ์ธ ๊ฐ’๋“ค์˜ ์—ฐ๊ด€์„ฑ๋งŒ์œผ๋กœ JOIN์ด ์„ฑ๋ฆฝ ๊ฐ€๋Šฅํ•˜๋‹ค. 

- FROM์ ˆ์— ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์ด ๋‚˜์—ด๋˜๋”๋ผ๊ณ  SQL์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋–„๋Š” ๋‹จ ๋‘๊ฐœ์˜ ์ง‘ํ•ฉ๊ฐ„์—๋งŒ ์กฐ์ธ์ด ์ผ์–ด๋‚œ๋‹ค. 

  (๋‘๊ฐœ์”ฉ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ์–˜๊ธฐ์ž„.) 

- JOIN ์กฐ๊ฑด์€ ๋Œ€์ƒ ํ…Œ์ด๋ธ”์˜ ๊ฐœ์ˆ˜์—์„œ ํ•˜๋‚˜๋ฅผ ๋บ€ N-1๊ฐœ ์ด์ƒ์ดํ•„์š”ํ•˜๋‹ค. 

 

EQUI JOIN 

- ๋‘๊ฐœ์˜ ํ…Œ์ด๋ธ” ๊ฐ„์— ์นผ๋Ÿผ ๊ฐ’๋“ค์ด ์„œ๋กœ ์ •ํ™•ํ•˜๊ฒŒ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•. 

- "=" ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ‘œํ˜„ํ•œ๋‹ค. 

- ํ…Œ์ด๋ธ”๋ช…์— ALIAS๋ฅผ ์ ์šฉํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿด ๊ฒฝ์šฐ์—๋Š” WHERE์ ˆ๊ณผ SELECT ์ ˆ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ALIAS๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.  

์œ„์™€ ๋‹จ์ˆœํžˆ ์นผ๋Ÿผ๋ช…์ด ์•„๋‹ˆ๋ผ ํ…Œ์ด๋ธ”.์นผ๋Ÿผ๋ช…์œผ๋กœ ๋ช…์‹œํ•˜๋ฉด ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ณ  ์œ ์ง€ ๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค. 

ํ•˜๋‚˜์˜ SQL๋ฌธ์žฅ ๋‚ด์—์„œ ์œ ์ผํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ์นผ๋Ÿผ๋ช…์ด๋ผ๋ฉด ํ…Œ์ด๋ธ”๋ช…์„ ์•ž์— ๋ฐ˜๋“œ์‹œ ๋ถ™์ผ ํ•„์š”๋Š” ์—†๋‹ค. 

 

3๊ฐœ ์ด์ƒ ํ…Œ์ด๋ธ”์˜ JOIN 

- ์ตœ์†Œ 2๊ฐœ ์ด์ƒ์˜ ์กฐ๊ฑด์ด ํ•„์š”ํ•˜๋‹ค. (WHERE์ ˆ) 

 

NON EQUI JOIN 

- ์นผ๋Ÿผ๊ฐ’๋“ค์ด ์„œ๋กœ ์ •ํ™•ํ•˜๊ฒŒ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์— "="์—ฐ์‚ฐ์ž๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ BETWEEN, >,<,<=,>= ๋“ฑ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ JOIN ์ˆ˜ํ–‰ 

 

์ถœ์ฒ˜ : SQL ์ „๋ฌธ๊ฐ€ ๊ฐ€์ด๋“œ