๐ฅ๏ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค/SQL15 ์ด์ 1 2 3 ๋ค์ [Oracle] Constraint ์ ์ฝ์กฐ๊ฑด ์ ์ฝ์กฐ๊ฑด์ ๊ฐ๋ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ง๋ฅผ ์ํ์ฌ ์ฌ์ฉํจ ์ ์ฝ์กฐ๊ฑด์ ๋ง๋ ์ด์ : DB๋ณดํธ(์๋ชป๋ ๋ฐ์ดํฐ ์ ๋ ฅ์ด๋ ์ค์๋ฑ์ ๋ฐฉ์งํจ) ํ ์ด๋ธ๊ณผ ๋ฐ๋ก ์์ฑ๋จ ๋ชจ๋ ์ ์ฝ์กฐ๊ฑด์ ๋ฐ์ดํฐ์ฌ์ ์ ์ ์ฅ๋จ ์๋ฏธ์ด๋ฆ ๋ถ์ฌํ๋ฉด ์ข์ ์ ์ฝ์กฐ๊ฑด ์ ์ ๋ ๋ฒจ: โ ์นผ๋ผ โกํ ์ด๋ธ Constraint ์ ์ฝ์กฐ๊ฑด์ ์ข ๋ฅ โ PK Primary Key. ํ ์ด๋ธ์ ๋จ ํ๋๋ง ํ์ฉ. PK๋ ๋จ์ผ์นผ๋ผ์ด๊ฑฐ๋๋ ์ฌ๋ฌ์นผ๋ผ์ ์กฐํฉ๋ ๊ฐ๋ฅ. ๋ฌ์นผ๋ผ์ ์กฐํฉ์ผ ๋ ๋ชจ๋ ์นผ๋ผ์ด ๊ฐ์ด ์์ด์ผํจ. NULL๊ฐ ํ์ฉX. Java์ Map-Key์ ๊ฐ์ ๊ฒ. PK๋ก ์ค์ ๋ ์นผ๋ผ์ ๋ํด UNIQUE ์ธ๋ฑ์ค ์๋ ์์ฑํจ. ์ธ๋ฑ์ค=๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ ๋ ์ค๋ณต ๊ฐ์ด ์๋์ง ํ์ธํ๋ ์๊ฐ์ ์ค์ผ ์ ์์. โก NOT NULL NULL๊ฐ ํ์ฉX โข UNIQUE ๋ชจ๋ ํ์์ ๊ณ ์ ํ ๊ฐ์ ๊ฐ์ง.. 2024. 1. 5. [Oracle] SubQuery ์๋ธ์ฟผ๋ฆฌ SubQuery ์๋ธ์ฟผ๋ฆฌ์ ๊ฐ๋ ํ๋์ SELECT๋ฌธ ์์ ํฌํจ๋์ด์๋ ๋ ๋ค๋ฅธ ์ฟผ๋ฆฌ. ๋ณดํต โ ์๋ธ์ฟผ๋ฆฌ → โก๋ฉ์ธ์ฟผ๋ฆฌ ์์๋ก ๊ณ์ฐํจ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ณณ Where์ , From์ , Having์ , Select๋ฌธ, CREAT์ , DML๋ฌธ(Insert,Update,Delete) ์๋ธ์ฟผ๋ฆฌ๋ ๊ดํธ๋ก ๋ฌถ์ฌ์์ด์ผ ํจ. ์๋ธ์ฟผ๋ฆฌ๊ตฌ๋ฌธ์๋ Order By์ ๋ชป๋ค์ด๊ฐ. ์๋ธ์ฟผ๋ฆฌ๋ ์ฐ์ฐ์์ ์ค๋ฅธ์ชฝ!์ ์์นํจ ์๋ธ์ฟผ๋ฆฌ๊ฐ ์ฌ์ฉ๊ฐ๋ฅํ ์ฐ์ฐ์ ๋จ์ผํ ์ฐ์ฐ์: = > >= < 2024. 1. 5. [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. [์๋์ฐ ํจ์] 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. ์ด์ 1 2 3 ๋ค์