SQL 2

๐Ÿชช [์ž๊ฒฉ์ฆ] [SQLD] 2024๋…„ ์ œ 54ํšŒ SQLD ๊ฐœ๋ฐœ์ž ์‹œํ—˜ ํ›„๊ธฐ

์‹œํ—˜ ํ›„๊ธฐ2024๋…„ 8์›” 24์ผ SQLD ์‹œํ—˜์„ ๋ณด๊ณ ์™”๋‹ค. ์ „๊ณต์ž์— ๋‚œ์ด๋„๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์ง€ ์•Š๋‹ค๊ณ  ํ•ด์„œ ๊ทธ๋ƒฅ ํ•œ๋ฒˆ ๋ณด์ž๋Š” ์‹์œผ๋กœ ์‹œํ—˜์„ ๋ดค๋‹ค. ์ค€๋น„ ๊ธฐ๊ฐ„๋„ ์—†์ด ๊ทธ๋ƒฅ ์ „๋‚  3-4์‹œ๊ฐ„์ •๋„ ๋…ธ๋žญ์ด ํ’€์–ด๋ณด๊ณ  ์ƒ๊ฐ๋ณด๋‹ค ๋‚œ์ด๋„๊ฐ€ ์–ด๋ ค์›Œ์„œ ๊ทธ๋ƒฅ ๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทผ๋ฐ ์•Œ๊ณ ๋ณด๋‹ˆ ๋…ธ๋žญ์ด๋Š” SQLP ๋ฌธ์ œ๊นŒ์ง€ ์žˆ์–ด์„œ ๋” ์–ด๋ ค์šด ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‚˜๋ณด๋‹ค.  SQLD ์‹œํ—˜์„ ๋ณด๋ฉด์„œ ๋Š๋‚€๊ฑด ํ™•์‹คํžˆ ์‹ค๋ฌด ๊ฒฝํ—˜์ด ์žˆ์œผ๋ฉด SQL์„ ๋งŽ์ด ๋‹ค๋ฃจ๋‹ค ๋ณด๋‹ˆ ์ฟผ๋ฆฌ๋ฅผ ์งœ๊ธฐ์— ์ต์ˆ™ํ•˜๊ณ  ๊ธฐ๋ณธ ๊ฐœ๋…๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ์ „๊ณต์ž๋ผ ํฐ ์–ด๋ ค์›€์€ ์—†์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ Oracle๊ณผ SQL-server์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์ž˜ ๋ชฐ๋ผ์„œ ๋ช‡๋ฌธ์ œ๊ฐ€ ํ—ท๊ฐˆ๋ ธ๊ณ  NULL ์ฒ˜๋ฆฌ์— ๋Œ€ํ•ด ์ต์ˆ™ํ•˜๋‹ค๋ฉด ํฐ ์ค€๋น„ ์—†์ด ํ•ฉ๊ฒฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‚œ์ด๋„์˜€๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์‹ค ์œˆ๋„์šฐ ํ•จ์ˆ˜๋„ ์‹ค๋ฌด์—์„œ ๋งŽ์ด ์“ฐ์ง€ ์•Š์•˜๊ณ  ..

๐Ÿ“Š [DataBase] Oracle Rownum ์‚ฌ์šฉํ•˜๊ธฐ

๐Ÿšฉ Oracle์—์„œ Rownum ์‚ฌ์šฉํ•˜๊ธฐ Oracle์€ limit๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค(11g ๊นŒ์ง€๋Š” ์ง€์›ํ•˜์ง€ ์•Š๊ณ  12๋ถ€ํ„ฐ๋Š” ์ง€์›ํ•œ๋‹ค). ๋”ฐ๋ผ์„œ limit ๋Œ€์‹  ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์›ํ•˜๋Š” ํ–‰์„ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋Š”๋ฐ ๋ฐ”๋กœ rownum์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ์‹œ๋ฅผ ๋“ค๊ธฐ ์œ„ํ•ด oracle์˜ hr ์Šคํ‚ค๋งˆ์— ์žˆ๋Š” ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”์„ ๊ฐ€์ง€๊ณ  SQL์„ ์‹คํ–‰ํ•ด ๋ณผ ๊ฒƒ์ด๋‹ค. MySQL SELECT * FROM EMPLOYEES LIMIT 10; SELECT * FROM EMPLOYEES LIMIT 0, 10; SELECT * FROM EMPLOYEES LIMIT 0 OFFSET 10; MySQL์€ ๊ทธ๋ƒฅ Limit ์•ˆ์— ์›ํ•˜๋Š” ํ–‰์„ ๋„ฃ์œผ๋ฉด ๋œ๋‹ค. Oracle SELECT * FROM ( SELECT ROWNUM AS rn, employee_..