Data12 DB] JOIN JOIN ์ด๋? - ๋ ์ด์์ ํ ์ด๋ธ์ ์ฐ๊ฒฐํ์ฌ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ - ๋ ํ ์ด๋ธ์ ์กฐ์ธ์ ํ๋ ค๋ฉด ์ต์ ํ๋์ ๊ณตํต๋ ์ปฌ๋ผ์ด ์์ด์ผ ํ๋ค. - ๊ทธ๋์ ์ผ๋ฐ์ ์ผ๋ก PK ์ FK ๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ์ธ์ ํ์ฉ ํ๋ค. JOIN ์ ๋ฐฉ๋ฒ 1) cross join : ๊ฑฐ์ ์์ด๋ค. 2) equi join : ์ ์ผ ๋ง์ด ์ฌ์ฉ 3) non-equi join : ์์ด๋ค. 4) self join : ๊ฑฐ์ ์์ด๋ค. 5) outer join : ๋ง์ด ์ฌ์ฉ ํ๋ค. 1. CROSS JOIN - ์นด๋ค์์ ๊ณฑ์ ์ํํ๋ค. - ๋ ๊ฐ์ ํ ์ด๋ธ์ ๊ณฑํ ํ์ ์ํํ๋ค. FROM [table A] CROSS JOIN [table B]; emp ํ ์ด๋ธ์ ename ํ(row)์ด 11๊ฐ dept ํ ์ด๋ธ์ deptno ํ(row)์ด 5๊ฐ 11 x 5 =.. 2022. 5. 6. DB] IN / EXSITS / ANY / ALL / limit IN & EXISTS 1. IN - '=' ๋น๊ต๋ง ๊ฐ๋ฅ, OR ์กฐ๊ฑด์ ๊ฒ์ ๊ฒฐ๊ณผ ๋ด์ฉ์ ๊ฐ์ ธ์จ๋ค. - ์๋ธ์ฟผ๋ฆฌ๊ฐ ๋จผ์ ์คํ๋๋ค. 2. EXISTS - ๊ธฐ๋ณธ์ ์ผ๋ก IN๊ณผ ๊ฐ์ผ๋ ์ฐธ / ๊ฑฐ์ง ๋ฐํ - ๋ฉ์ธ์ฟผ๋ฆฌ ๋น๊ต์กฐ๊ฑด์ด ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ ์ค์ '๋ง์กฑํ๋ ๊ฐ์ด ํ๋๋ผ๋ ์์ผ๋ฉด ์ฐธ(1)/๊ฑฐ์ง(0) ๋ฐํ - ๋ฉ์ธ์ฟผ๋ฆฌ๊ฐ ๋จผ์ ์คํ๋๋ค. ์ฒซ๋ฒ์งธ ์ฟผ๋ฆฌ๋ฌธ์ ๊ฒฐ๊ณผ๋ ๋ชจ๋ ๊ฐ์ด ๋ค ๋์๋ค. ์๋ธ์ฟผ๋ฆฌ์ ํด๋นํ๋ ๊ฐ์ด ์๋ค => exist๋ฅผ ๊ฑฐ์ณ '1'์ ๋ฐํ => ๊ฒฐ๊ตญ ๋๋ฒ์ฌ ์ฟผ๋ฆฌ๋ฌธ๊ณผ ๊ฐ์์ง๋ค. where ์ ์ 1์ด ๋ค์ด๊ฐ๋ฉด ์ฐธ => ๋ชจ๋ ๊ฐ์ ๋ณด์ฌ์ค๋ค. where ์ ์ 0์ด ๋ค์ด๊ฐ๋ฉด ๊ฑฐ์ง => ์๋ฌด ๊ฐ๋ ๋ณด์ฌ์ฃผ์ง ์๋๋ค. EXISTS ์ฌ์ฉ ๋ฐฉ๋ฒ 1) ๋ฉ์ธ์ฟผ๋ฆฌ๊ฐ ๋จผ์ ์คํ๋๋ค. 2) emp ์ ๋ชจ๋ ๊ฐ์ ๊ฐ์ ธ์ค๊ณ (๋ฉ์ธ์ฟผ๋ฆฌ) ๋ฑ.. 2022. 5. 6. DB] ์๋ธ์ฟผ๋ฆฌ , ์ํ๊ด๊ณ์ฟผ๋ฆฌ ์๋ธ์ฟผ๋ฆฌ๋? ์ฟผ๋ฆฌ ์์ ์ฟผ๋ฆฌ ์ฌ์ ์ ์ถ์ถ๋ ๋ด์ฉ์์ ์ฌ๊ฒ์ ํ๊ฑฐ๋, ๊ฒ์๋ ๋ด์ฉ์ ๊ฐ์ ์ปฌ๋ผ์ ๋ง๋ค์ด ์ถ๊ฐํ ์ ์์ ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ ์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. ์๋ธ์ฟผ๋ฆฌ๋ ํน๋ณํ ๋ฌธ๋ฒ์ด ์๋ค. ํด๊ฒฐํด์ผ ํ ๋ฌธ์ ๋ฅผ ๋จ๊ณ๋ณ๋ก ์ ์ด๋ณด๊ณ , ํ ์ด๋ธ ๊ฐ์ ์ฐ๊ด๊ด๊ณ( ๊ณตํต์ )๋ฅผ ์ฐพ์๋ณด๊ณ ์ฟผ๋ฆฌ๋ฌธ์ ์ ์ด๋ณด๋ฉด ๋๋ค. ๋ฌธ์ 1) han ์ ๊ทผ๋ฌด ๋ถ์ ์ด๋ฆ์ ์ฐพ์๋ผ. ๋ ๊ฐ์ ์ฟผ๋ฆฌ๋ฌธ์ ์๋ธ์ฟผ๋ฆฌ๋ก ํฉ์ณ๋ณธ๋ค. ์์ ์ฟผ๋ฆฌ๋ฌธ ์คํ๊ณผ ์๋ ์ฟผ๋ฆฌ๋ฌธ ์คํ์ ๊ฒฐ๊ณผ๊ฐ ๊ฐ๋ค. ๋ฌธ์ 2) ๋ถ์์์น๊ฐ LA ์ด๊ฑฐ๋ BOSTON ์ธ ๋ถ์์ ์ํ ์ฌ๋๋ค์ ์ด๋ฆ๊ณผ ์ง์ฑ ์? ALL / EXSITS ALL : ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ ์ค์์ ๋ชจ๋ ๊ฐ์ด ์ผ์นํ๋ฉด ์ฐธ ๋ฐํ EXSITS : ๊ธฐ๋ณธ์ ์ผ๋ก IN๊ณผ ๊ฐ์ผ๋ ์ฐธ/๊ฑฐ์ง ๋ฐํ ๋ฌธ์ 3) sales ๋ถ์์ ๊ทผ๋ฌดํ๋ ์ฌ์ ๋ฐ.. 2022. 5. 6. DB] ์ ์ฝ ์กฐ๊ฑด(constraint) 2 - ์ฐธ์กฐ ์ ์ฝ ์กฐ๊ฑด / ์ฐ๊ณ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ ์กฐ๊ฑด / ์ ๋ํฌ ์ ์ฝ ์กฐ๊ฑด / ์ฒดํฌ ์ ์ฝ ์กฐ๊ฑด ์ ์ฝ ์กฐ๊ฑด์ ํ ์ด๋ธ์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฝํ๋ ํน์ ๊ท์น์ผ๋ก ์ปฌ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ ๊ฒฝ์ฐ ํน์ ํ ์กฐ๊ฑด์ ๋ง์กฑ์์ผ์ผ ํ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค. ์ฆ, ์ง์ ๋ ์กฐ๊ฑด์ ๋ง์ง์์ผ๋ฉด ๋ฐ์ดํฐ ์ ๋ ฅ์ด ์๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ์ ์ ํ์ฑ์ด ์ ์ง๋๋ค. ๊ธฐ๋ณธ ํค ์ ์ฝ ์กฐ๊ฑด ( PK ) - primary key NOT NULL ์ฐธ์กฐ ์ ์ฝ ์กฐ๊ฑด (์ธ๋ํค, ์ฐธ์กฐํค , FK) - foreign key references ์ฐ๊ณ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ ์กฐ๊ฑด - on delete cascade ์ ๋ํฌ ์ ์ฝ ์กฐ๊ฑด ( ์ ๋ํฌ ํค, ํ๋ณด ํค) - unique ์ฒดํฌ ์ ์ฝ ์กฐ๊ฑด - check 1. ์ฐธ์กฐ ์ ์ฝ ์กฐ๊ฑด - ์ธ๋ ํค, ์ฐธ์กฐ ํค ๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค. FOREIGN KEY (FK) - ์ธ๋ ํค๋ก ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉด ๋ถ๋ชจ - ์์ ๊ด๊ณ๊ฐ ๋๋ค. - ๋ฐ๋ผ์ ๋ถ๋ชจ ํ ์ด.. 2022. 5. 6. DB] ํธ๋์ ์ (TRANSACTION) Transaction database ์์ ์ฌ์ฉ๋๋ ์ชผ๊ฐค ์ ์๋ ์ ๋ฌด ์ฒ๋ฆฌ์ ๋จ์. ALL or Nothing, ์์ ๋ด๋ถ์ ๊ณผ์ ์ด ํ๋๋ผ๋ ์๋ชป๋๋ฉด ๋ชจ๋ ์ทจ์๋์ด์ผ ํ๋ค. ์์) 5000๋ง์์ ์ก๊ธํ๋ ๊ณผ์ ์ '5000๋ง์์ A์ ๊ณ์ข์์ ์ถ๊ธ'ํ๊ณ 'B์ ๊ณ์ข์ ์ ๊ธ'ํ๋ 2๋ฒ์ ๊ณผ์ ์ผ๋ก ๋๋ ์ ธ์๋ค. ๋ง์ฝ 5000๋ง์์ด 'A์ ๊ณ์ข์์ ์ถ๊ธ'ํ๋ ๊ฒ ๊น์ง ์ฑ๊ณตํ์ผ๋ 'B์ ๊ณ์ข์ ์ ๊ธ'ํ๋ ๊ฒ์ ์คํจํ๊ฒ ๋๋ฉด ๊ทธ 5000๋ง์์ ์ด๋๋ก ๊ฐ๋์ง ์ ์ ์๊ฒ ๋๋ค. ๋ฐ๋ผ์ 5000๋ง์์ 'A์๊ฒ์ ์ถ๊ธ'ํ๋ ๊ฒ๊ณผ 'B์๊ฒ ์ ๊ธ'ํ๋ ๊ฒ์ ํธ๋์ ์ ์ผ๋ก ๋ฌถ์ด ํ ๋ฒ์ ์ฒ๋ฆฌํด์ผ ์์ ํ๋ค. ์ด ๋ ์ฌ์ฉ๋๋ ๊ฒ์ด rollback ๊ณผ commit ์ด๋ค. ์ ๊ธ ์คํจ ํ๋ฉด ์ถ๊ธ๊น์ง rollback, ์ถ๊ธ๊ณผ ์ ๊ธ ๋ชจ๋ .. 2022. 5. 2. DB] ์ ์ฝ ์กฐ๊ฑด(constraint) 1 - ๊ธฐ๋ณธ ํค ์ ์ฝ ์กฐ๊ฑด / NOT NULL ์ ์ฝ ์กฐ๊ฑด์ ํ ์ด๋ธ์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฝํ๋ ํน์ ๊ท์น์ผ๋ก ์ปฌ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ ๊ฒฝ์ฐ ํน์ ํ ์กฐ๊ฑด์ ๋ง์กฑ์์ผ์ผ ํ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค. ์ฆ, ์ง์ ๋ ์กฐ๊ฑด์ ๋ง์ง์์ผ๋ฉด ๋ฐ์ดํฐ ์ ๋ ฅ์ด ์๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ์ ์ ํ์ฑ์ด ์ ์ง๋๋ค. ๊ธฐ๋ณธ ํค ์ ์ฝ ์กฐ๊ฑด ( PK ) - primary key NOT NULL ์ฐธ์กฐ ์ ์ฝ ์กฐ๊ฑด (์ธ๋ํค, ์ฐธ์กฐํค , FK) - foreign key references ์ฐ๊ณ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ ์กฐ๊ฑด - on delete cascade ์ ๋ํฌ ์ ์ฝ ์กฐ๊ฑด ( ์ ๋ํฌ ํค, ํ๋ณด ํค) - unique ์ฒดํฌ ์ ์ฝ ์กฐ๊ฑด - check 1. ๊ธฐ๋ณธ ํค ์ ์ฝ ์กฐ๊ฑด (Primary Key, PK) - ํ ์ด๋ธ ๋น 1๊ฐ๋ง ์กด์ฌ - ์ค๋ณต ํ์ฉ ์ํจ, NULL ํ์ฉ ์ํจ - ํ ๊ฐ์ ์ปฌ๋ผ์ ์ง์ ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด์ง๋ง.. 2022. 4. 28. ์ด์ 1 2 ๋ค์