๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ–ฅ๏ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค28

[Oracle] Join์œผ๋กœ ๋ฐ์ดํ„ฐ ์—ฐ๊ฒฐ, Set ์—ฐ์‚ฐ์ž ์บก์ณ์— ๋‚˜์˜จ SQL๋ฌธ๋ฒ•์€ ANSI(๋ฏธ๊ตญํ‘œ์ค€ํ˜‘ํšŒ) SQL ํ‘œ์ค€๊ณผ๋Š” ๋‹ค๋ฅธ ์˜›๋‚  ๋ฌธ๋ฒ•์ด ์‚ฌ์šฉ๋œ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ๋ธ”๋Ÿญ์„ ์ค‘์‹ฌ์œผ๋กœ ๋ด์ฃผ์„ธ์š” Join 1๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”๋กœ๋ถ€ํ„ฐ ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์˜ค๋Š” ๋ฐฉ๋ฒ•. PK์™€ FK๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋…ผ๋ฆฌ์ ์ธ ๊ฐ’๋“ค์˜ ์—ฐ๊ด€์œผ๋กœ ์„ฑ๋ฆฝ๋„ ๊ฐ€๋Šฅํ•จ. ์—ฐ๊ด€๋œ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ. ํ…Œ์ด๋ธ”๊ฐ„์˜ ์—ฐ๊ฒฐ๊ณ ๋ฆฌ๊ฐ€ ์žˆ์„ ๋•Œ ํ•ฉ์ณ์„œ ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”์„ ๋ณด์—ฌ์คŒ ์ •๊ทœํ™”: ํ…Œ์ด๋ธ”์„ ์ชผ๊ฐœ๋Š” ๊ฒƒ. ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•จ. ์ค‘๋ณต์ด ๋งŽ์œผ๋ฉด ๋ณ€๊ฒฝ ์‹œ ๋ณ€๊ฒฝํšŸ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋ฉฐ ์‹ค์ˆ˜์™€ ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Œ. Join(๋ถ™์ด๊ธฐ) ↔ ์ •๊ทœํ™”(์ชผ๊ฐœ๊ธฐ) Join ๋ฐฉ๋ฒ• ์˜๋ฏธ ์˜ˆ์‹œ EquiJoin ์นผ๋Ÿผ ๊ฐ„์˜ ๊ฐ’๋“ค์ด ์„œ๋กœ ์ •ํ™•ํžˆ ์ผ์น˜ํ•  ๋•Œ ์ง์›์ •๋ณด์˜ ๋ถ€์„œ๋ฒˆํ˜ธ & ๋ถ€์„œ์ด๋ฆ„ & ๋ถ€์„œ์˜ ์ง€์—ญ๋ฒˆํ˜ธ์™€ ์ง€์—ญ์ด๋ฆ„ Non-EquiJoin ์นผ๋Ÿผ.. 2024. 1. 5.
[Oracle] SubGroup์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ถ„๋ฅ˜ Group By ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์†Œ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆŒ ์นผ๋Ÿผ์„ ๋ช…์‹œํ•จ. Having Group์— ๋Œ€ํ•œ ์กฐ๊ฑด์„ ๊ธฐ์ˆ ํ•จ. ๊ทธ๋ฃนํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ ๊ทธ๋ฃนํ•จ์ˆ˜ ์‚ฌ์šฉ์‹œ ์ฃผ์˜ํ•  ์  Select์ ˆ์— ๊ทธ๋ฃนํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Select์ ˆ์˜ ๋‚˜๋จธ์ง€ ์นผ๋Ÿผ์€ Group By์ ˆ์— ๊ธฐ์ˆ ๋˜์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ฃน์— ๋Œ€ํ•œ ์กฐ๊ฑด์€ Having์ ˆ์—๋Š” ๊ธฐ์ˆ ํ•œ๋‹ค. Group By์ ˆ ์ดํ•˜์— ์นผ๋Ÿผ์„ ์—ฌ๋Ÿฌ๊ฐœ ๊ธฐ์ˆ ํ•˜๋ฉด ๊ทธ๋ฃน์„ ์„ธ๋ถ„ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. 2024. 1. 5.
[Oracle] ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฐ ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ํ…Œ์ด๋ธ” ๋ช…๋ช… ๊ทœ์น™ -ํ…Œ์ด๋ธ”๋ช…, ์นผ๋Ÿผ๋ช… ๋ฌธ์ž๋กœ ์‹œ์ž‘. ์ตœ๋Œ€ 30์ž -A-Z, a-z, 0-9, _, $, # ๊ฐ€๋Šฅ -์ด๋ฆ„์ค‘๋ณต X -์˜ˆ์•ฝ์–ด X ๋ฐ์ดํ„ฐ ํƒ€์ž… -VARCHAR2(size): ๊ฐ€๋ณ€๊ธธ์ด ๋ฌธ์ž๊ฐ’. -CHAR(size): ๊ณ ์ •๊ธธ์ด ๋ฌธ์ž๊ฐ’ -NUMBER: ์ˆซ์ž, 38์ž๋ฆฌ๊นŒ์ง€ -NUMBER(p, s): ์ˆซ์ž. p์ž๋ฆฟ์ˆ˜๊นŒ์ง€ ์œ ํšจ -DATE: ๋‚ ์งœ์™€ ์‹œ๊ฐ„ -LONG: ํฐ ๊ฐ€๋ณ€๊ธธ์ด ๋ฌธ์ž๊ฐ’. ํ…Œ์ด๋ธ”๋‹น LONG์—ด์€ 1๊ฐœ๋งŒ ํ—ˆ์šฉ -RAW ๊ณผ LONGRAW: ์ด์ง„๋ฐ์ดํ„ฐ ์ €์žฅ์— ์‚ฌ์šฉ ํ…Œ์ด๋ธ” ์ƒ์„ฑ -์Šคํ‚ค๋งˆ(๊ฐ์ฒด์˜ ์ง‘ํ•ฉ. ํ…Œ์ด๋ธ” ์†Œ์œ ์ž) -ํ…Œ์ด๋ธ”๋ช…(์ƒˆ ํ…Œ์ด๋ธ” ์ด๋ฆ„) -์นผ๋Ÿผ๋ช…(์นผ๋Ÿผ์˜ ์ด๋ฆ„) -DataType(์นผ๋Ÿผ์ด ๊ฐ€์งˆ ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ํฌ๊ธฐ) -Default(๋ฐ์ดํ„ฐ ์ž…๋ ฅ์‹œ ๊ธฐ๋ณธ๊ฐ’) SQL ๋ช…๋ น์–ด ๊ธฐ๋ณธ๋ถ€๋ฅ˜ ๋ถ€๋ฅ˜ ๋ช…๋ น์–ด ๋ช…๋ น์–ด R.. 2024. 1. 5.
[์„ค์น˜] MariaDB 10.11.6 ์„ค์น˜ ๋ฐ ์„ค์ •ํŒŒ์ผ ์ปค์Šคํ…€ MSI Package ์„ค์น˜ ์ฑ…์—์„œ๋Š” Binary๋ฐฉ๋ฒ•์œผ๋กœ ์„ค์น˜ํ•œ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ ๊ทธ๋ƒฅ ํ™ˆํŽ˜์ด์ง€์—์„œ ๋‚ด๋ ค๋ฐ›์€ MSI Package๋ฅผ ์ด์šฉํ–ˆ๋‹ค ๋ฒ„์ „์€ ์Šคํ”„๋ง๋ถ€ํŠธ 3.X๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด์–ด์„œ ๋น„๊ต์  ์ตœ์‹ ์ค‘์— GPT์˜ ์ถ”์ฒœ์„ ๋ฐ›์Œ pakage ์„ค์น˜๋Š” ๋น„๊ต์  ๊ฐ„๋‹จํ•˜๋‹ค. root password๋Š” ์žŠ์ง€ ๋ง๊ฒƒ ๊ทธ์™ธ์˜ ์„ค์ •์€ ๊ธฐ๋ณธ๊ฐ’์„ ๋”ฐ๋ž๋‹ค ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ ํ„ฐ๋ฏธ๋„์—์„œ root ๊ถŒํ•œ์œผ๋กœ ์ ‘์†ํ•œ๋‹ค mysql -u root -p ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค CREATE DATABASE NEWMARIADB; ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•œ๋‹ค CREATE USER '์ƒˆ๋กœ์šด_์‚ฌ์šฉ์ž'@'localhost' IDENTIFIED BY '๋น„๋ฐ€๋ฒˆํ˜ธ'; ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ๋‹ค GRANT ALL PRIVILEGES ON *.* TO '์ƒˆ๋กœ์šด_์‚ฌ์šฉ์ž'@'.. 2023. 12. 18.
[์œˆ๋„์šฐ ํ•จ์ˆ˜] PARTITION BY ์ ˆ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œˆ๋„์šฐ ํ•จ์ˆ˜ ์œˆ๋„์šฐ ํ•จ์ˆ˜๋ž€? ์œˆ๋„์šฐ ํ•จ์ˆ˜๋Š” ์˜ค๋ผํด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ SQL Server, PostgreSQL, MySQL(8.0 ์ด์ƒ) ๋“ฑ ๋‹ค์–‘ํ•œ SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ ์ด ํ•จ์ˆ˜๋“ค์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๊ณ  ๊ฐ ๊ทธ๋ฃน ๋‚ด์—์„œ ๋ณต์žกํ•œ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ ์œˆ๋„์šฐ ํ•จ์ˆ˜ ROW_NUMBER(): ๊ฐ ํŒŒํ‹ฐ์…˜ ๋‚ด์—์„œ์˜ ํ–‰ ์ˆœ์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•จ RANK(): ํŠน์ • ์ˆœ์„œ์— ๋”ฐ๋ผ ๊ฐ ํ–‰์— ์ˆœ์œ„๋ฅผ ๋งค๊น€. ๊ฐ™์€ ๊ฐ’์ด๋ฉด ๊ฐ™์€ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•˜๋ฉฐ, ์ˆœ์œ„์— ๊ณต๋ฐฑ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ DENSE_RANK(): RANK()์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ, ๊ณต๋ฐฑ ์—†๋Š” ์—ฐ์†์ ์ธ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•จ SUM(): ํŒŒํ‹ฐ์…˜ ๋‚ด์—์„œ์˜ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐ AVG(): ํŒŒํ‹ฐ์…˜ ๋‚ด์—์„œ์˜ ํ‰๊ท ๊ฐ’์„ ๊ณ„์‚ฐ MIN() ๋ฐ MAX(): ํŒŒํ‹ฐ์…˜ ๋‚ด์—์„œ์˜ ์ตœ์†Œ๊ฐ’๊ณผ ์ตœ๋Œ€๊ฐ’์„ ๊ณ„์‚ฐ LEAD() ๋ฐ LAG():.. 2023. 12. 14.
[Oracle] ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฐ ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ํ…Œ์ด๋ธ” ๋ช…๋ช… ๊ทœ์น™ ํ…Œ์ด๋ธ”๋ช…, ์นผ๋Ÿผ๋ช… ๋ฌธ์ž๋กœ ์‹œ์ž‘. ์ตœ๋Œ€ 30์ž A-Z, a-z, 0-9, _, $, # ๊ฐ€๋Šฅ ์ด๋ฆ„์ค‘๋ณต X ์˜ˆ์•ฝ์–ด X ๋ฐ์ดํ„ฐ ํƒ€์ž… VARCHAR2(size) ๊ฐ€๋ณ€๊ธธ์ด ๋ฌธ์ž๊ฐ’. CHAR(size) ๊ณ ์ •๊ธธ์ด ๋ฌธ์ž๊ฐ’ NUMBER ์ˆซ์ž, 38์ž๋ฆฌ๊นŒ์ง€ NUMBER(p, s) ์ˆซ์ž. p์ž๋ฆฟ์ˆ˜๊นŒ์ง€ ์œ ํšจ DATE ๋‚ ์งœ์™€ ์‹œ๊ฐ„ LONG ํฐ ๊ฐ€๋ณ€๊ธธ์ด ๋ฌธ์ž๊ฐ’. ํ…Œ์ด๋ธ”๋‹น LONG์—ด์€ 1๊ฐœ๋งŒ ํ—ˆ์šฉ RAW ๊ณผ LONGRAW ์ด์ง„๋ฐ์ดํ„ฐ ์ €์žฅ์— ์‚ฌ์šฉ ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์Šคํ‚ค๋งˆ ๊ฐ์ฒด์˜ ์ง‘ํ•ฉ. ํ…Œ์ด๋ธ” ์†Œ์œ ์ž ํ…Œ์ด๋ธ”๋ช… ์ƒˆ ํ…Œ์ด๋ธ” ์ด๋ฆ„ ์นผ๋Ÿผ๋ช… ์นผ๋Ÿผ์˜ ์ด๋ฆ„ DataType ์นผ๋Ÿผ์ด ๊ฐ€์งˆ ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ํฌ๊ธฐ Default ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์‹œ ๊ธฐ๋ณธ๊ฐ’ SQL ๋ช…๋ น์–ด ๋ถ„๋ฅ˜ ๋ฐ์ดํ„ฐ์กฐ์ž‘ ๋ช…๋ น์–ด(DML) Insert ํ…Œ์ด๋ธ”์— ์ƒˆ๋กœ์šด ํ–‰ ์‚ฝ์ž…. ์ž…๋ ฅ๋˜๋Š” .. 2023. 11. 11.
[Oracle] SQL์ด๋ž€ RDB ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, RDBMS๊ฐ€ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•จ. 2์ฐจ ํ–‰๋ ฌ์˜ Table์˜ ์ง‘ํ•ฉ์œผ๋กœ ํ‘œํ˜„. ํ…Œ์ด๋ธ”์˜ ๊ฐ Row๋Š” ์œ ์ผํ•˜๊ฒŒ ๊ตฌ๋ณ„๋˜๋Š” ํŠน์ง•๊ฐ€์ง. ๊ฐ ์ปฌ๋Ÿผ๋“ค์€ ๋ฐ์ดํ„ฐ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅ๋ฐ›์•„์•ผํ•จ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์กฐ์ž‘๊ณผ ๊ฒ€์ƒ‰์„ SQL์„ ์ด์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ํ•จ. ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ๊ด€๋ จ ์šฉ์–ด ํ…Œ์ด๋ธ” RDBMS์˜ ๊ธฐ๋ณธ์ ์ธ ์ €์žฅ๊ตฌ์กฐ. 1๊ฐœ ์ด์ƒ ์นผ๋Ÿผ & 0๊ฐœ ์ด์ƒ ๋กœ์šฐ Row ์ปฌ๋Ÿผ ๊ฐ’๋“ค์˜ ์กฐํ•ฉ. ํ–‰. ๋ ˆ์ฝ”๋“œ Column ๋‹จ์ผ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ. ์—ด. ํŠน์ • dataType๊ณผ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง. Field Row์™€ Column์˜ ๊ต์ฐจ์ ์— ์žˆ์Œ.๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๊ฑฐ๋‚˜ NULL Primary Key ํ•œ ํ…Œ์ด๋ธ”์˜ ๊ฐ๊ฐ์˜ ๋กœ์šฐ๋ฅผ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•ด์ฃผ๋Š” ๋‹จ์ผ ์ปฌ๋Ÿผ(๋˜๋Š” ์กฐํ•ฉ). ์ œ์•ฝ์กฐ๊ฑด. NULL๊ฐ’ ํ—ˆ์šฉ X Foreign Key ๊ฐ™์€ Table .. 2023. 11. 11.