๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ๊ณผ ๋ ์ฝ๋๋ค์ ๋์คํฌ์ ์ ์ฅ๋๋ค
- ์ด์์ฒด์ ๊ฐ ๊ด๋ฆฌํ๋ ํ์ผ ์์คํ ์ ์ด์ฉ
ํ ์ด๋ธ์ ๋ฌผ๋ฆฌ์ ์ ์ฅ ๊ตฌ์กฐ
ํ์ผ : ํ๋ ์ด์์ ํ ์ด๋ธ๋ค์ ์ ์ฅ
๋ธ๋ก : ํ๋ ์ด์์ ๋ ์ฝ๋๋ค์ ์ ์ฅ, ๊ฐ ๋ธ๋ก์ ํ๋์ ํ ์ด๋ธ์ ์ํจ
๋ธ๋ก ๋ด ๋ ์ฝ๋ ์ ์ฅ ๋ฐฉ์
- ํ ์ด๋ธ์ ์ ์์ ๋ฐ๋ผ ๊ณ ์ ๊ธธ์ด ๋๋ ๊ฐ๋ณ๊ธธ์ด์ ๋ ์ฝ๋๋ค์ ์ ์ฅ
์) ๊ณ ์ ๊ธธ์ด
create table course (
course_id char(4),
title char(20),
credit int
)
์) ๊ฐ๋ณ๊ธธ์ด
create table course (
course_id char(4),
title varchar2(20),
credit int
)
ํด๋ฌ์คํฐ๋ง
โ ์์ฃผ ๊ฒ์๋๋ ํ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ด๋ จ๋ ๋ ์ฝ๋๋ค์ ๊ฐ์ ๋ธ๋ก์ด๋ ์ธ ์ ํ ๋ธ๋ก์ ์ ์ฅํ์ฌ ๊ฒ์ ์ฑ๋ฅ์ ๋์ด๋ ๋ฐฉ๋ฒ
์ธ๋ฑ์ค(index)
์ฌ์ฉ ๋ชฉ์
- ํ์ผ ๋ด์์ ๋ ์ฝ๋๊ฐ ์ ์ฅ๋ ์์น๋ฅผ ๋นจ๋ฆฌ ์ฐพ๊ธฐ ์ํด ์ฌ์ฉ
โ ๊ฒ์ ์๋ ํฅ์
- ์ธ๋ฑ์ค๊ฐ ์์ผ๋ฉด ์ด๋ ์์น์ ์๋์ง ์ ์ ์์ผ๋ฏ๋ก ๋ชจ๋ ๋ ์ฝ๋๋ค์ ์์ฐจ์ ์ผ๋ก ๊ฒ์ํด์ผํจ
์) ๋์๊ด์ ์ฑ ๊ฒ์, ์ ํ๋ฒํธ๋ถ์ ๊ฒ์
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ธ๋ฑ์ค
- ๋ ์ฝ๋์ ๋ํ ๋ฌผ๋ฆฌ์ ์ ์ฅ ์์น๋ฅผ ๋ณ๋๋ก ๊ธฐ๋ก
์ธ๋ฑ์ค์ ๊ตฌ์กฐ → ์ธ๋ฑ์ค ์ํธ๋ฆฌ : (๊ฒ์ ํค, ์ฃผ์) ์
SQL ์ธ๋ฑ์ค
์) student ํ ์ด๋ธ์ ๋ ์ฝ๋ ์๊ฐ 10000๊ฐ, dept_id ๊ฐ์ด '920'์ธ ๋ ์ฝ๋์ ์๋ 500๊ฐ๋ผ๊ณ ๊ฐ์
select *
from student
where dept_id = ‘920’ and address = ‘์์ธ’
โ ์ธ๋ฑ์ค๊ฐ ์์ ๊ฒฝ์ฐ : ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ์์ฐจ ๊ฒ์ํด์ผ ํจ → 10000๊ฐ์ ๋ ์ฝ๋๋ฅผ ๋ชจ๋ ๊ฒ์
โ dept_id ํ๋์ ์ธ๋ฑ์ค๊ฐ ์์ ๊ฒฝ์ฐ : dept_id๊ฐ '920'์ธ ๋ ์ฝ๋๋ค๋ง ๊ฒ์ ๊ฐ๋ฅ → 500๊ฐ์ ๋ ์ฝ๋๋ง์ ๊ฒ์
์กฐ์ธ ์ฐ์ฐ์ ํจ์จ์ ์ธ ์ฒ๋ฆฌ
์) student ํ ์ด๋ธ์ ๋ ์ฝ๋ ์๊ฐ 10000๊ฐ, department ํ ์ด๋ธ์ ๋ ์ฝ๋ ์๊ฐ 100๊ฐ๋ผ๊ณ ๊ฐ์
select count(*)
from student s, department d
where address = ‘์์ธ’ and s.dept_id = d.dept_id
โ ์ธ๋ฑ์ค๊ฐ ์์ ๊ฒฝ์ฐ : ์กฐ์ธ ์ฒ๋ฆฌ๋ฅผ ์ํด, department ํ ์ด๋ธ์ ๊ฐ ๋ ์ฝ๋์ ๋ํด student ํ ์ด๋ธ์ ๋ชจ๋ ๋ ์ฝ๋๋ค์ ์์ฐจ์ ์ผ๋ก ์กฐํํ์ฌ ๋น๊ต, ์๊ฐ ๋น์ฉ์ด ๋ ํ ์ด๋ธ์ ๋ ์ฝ๋ ์์ ๊ณฑ์ ๋น๋ก
- student ํ ์ด๋ธ์ dept_id ํ๋์ ๋ํ ์ธ๋ฑ์ค๊ฐ ๊ตฌ์ถ๋์๋ค๊ณ ๊ฐ์ ํ๋ฉด ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅ
- department ํ ์ด๋ธ์ ์์ฐจ์ ์ผ๋ก ๊ฒ์ํ๋ฉด์, ๊ฐ ๋ ์ฝ๋์ dept_id ๊ฐ์ ๋ํด ์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ student ํ ์ด๋ธ์ ๋์๋๋ ๋ ์ฝ๋๋ฅผ ์ง์ ์กฐํ
- ๊ฒ์๋ ๋ ์ฝ๋ ์ค์์ address ํ๋ ๊ฐ์ด '์์ธ' ์ธ ๋ ์ฝ๋๋ง ์ ํ
- ์๊ฐ ๋น์ฉ : ๋ ํ ์ด๋ธ์ ๋ ์ฝ๋ ์์ ํฉ๊ณผ ๋น๋ก 10000+100
์)
select dept_id, count(*)
from student
group by dept_id
์ธ๋ฑ์ค๊ฐ ์์ ๊ฒฝ์ฐ : student ํ ์ด๋ธ์ ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ์กฐํํด์ผ ํจ
student ํ ์ด๋ธ์ dept_id ํ๋์ ๋ํ ์ธ๋ฑ์ค๊ฐ ์์ ๊ฒฝ์ฐ :
- ์ธ๋ฑ์ค์์ ๊ฐ dept_id ๊ฐ์ ๋ํ ์ธ๋ฑ์ค ์ํธ๋ฆฌ์ ๊ฐ์๋ฅผ ์ธ๋ฉด ๋๋ค
- ํ ์ด๋ธ์ ์ ๊ทผํ์ง ์๊ณ ์ธ๋ฑ์ค๋ง์ผ๋ก ์ง์ ์ฒ๋ฆฌ ๊ฐ๋ฅ
๊ธฐ๋ณธํค์ ์ธ๋ฑ์ค
โฝ ๊ธฐ๋ณธํค
- ๋ ์ฝ๋์ ๊ฒ์, ์ฝ์ , ์ญ์ ์ ๋น๋ฒํ๊ฒ ์กฐํ๋จ
- ๊ธฐ๋ณธํค์ ๋ํด์๋ ๋๋ถ๋ถ์ DBMS๊ฐ ์๋์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ์์ฑ
โฝ ์ธ๋ฑ์ค์ ์ฅ์
- ๊ฒ์ ์ฑ๋ฅ ํฅ์
โฝ ์ธ๋ฑ์ค์ ๋จ์
- ํ ์ด๋ธ์ ๋ ์ฝ๋๋ฅผ ์ฝ์ , ์ญ์ , ์์ ์ ์ธ๋ฑ์ค๋ ๊ฐฑ์ ํ์
- ์ธ๋ฑ์ค์ ๊ฐ์๊ฐ ๋ง์ผ๋ฉด ์ฝ์ , ์ญ์ , ์์ ์ฐ์ฐ ์๋๊ฐ ์ ํ๋จ
- ์ธ๋ฑ์ค๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ๋์คํฌ ๊ณต๊ฐ ํ์
โ ์ง์ ์๊ฐ ๋ฐ ๋น๋, ์ฝ์ /์ญ์ /์์ ์๊ฐ ๋ฐ ๋น๋, ์ ์ฅ ๊ณต๊ฐ์ ํฌ๊ธฐ ๋ฑ์ ์ข ํฉ์ ์ผ๋ก ๊ณ ๋ คํ์ฌ ๊ฒฐ์ ํด์ผ ํจ