2-3-3. DDL
Last updated
Was this helpful?
Last updated
Was this helpful?
ํ ์ด๋ธ์ ์ผ์ ํ ํ์์ ์ํด์ ์์ฑ๋๋ค. ํ ์ด๋ธ ์์ฑ์ ์ํด์๋ ํด๋น ํ ์ด๋ธ์ ์ ๋ ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ํ๊ณ , ์ ์ํ ๋ฐ์ดํฐ๋ฅผ ์ด๋ ํ ๋ฐ์ดํฐ ์ ํ์ผ๋ก ์ ์ธํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํด์ผ ํ๋ค.
ํ ์ด๋ธ์ ์กด์ฌํ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ณ ์ ํ๊ฒ ์๋ณํ ์ ์์ผ๋ฉด์ ๋ฐ๋์ ๊ฐ์ด ์กด์ฌํ๋ ๋จ์ผ ์นผ๋ผ์ด๋ ์นผ๋ผ์ ์กฐํฉ๋ค(ํ๋ณดํค) ์ค์ ํ๋๋ฅผ ์ ์ ํ์ฌ ๊ธฐ๋ณธํค ์นผ๋ผ์ผ๋ก ์ง์ ํ๋ค. ์ ์ ํ ์ด๋ธ์ ์๋ก ๋ค๋ฉด '์ ์ID' ์นผ๋ผ์ด ๊ธฐ๋ณธํค๋ก ์ ๋นํ ๊ฒ์ด๋ค. ๊ธฐ๋ณธํค๋ ๋จ์ผ ์นผ๋ผ์ด ์๋ ์ฌ๋ฌ ๊ฐ์ ์นผ๋ผ์ผ๋ก๋ ๋ง๋ค์ด์ง ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ํ ์ด๋ธ๊ณผ ํ ์ด๋ธ ๊ฐ์ ์ ์๋ ๊ด๊ณ๋ ๊ธฐ๋ณธํค(PRIMARY KEY)์ ์ธ๋ถํค(FOREIGN KEY)๋ฅผ ํ์ฉํด์ ์ค์ ํ๋๋ก ํ๋ค. ์ ์ ํ ์ด๋ธ์ ์ ์์ ์์ํ ์ ๋ณด๊ฐ ๊ฐ์ด ์กด์ฌํ๋ค๊ณ ๊ฐ์ ํ๋ฉด, ํน์ ํ์ ์ด๋ฆ์ด ๋ณ๊ฒฝ๋์์ ๊ฒฝ์ฐ ๊ทธ ํ์ ์์๋ ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ผ์ผ์ด ์ฐพ์์ ์์ ์ ํ๊ฑฐ๋, ๋ํ ํ์ด ํด์ฒด๋์์ ๊ฒฝ์ฐ ์ ์ ๊ด๋ จ ์ ๋ณด๊น์ง ์ญ์ ๋๋ ์์ /์ญ์ ์ด์(Anomaly) ํ์์ด ๋ฐ์ํ ์ ์๋ค. ์ด๋ฐ ์ด์ ํ์์ ๋ฐฉ์งํ๊ธฐ ์ํด ํ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ๋ ํ ํ ์ด๋ธ์ ๋ณ๋๋ก ๋ถ๋ฆฌํด์ ํID์ ํ ์ด๋ฆ์ ์ ์ฅํ๊ณ , ์ ์ ํ ์ด๋ธ์์๋ ํID๋ฅผ ์ธ๋ถํค๋ก ์ฐธ์กฐํ๊ฒ ํ๋ค. ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๋ฐ ์ ๊ทํ์ ๋ํ ๋ด์ฉ์ ์ ๋ฌด๋ฅผ ๊ฐ์ ์ํฌ ์ ์๋ ๊ณ ๊ธ SQL์ ์์ฑํ๋๋ฐ ํ์ํ ๋ด์ฉ์ด๋ฏ๋ก ์ด ๋ถ๋ถ๋ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ์ ํ์ตํ ๊ฒ์ ๊ถ๊ณ ํ๋ค.
์๋๋ ์ ์ ์ ๋ณด์ ํจ๊ป K-๋ฆฌ๊ทธ์ ๊ด๋ จ ์๋ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ค๋ ๊ฐ์ด ์ดํด๋ณธ ๋ด์ฉ์ด๋ค.
K-๋ฆฌ๊ทธ์๋ ๋ณ๊ฐ๋ก ํ์ฌ์ ๋ถ์์ ์ฌ์ ํ ์ด๋ธ์ ์นผ๋ผ๋ค๋ ์ ๋ฆฌํ๋ค.
ํ ์ด๋ธ์ ์์ฑํ๋ ๊ตฌ๋ฌธ ํ์์ ๋ค์๊ณผ ๊ฐ๋ค.
๋ค์์ ํ ์ด๋ธ ์์ฑ ์์ ์ฃผ์ํด์ผ ํ ๋ช ๊ฐ์ง ๊ท์น์ด๋ค.
ํ ์ด๋ธ๋ช ์ ๊ฐ์ฒด๋ฅผ ์๋ฏธํ ์ ์๋ ์ ์ ํ ์ด๋ฆ์ ์ฌ์ฉํ๋ค. ๊ฐ๋ฅํ ๋จ์ํ์ ๊ถ๊ณ ํ๋ค.
ํ ์ด๋ธ ๋ช ์ ๋ค๋ฅธ ํ ์ด๋ธ์ ์ด๋ฆ๊ณผ ์ค๋ณต๋์ง ์์์ผ ํ๋ค.
ํ ํ ์ด๋ธ ๋ด์์๋ ์นผ๋ผ๋ช ์ด ์ค๋ณต๋๊ฒ ์ง์ ๋ ์ ์๋ค.
ํ ์ด๋ธ ์ด๋ฆ์ ์ง์ ํ๊ณ ๊ฐ ์นผ๋ผ๋ค์ ๊ดํธ "( )" ๋ก ๋ฌถ์ด ์ง์ ํ๋ค.
๊ฐ ์นผ๋ผ๋ค์ ์ฝค๋ง ","๋ก ๊ตฌ๋ถ๋๊ณ , ํ ์ด๋ธ ์์ฑ๋ฌธ์ ๋์ ํญ์ ์ธ๋ฏธ์ฝ๋ก ";"์ผ๋ก ๋๋๋ค.
์นผ๋ผ์ ๋ํด์๋ ๋ค๋ฅธ ํ ์ด๋ธ๊น์ง ๊ณ ๋ คํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์์๋ ์ผ๊ด์ฑ ์๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.(๋ฐ์ดํฐ ํ์คํ ๊ด์ )
์นผ๋ผ ๋ค์ ๋ฐ์ดํฐ ์ ํ์ ๊ผญ ์ง์ ๋์ด์ผ ํ๋ค.
ํ ์ด๋ธ๋ช ๊ณผ ์นผ๋ผ๋ช ์ ๋ฐ๋์ ๋ฌธ์๋ก ์์ํด์ผ ํ๊ณ , ๋ฒค๋๋ณ๋ก ๊ธธ์ด์ ๋ํ ํ๊ณ๊ฐ ์๋ค.
๋ฒค๋์์ ์ฌ์ ์ ์ ์ํ ์์ฝ์ด(Reserved word)๋ ์ธ ์ ์๋ค.
A-Z, a-z, 0-9, _, $, # ๋ฌธ์๋ง ํ์ฉ๋๋ค.
ํ ์ด๋ธ๋ช ์ด ์๋ชป๋ ์ฌ๋ก
ํ ํ ์ด๋ธ ์์์ ์นผ๋ผ ์ด๋ฆ์ ๋ฌ๋ผ์ผ ํ์ง๋ง, ๋ค๋ฅธ ํ ์ด๋ธ์ ์นผ๋ผ ์ด๋ฆ๊ณผ๋ ๊ฐ์ ์ ์๋ค. ์๋ฅผ ๋ค๋ฉด ์ ์ ํ ์ด๋ธ์ TEAM_ID, ํ ํ ์ด๋ธ์ TEAM_ID๋ ๊ฐ์ ์นผ๋ผ ์ด๋ฆ์ ๊ฐ์ง๊ณ ์๋ค. ์ค์ DBMS๋ ํ ํ ์ด๋ธ์ TEAM_ID๋ฅผ PC๋ UNIX์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ฒ๋ผ 'DB๋ช +DB์ฌ์ฉ์๋ช +ํ ์ด๋ธ๋ช +์นผ๋ผ๋ช '์ฒ๋ผ ๊ณ์ธต์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์ ์ฒด ๊ฒฝ๋ก๋ก ๊ด๋ฆฌํ๊ณ ์๋ค. ์ด์ฒ๋ผ ๊ฐ์ ์ด๋ฆ์ ๊ฐ์ง ์นผ๋ผ๋ค์ ๊ธฐ๋ณธํค์ ์ธ๋ํค์ ๊ด๊ณ๋ฅผ ๊ฐ์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฉฐ, ํฅํ ํ ์ด๋ธ ๊ฐ์ ์กฐ์ธ ์กฐ๊ฑด์ผ๋ก ์ฃผ๋ก ์ฌ์ฉ๋๋ ์ค์ํ ์ฐ๊ฒฐ๊ณ ๋ฆฌ ์นผ๋ผ๋ค์ด๋ค.
[์์ ] ๋ค์ ์กฐ๊ฑด์ ํํ๋ก ํ ํ ์ด๋ธ์ ์์ฑํ๋ค.
[์์ ] Oracle
ํ ์ด๋ธ์ด ์์ฑ๋์๋ค.
[์์ ] SQL Server
ํ ์ด๋ธ์ด ์์ฑ๋์๋ค.
[์์ ] ๋ค์ ์กฐ๊ฑด์ ํํ๋ก ์ ์ ํ ์ด๋ธ์ ์์ฑํ๋ค.
[์์ ] Oracle
ํ ์ด๋ธ์ด ์์ฑ๋์๋ค.
[์์ ] SQL Server
ํ ์ด๋ธ์ด ์์ฑ๋์๋ค.
ํ ์ด๋ธ ์์ฑ ์์ ์์ ์ถ๊ฐ์ ์ธ ์ฃผ์ ์ฌํญ ๋ช ๊ฐ์ง๋ฅผ ํ์ธํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
ํ ์ด๋ธ ์์ฑ์ ๋/์๋ฌธ์ ๊ตฌ๋ถ์ ํ์ง ์๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํ ์ด๋ธ์ด๋ ์นผ๋ผ๋ช ์ ๋๋ฌธ์๋ก ๋ง๋ค์ด์ง๋ค.
DATETIME ๋ฐ์ดํฐ ์ ํ์๋ ๋ณ๋๋ก ํฌ๊ธฐ๋ฅผ ์ง์ ํ์ง ์๋๋ค.
๋ฌธ์ ๋ฐ์ดํฐ ์ ํ์ ๋ฐ๋์ ๊ฐ์ง ์ ์๋ ์ต๋ ๊ธธ์ด๋ฅผ ํ์ํด์ผ ํ๋ค.
์นผ๋ผ๊ณผ ์นผ๋ผ์ ๊ตฌ๋ถ์ ์ฝค๋ง๋ก ํ๋, ๋ง์ง๋ง ์นผ๋ผ์ ์ฝค๋ง๋ฅผ ์ฐ์ง ์๋๋ค.
์นผ๋ผ์ ๋ํ ์ ์ฝ์กฐ๊ฑด์ด ์์ผ๋ฉด CONSTRAINT๋ฅผ ์ด์ฉํ์ฌ ์ถ๊ฐํ ์ ์๋ค.
์ ์ฝ์กฐ๊ฑด์ PLAYER_NAME, TEAM_ID ์นผ๋ผ์ ๋ฐ์ดํฐ ์ ํ ๋ค์ NOT NULL์ ์ ์ํ ์ฌ๋ก์ ๊ฐ์ ์นผ๋ผ LEVEL ์ ์ ๋ฐฉ์๊ณผ, PLAYER_PK PRIMARY KEY, PLAYER_FK FOREIGN KEY ์ฌ๋ก์ฒ๋ผ ํ ์ด๋ธ ์์ฑ ๋ง์ง๋ง์ ๋ชจ๋ ์ ์ฝ์กฐ๊ฑด์ ๊ธฐ์ ํ๋ ํ ์ด๋ธ LEVEL ์ ์ ๋ฐฉ์์ด ์๋ค. ํ๋์ SQL ๋ฌธ์ฅ ๋ด์์ ๋ ๊ฐ์ง ๋ฐฉ์์ ํผ์ฉํด์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ๊ฐ์ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ค.
์ ์ฝ์กฐ๊ฑด(CONSTRAINT)์ด๋ ์ฌ์ฉ์๊ฐ ์ํ๋ ์กฐ๊ฑด์ ๋ฐ์ดํฐ๋ง ์ ์งํ๊ธฐ ์ํ ์ฆ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๊ธฐ ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณดํธ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ํ ์ด๋ธ์ ํน์ ์นผ๋ผ์ ์ค์ ํ๋ ์ ์ฝ์ด๋ค. ํ ์ด๋ธ์ ์์ฑํ ๋ ์ ์ฝ์กฐ๊ฑด์ ๋ฐ๋์ ๊ธฐ์ ํ ํ์๋ ์์ง๋ง, ์ดํ์ ALTER TABLE์ ์ด์ฉํด์ ์ถ๊ฐ, ์์ ํ๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๊ฐ ์ด๋ฏธ ์ ๋ ฅ๋ ๊ฒฝ์ฐ๋ผ๋ฉด ์ฒ๋ฆฌ ๊ณผ์ ์ด ์ฝ์ง ์์ผ๋ฏ๋ก ์ด๊ธฐ ํ ์ด๋ธ ์์ฑ ์์ ๋ถํฐ ์ ํฉํ ์ ์ฝ ์กฐ๊ฑด์ ๋ํ ์ถฉ๋ถํ ๊ฒํ ๊ฐ ์์ด์ผ ํ๋ค.
์ ์ฝ์กฐ๊ฑด์ ์ข ๋ฅ
NULL ์๋ฏธ
NULL(ASCII ์ฝ๋ 00๋ฒ)์ ๊ณต๋ฐฑ(BLANK, ASCII ์ฝ๋ 32๋ฒ)์ด๋ ์ซ์ 0(ZERO, ASCII 48)๊ณผ๋ ์ ํ ๋ค๋ฅธ ๊ฐ์ด๋ฉฐ, ์กฐ๊ฑด์ ๋ง๋ ๋ฐ์ดํฐ๊ฐ ์์ ๋์ ๊ณต์งํฉ๊ณผ๋ ๋ค๋ฅด๋ค. 'NULL'์ '์์ง ์ ์๋์ง ์์ ๋ฏธ์ง์ ๊ฐ'์ด๊ฑฐ๋ 'ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ'๋ฅผ ์๋ฏธํ๋ค.
DEFAULT ์๋ฏธ
๋ฐ์ดํฐ ์ ๋ ฅ ์ ์นผ๋ผ๊ฐ์ ์ง์ ํ์ง ์์ ๊ฒฝ์ฐ์ NULL ๊ฐ์ด ์ ๋ ฅ๋๋ค. ํ์ง๋ง ์ฌ์ ์ DEFAULT ๊ฐ์ ์ ์ํ๋ค๋ฉด ํด๋น ์นผ๋ผ์ NULL ๊ฐ์ด ์ ๋ ฅ๋์ง ์๊ณ ์ฌ์ ์ ์ ์๋ ๊ธฐ๋ณธ ๊ฐ์ด ์๋์ผ๋ก ์ ๋ ฅ๋๋ค.
ํ ์ด๋ธ์ ์์ฑํ ํ ํ ์ด๋ธ์ ๊ตฌ์กฐ๊ฐ ์ ๋๋ก ๋ง๋ค์ด์ก๋์ง ํ์ธํ ํ์๊ฐ ์๋ค. Oracle์ ๊ฒฝ์ฐ "DESCRIBE ํ ์ด๋ธ๋ช ;" ๋๋ ๊ฐ๋ตํ "DESC ํ ์ด๋ธ๋ช ;"์ผ๋ก ํด๋น ํ ์ด๋ธ์ ๋ํ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์๋ค. SQL Server์ ๊ฒฝ์ฐ "sp_help 'dbo.ํ ์ด๋ธ๋ช '"์ผ๋ก ํด๋น ํ ์ด๋ธ์ ๋ํ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์๋ค.
[์์ ] ์ ์(PLAYER) ํ ์ด๋ธ์ ๊ตฌ์กฐ๋ฅผ ํ์ธํ๋ค.
[์คํ ๊ฒฐ๊ณผ] Oracle
PLAYER_ID
NOT NULL
CHAR(7)
PLAYER_NAME
NOT NULL
VARCHAR2(20)
TEAM_ID
NOT NULL
CHAR(3)
E_PLAYER_NAME
VARCHAR2(40)
NICKNAME
VARCHAR2(30)
JOIN_YYYY
CHAR(4)
POSITION
VARCHAR2(10)
BACK_NO
NUMBER(2)
NATION
VARCHAR2(20)
BIRTH_DATE
DATE
SOLAR
CHAR(1)
HEIGHT
NUMBER(3)
WEIGHT
NUMBER(3)
13 ๊ฐ์ ํ์ด ์ ํ๋์์ต๋๋ค.
[์คํ ๊ฒฐ๊ณผ] SQL Server
PLAYER_ID
CHAR(7)
7
NO
PLAYER_NAME
VARCHAR(20)
20
NO
TEAM_ID
CHAR(3)
3
NO
E_PLAYER_NAME
VARCHAR(40)
40
YES
NICKNAME
VARCHAR(30)
30
YES
JOIN_YYYY
CHAR(4)
4
YES
POSITION
VARCHAR(10)
10
YES
BACK_NO
TINYINT
1
YES
NATION
VARCHAR(20)
20
YES
BIRTH_DATE
DATE
3
YES
SOLAR
CHAR(1)
1
YES
HEIGHT
SMALLINT
2
YES
WEIGHT
SMALLINT
2
YES
13 ๊ฐ์ ํ์ด ์ ํ๋์์ต๋๋ค.
๋ค์ ์ ์์ ๋ฐฐ์ธ DML ๋ฌธ์ฅ ์ค์ SELECT ๋ฌธ์ฅ์ ํ์ฉํด์ ํ ์ด๋ธ์ ์์ฑํ ์ ์๋ ๋ฐฉ๋ฒ(CTAS: CREATE TABLE ~ As SELECT ~)์ด ์๋ค. ๊ธฐ์กด ํ ์ด๋ธ์ ์ด์ฉํ CTAS ๋ฐฉ๋ฒ์ ์ด์ฉํ ์ ์๋ค๋ฉด ์นผ๋ผ๋ณ๋ก ๋ฐ์ดํฐ ์ ํ์ ๋ค์ ์ฌ์ ์ ํ์ง ์์๋ ๋๋ ์ฅ์ ์ด ์๋ค. ๊ทธ๋ฌ๋ CTAS ๊ธฐ๋ฒ ์ฌ์ฉ์ ์ฃผ์ํ ์ ์ ๊ธฐ์กด ํ ์ด๋ธ์ ์ ์ฝ์กฐ๊ฑด ์ค์ NOT NULL๋ง ์๋ก์ด ๋ณต์ ํ ์ด๋ธ์ ์ ์ฉ์ด ๋๊ณ , ๊ธฐ๋ณธํค, ๊ณ ์ ํค, ์ธ๋ํค, CHECK ๋ฑ์ ๋ค๋ฅธ ์ ์ฝ ์กฐ๊ฑด์ ์์ด์ง๋ค๋ ์ ์ด๋ค. ์ ์ฝ ์กฐ๊ฑด์ ์ถ๊ฐํ๊ธฐ ์ํด์๋ ๋ค์ ๋์ค๋ ALTER TABLE ๊ธฐ๋ฅ์ ์ฌ์ฉํด์ผ ํ๋ค. SQL Server์์๋ SELECT ~ Into ~ ๋ฅผ ํ์ฉํ์ฌ ์์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค. ๋จ, ์นผ๋ผ ์์ฑ์ Identity๋ฅผ ์ฌ์ฉํ๋ค๋ฉด Identity ์์ฑ๊น์ง ๊ฐ์ด ์ ์ฉ์ด ๋๋ค.
[์์ ] ์ ์(PLAYER) ํ ์ด๋ธ๊ณผ ๊ฐ์ ๋ด์ฉ์ผ๋ก TEAM_TEMP๋ผ๋ ๋ณต์ฌ ํ ์ด๋ธ์ ๋ง๋ค์ด ๋ณธ๋ค.
[์์ ] Oracle
ํ ์ด๋ธ์ด ์์ฑ๋์๋ค.
[์คํ ๊ฒฐ๊ณผ] Oracle
TEAM_ID
NOT NULL
CHAR(3)
REGION_NAME
NOT NULL
VARCHAR2(4)
TEAM_NAME
NOT NULL
VARCHAR2(40)
E_TEAM_NAME
VARCHAR2(50)
ORIG_YYYY
CHAR(4)
STADIUM_ID
NOT NULL
CHAR(3)
ZIP_CODE1
CHAR(3)
ZIP_CODE2
CHAR(3)
ADDRESS
VARCHAR2(80)
DDD
VARCHAR2(3)
TEL
VARCHAR2(10)
FAX
VARCHAR2(10)
HOMEPAGE
VARCHAR2(50)
OWNER
VARCHAR2(10)
14 ๊ฐ์ ํ์ด ์ ํ๋์์ต๋๋ค.
[์์ ] SQL Server
(1๊ฐ ํ์ด ์ํฅ์ ๋ฐ์)
[์คํ ๊ฒฐ๊ณผ] SQL Server
TEAM_ID
CHAR(3)
3
NO
REGION_NAME
VARCHAR(8)
8
NO
TEAM_NAME
VARCHAR(40)
40
NO
E_TEAM_NAME
VARCHAR(50)
50
YES
ORIG_YYYY
CHAR(4)
4
YES
STADIUM_ID
CHAR(3)
3
NO
ZIP_CODE1
CHAR(3)
3
YES
ZIP_CODE2
CHAR(3)
3
YES
ADDRESS
VARCHAR(80)
80
YES
DDD
VARCHAR(3)
3
YES
TEL
VARCHAR(10)
10
YES
FAX
VARCHAR(10)
10
YES
HOMEPAGE
VARCHAR(50)
50
YES
OWNER
VARCHAR(10)
10
YES
14 ๊ฐ์ ํ์ด ์ ํ๋์์ต๋๋ค.
ํ ๋ฒ ์์ฑ๋ ํ ์ด๋ธ์ ํน๋ณํ ์ฌ์ฉ์๊ฐ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ ๊น์ง ์์ฑ ๋น์์ ๊ตฌ์กฐ๋ฅผ ์ ์งํ๊ฒ ๋๋ค. ์ฒ์์ ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋๋ก ์ ์งํ๋ ๊ฒ์ด ์ต์ ์ด์ง๋ง, ์ ๋ฌด์ ์ธ ์๊ตฌ ์ฌํญ์ด๋ ์์คํ ์ด์์ ํ ์ด๋ธ์ ์ฌ์ฉํ๋ ๋์ค์ ๋ณ๊ฒฝํด์ผ ํ ์ผ๋ค์ด ๋ฐ์ํ ์๋ ์๋ค. ์ด ๊ฒฝ์ฐ ์ฃผ๋ก ์นผ๋ผ์ ์ถ๊ฐ/์ญ์ ํ๊ฑฐ๋ ์ ์ฝ์กฐ๊ฑด์ ์ถ๊ฐ/์ญ์ ํ๋ ์์ ์ ์งํํ๊ฒ ๋๋ค.
๋ค์์ ๊ธฐ์กด ํ ์ด๋ธ์ ํ์ํ ์นผ๋ผ์ ์ถ๊ฐํ๋ ๋ช ๋ น์ด๋ค.
์ฃผ์ํ ๊ฒ์ ์๋กญ๊ฒ ์ถ๊ฐ๋ ์นผ๋ผ์ ํ ์ด๋ธ์ ๋ง์ง๋ง ์นผ๋ผ์ด ๋๋ฉฐ ์นผ๋ผ์ ์์น๋ฅผ ์ง์ ํ ์๋ ์๋ค.
[์์ ] PLAYER ํ ์ด๋ธ์ ADDRESS(๋ฐ์ดํฐ ์ ํ์ ๊ฐ๋ณ ๋ฌธ์๋ก ์๋ฆฟ์ 80์๋ฆฌ๋ก ์ค์ ํ๋ค.) ์นผ๋ผ์ ์ถ๊ฐํ๋ค.
[์์ ] Oracle
ํ ์ด๋ธ์ด ๋ณ๊ฒฝ๋์๋ค.
[์คํ ๊ฒฐ๊ณผ] Oracle
PLAYER_ID
NOT NULL
CHAR(7)
PLAYER_NAME
NOT NULL
VARCHAR2(20)
TEAM_ID
NOT NULL
CHAR(3)
E_PLAYER_NAME
VARCHAR2(40)
NICKNAME
VARCHAR2(30)
JOIN_YYYY
CHAR(4)
POSITION
VARCHAR2(10)
BACK_NO
NUMBER(2)
NATION
VARCHAR2(20)
BIRTH_DATE
DATE
SOLAR
CHAR(1)
HEIGHT
NUMBER(3)
WEIGHT
NUMBER(3)
ADDRESS
โ ์ถ๊ฐ๋ ์ด
VARCHAR2(80)
14 ๊ฐ์ ํ์ด ์ ํ๋์์ต๋๋ค.
[์์ ] SQL Server
๋ช ๋ น์ด ์๋ฃ๋์๋ค.
[์คํ ๊ฒฐ๊ณผ] SQL Server
PLAYER_ID
CHAR(7)
7
NO
PLAYER_NAME
VARCHAR(20
20
NO
TEAM_ID
CHAR(3)
3
NO
E_PLAYER_NAME
VARCHAR(40)
40
YES
NICKNAME
VARCHAR(30)
30
YES
JOIN_YYYY
CHAR(4)
4
YES
POSITION
VARCHAR(10)
10
YES
BACK_NO
TINYINT
1
YES
NATION
VARCHAR(20)
20
YES
BIRTH_DATE
DATE
3
YES
SOLAR
CHAR(1)
1
YES
HEIGHT
SMALLINT
2
YES
WEIGHT
SMALLINT
2
YES
ADDRESS
VARCHAR(80)
80
YES
โ ์ถ๊ฐ๋ ์ด
13 ๊ฐ์ ํ์ด ์ ํ๋์์ต๋๋ค.
DROP COLUMN์ ํ ์ด๋ธ์์ ํ์ ์๋ ์นผ๋ผ์ ์ญ์ ํ ์ ์์ผ๋ฉฐ, ๋ฐ์ดํฐ๊ฐ ์๊ฑฐ๋ ์๊ฑฐ๋ ๋ชจ๋ ์ญ์ ๊ฐ๋ฅํ๋ค. ํ ๋ฒ์ ํ๋์ ์นผ๋ผ๋ง ์ญ์ ๊ฐ๋ฅํ๋ฉฐ, ์นผ๋ผ ์ญ์ ํ ์ต์ ํ๋ ์ด์์ ์นผ๋ผ์ด ํ ์ด๋ธ์ ์กด์ฌํด์ผ ํ๋ค. ์ฃผ์ํ ๋ถ๋ถ์ ํ ๋ฒ ์ญ์ ๋ ์นผ๋ผ์ ๋ณต๊ตฌ๊ฐ ๋ถ๊ฐ๋ฅํ๋ค. ๋ค์์ ํ ์ด๋ธ์ ๋ถํ์ํ ์นผ๋ผ์ ์ญ์ ํ๋ ๋ช ๋ น์ด๋ค.
[์์ ] ์์์ PLAYER ํ ์ด๋ธ์ ์๋กญ๊ฒ ์ถ๊ฐํ ADDRESS ์นผ๋ผ์ ์ญ์ ํ๋ค.
[์์ ] Oracle
ํ ์ด๋ธ์ด ๋ณ๊ฒฝ๋์๋ค.
[์์ ] SQL Server
๋ช ๋ น์ด ์๋ฃ๋์๋ค.
์คํ ๊ฒฐ๊ณผ์์ ์ญ์ ๋ ์นผ๋ผ ADDRESS๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
[์คํ ๊ฒฐ๊ณผ] Oracle
PLAYER_ID
NOT
NULL
CHAR(7)
PLAYER_NAME
NOT
NULL
VARCHAR2(20)
TEAM_ID
NOT
NULL
CHAR(3)
E_PLAYER_NAME
VARCHAR2(40)
NICKNAME
VARCHAR2(30)
JOIN_YYYY
CHAR(4)
POSITION
VARCHAR2(10)
BACK_NO
NUMBER(2)
NATION
VARCHAR2(20)
BIRTH_DATE
DATE
SOLAR
CHAR(1)
HEIGHT
NUMBER(3)
WEIGHT
NUMBER(3)
13 ๊ฐ์ ํ์ด ์ ํ๋์์ต๋๋ค.
[์คํ ๊ฒฐ๊ณผ] SQL Server
PLAYER_ID
CHAR(7)
7
NO
PLAYER_NAME
VARCHAR(20)
20
NO
TEAM_ID
CHAR(3)
3
NO
E_PLAYER_NAME
VARCHAR(40)
40
YES
NICKNAME
VARCHAR(30)
30
YES
JOIN_YYYY
CHAR(4)
4
YES
POSITION
VARCHAR(10)
10
YES
BACK_NO
TINYINT
1
YES
NATION
VARCHAR(20)
20
YES
BIRTH_DATE
DATE
3
YES
SOLAR
CHAR(1)
1
YES
HEIGHT
SMALLINT
2
YES
WEIGHT
SMALLINT
2
YES
13 ๊ฐ์ ํ์ด ์ ํ๋์์ต๋๋ค.
ํ ์ด๋ธ์ ์กด์ฌํ๋ ์นผ๋ผ์ ๋ํด์ ALTER TABLE ๋ช ๋ น์ ์ด์ฉํด ์นผ๋ผ์ ๋ฐ์ดํฐ ์ ํ, ๋ํดํธ(DEFAULT) ๊ฐ, NOT NULL ์ ์ฝ์กฐ๊ฑด์ ๋ํ ๋ณ๊ฒฝ์ ํฌํจํ ์ ์๋ค. ๋ค์์ ํ ์ด๋ธ์ ์นผ๋ผ์ ๋ํ ์ ์๋ฅผ ๋ณ๊ฒฝํ๋ ๋ช ๋ น์ด๋ค.
[Oracle]
[SQL Server]
์นผ๋ผ์ ๋ณ๊ฒฝํ ๋๋ ๋ช ๊ฐ์ง ์ฌํญ์ ๊ณ ๋ คํด์ ๋ณ๊ฒฝํด์ผ ํ๋ค.
ํด๋น ์นผ๋ผ์ ํฌ๊ธฐ๋ฅผ ๋๋ฆด ์๋ ์์ง๋ง ์ค์ด์ง๋ ๋ชปํ๋ค. ์ด๋ ๊ธฐ์กด์ ๋ฐ์ดํฐ๊ฐ ํผ์๋ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
ํด๋น ์นผ๋ผ์ด NULL ๊ฐ๋ง ๊ฐ์ง๊ณ ์๊ฑฐ๋ ํ ์ด๋ธ์ ์๋ฌด ํ๋ ์์ผ๋ฉด ์นผ๋ผ์ ํญ์ ์ค์ผ ์ ์๋ค.
ํด๋น ์นผ๋ผ์ด NULL ๊ฐ๋ง์ ๊ฐ์ง๊ณ ์์ผ๋ฉด ๋ฐ์ดํฐ ์ ํ์ ๋ณ๊ฒฝํ ์ ์๋ค.
ํด๋น ์นผ๋ผ์ DEFAULT ๊ฐ์ ๋ฐ๊พธ๋ฉด ๋ณ๊ฒฝ ์์ ์ดํ ๋ฐ์ํ๋ ํ ์ฝ์ ์๋ง ์ํฅ์ ๋ฏธ์น๊ฒ ๋๋ค.
ํด๋น ์นผ๋ผ์ NULL ๊ฐ์ด ์์ ๊ฒฝ์ฐ์๋ง NOT NULL ์ ์ฝ์กฐ๊ฑด์ ์ถ๊ฐํ ์ ์๋ค.
[์์ ] TEAM ํ ์ด๋ธ์ ORIG_YYYY ์นผ๋ผ์ ๋ฐ์ดํฐ ์ ํ์ CHAR(4)โVARCHAR2(8)์ผ๋ก ๋ณ๊ฒฝํ๊ณ , ํฅํ ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ์ DEFAULT ๊ฐ์ผ๋ก '20020129'์ ์ ์ฉํ๊ณ , ๋ชจ๋ ํ์ ORIG_YYYY ์นผ๋ผ์ NULL์ด ์์ผ๋ฏ๋ก ์ ์ฝ์กฐ๊ฑด์ NULL โ NOT NULL๋ก ๋ณ๊ฒฝํ๋ค.
[์์ ] Oracle
ํ ์ด๋ธ์ด ๋ณ๊ฒฝ๋์๋ค.
[์์ ] SQL Server
๋ช ๋ น์ด ์๋ฃ๋์๋ค.
๋ช ๋ น์ด ์๋ฃ๋์๋ค.
์คํ ๊ฒฐ๊ณผ์์ ํ ์ด๋ธ ๊ตฌ์กฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ธํ ์ ์๋ค.
[์คํ ๊ฒฐ๊ณผ] Oracle
TEAM_ID
NOT NULL
CHAR(3)
REGION_NAME
NOT NULL
VARCHAR2(4)
TEAM_NAME
NOT NULL
VARCHAR2(40)
E_TEAM_NAME
VARCHAR2(50)
ORIG_YYYY
NOT NULL
VARCHAR2(8)
โ๊ธฐ๋ณธ๊ฐ'20020129'
STADIUM_ID
NOT NULL
CHAR(3)
ZIP_CODE1
CHAR(3)
ZIP_CODE2
CHAR(3)
ADDRESS
VARCHAR2(80)
DDD
VARCHAR2(3)
TEL
VARCHAR2(10)
FAX
VARCHAR2(10)
HOMEPAGE
VARCHAR2(50)
OWNER
VARCHAR2(10)
14 ๊ฐ์ ํ์ด ์ ํ๋์์ต๋๋ค.
[์คํ ๊ฒฐ๊ณผ] SQL Server
TEAM_ID
CHAR(3)
3
NO
REGION_NAME
VARCHAR(8)
8
NO
TEAM_NAME
VARCHAR(40)
40
NO
E_TEAM_NAME
VARCHAR(50)
50
YES
ORIG_YYYY
CHAR(4)
4
YES
STADIUM_ID
CHAR(3)
3
NO
ZIP_CODE1
CHAR(3)
3
YES
ZIP_CODE2
CHAR(3)
3
YES
ADDRESS
VARCHAR(80)
80
YES
DDD
VARCHAR(3)
3
YES
TEL
VARCHAR(10)
10
YES
FAX
VARCHAR(10)
10
YES
HOMEPAGE
VARCHAR(50)
50
YES
OWNER
VARCHAR(10)
10
YES
14 ๊ฐ์ ํ์ด ์ ํ๋์์ต๋๋ค.
DEFAULT on column ORIG_YYYY DF_ORIG_YYYY ('20020129')
1 ๊ฐ์ ํ์ด ์ ํ๋์์ต๋๋ค.
RENAME COLUMN
์๋๋ ํ ์ด๋ธ์ ์์ฑํ๋ฉด์ ๋ง๋ค์ด์ก๋ ์นผ๋ผ๋ช ์ ์ด๋ค ์ด์ ๋ก ๋ถ๊ฐํผํ๊ฒ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ์ ์ ์ฉํ๊ฒ ์ฐ์ผ ์ ์๋ RENAME COLUMN ๋ฌธ๊ตฌ์ด๋ค.
[Oracle]
RENAME COLUMN์ผ๋ก ์นผ๋ผ๋ช ์ด ๋ณ๊ฒฝ๋๋ฉด, ํด๋น ์นผ๋ผ๊ณผ ๊ด๊ณ๋ ์ ์ฝ์กฐ๊ฑด์ ๋ํด์๋ ์๋์ผ๋ก ๋ณ๊ฒฝ๋๋ ์ฅ์ ์ด ์์ง๋ง, ADD/DROP COLUMN ๊ธฐ๋ฅ์ฒ๋ผ ANSI/ISO์ ๋ช ์๋์ด ์๋ ๊ธฐ๋ฅ์ด ์๋๊ณ Oracle ๋ฑ ์ผ๋ถ DBMS์์๋ง ์ง์ํ๋ ๊ธฐ๋ฅ์ด๋ค.
[์์ ] Oracle
ํ ์ด๋ธ์ด ๋ณ๊ฒฝ๋์๋ค.
[์์ ] Oracle
ํ ์ด๋ธ์ด ๋ณ๊ฒฝ๋์๋ค.
SQL Server์์๋ sp_rename ์ ์ฅ ํ๋ก์์ ๋ฅผ ์ด์ฉํ์ฌ ์นผ๋ผ ์ด๋ฆ์ ๋ณ๊ฒฝํ ์ ์๋ค.
SQL Server
[์์ ] SQL Server
์ฃผ์: ์ํฐํฐ ์ด๋ฆ ๋ถ๋ถ์ ๋ณ๊ฒฝํ๋ฉด ์คํฌ๋ฆฝํธ ๋ฐ ์ ์ฅ ํ๋ก์์ ๋ฅผ ์์์ํฌ ์ ์๋ค.
ํ ์ด๋ธ ์์ฑ ์ ๋ถ์ฌํ๋ ์ ์ฝ์กฐ๊ฑด์ ์ญ์ ํ๋ ๋ช ๋ น์ด ํํ๋ ๋ค์๊ณผ ๊ฐ๋ค.
[์์ ] PLAYER ํ ์ด๋ธ์ ์ธ๋ํค ์ ์ฝ์กฐ๊ฑด์ ์ญ์ ํ๋ค.
[์์ ] Oracle
ํ ์ด๋ธ์ด ๋ณ๊ฒฝ๋์๋ค.
[์์ ] SQL Server
๋ช ๋ น์ด ์๋ฃ๋์๋ค.
ํ ์ด๋ธ ์์ฑ ์ ์ ์ฝ์กฐ๊ฑด์ ์ ์ฉํ์ง ์์๋ค๋ฉด, ์์ฑ ์ดํ์ ํ์์ ์ํด์ ์ ์ฝ์กฐ๊ฑด์ ์ถ๊ฐํ ์ ์๋ค. ๋ค์์ ํน์ ์นผ๋ผ์ ์ ์ฝ์กฐ๊ฑด์ ์ถ๊ฐํ๋ ๋ช ๋ น์ด ํํ์ด๋ค.
[์์ ] PLAYER ํ ์ด๋ธ์ TEAM ํ ์ด๋ธ๊ณผ์ ์ธ๋ํค ์ ์ฝ์กฐ๊ฑด์ ์ถ๊ฐํ๋ค. ์ ์ฝ์กฐ๊ฑด๋ช ์ PLAYER_FK๋ก ํ๊ณ , PLAYER ํ ์ด๋ธ์ TEAM_ID ์นผ๋ผ์ด TEAM ํ ์ด๋ธ์ TEAM_ID๋ฅผ ์ฐธ์กฐํ๋ ์กฐ๊ฑด์ด๋ค.
[์์ ] Oracle
ํ ์ด๋ธ์ด ๋ณ๊ฒฝ๋์๋ค.
[์์ ] SQL Server
๋ช ๋ น์ด ์๋ฃ๋์๋ค.
[์์ ] PLAYER ํ ์ด๋ธ์ด ์ฐธ์กฐํ๋ TEAM ํ ์ด๋ธ์ ์ ๊ฑฐํด๋ณธ๋ค.
[์์ ] Oracle
ERROR: ์ธ๋ ํค์ ์ํด ์ฐธ์กฐ๋๋ ๊ณ ์ /๊ธฐ๋ณธ ํค๊ฐ ํ ์ด๋ธ์ ์๋ค. โป ํ ์ด๋ธ์ ์ญ์ ๋์ง ์์
[์์ ] SQL Server
ERROR: ์ํฐํฐ 'TEAM'์ FOREIGN KEY ์ ์ฝ ์กฐ๊ฑด์ ์ฐธ์กฐํ๋ฏ๋ก ์ญ์ ํ ์ ์๋ค. โป ํ ์ด๋ธ์ ์ญ์ ๋์ง ์์
[์์ ] PLAYER ํ ์ด๋ธ์ด ์ฐธ์กฐํ๋ TEAM ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํด๋ณธ๋ค.
[์์ ] Oracle
ERROR: ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด(SCOTT.PLAYER_FK)์ด ์๋ฐฐ๋์๋ค. ์์ ๋ ์ฝ๋๊ฐ ๋ฐ๊ฒฌ๋์๋ค. โป ๋ฐ์ดํฐ๋ ์ญ์ ๋์ง ์์
[์์ ] SQL Server
ERROR: FOREIGN KEY ์ ์ฝ ์กฐ๊ฑด์ ์ฐธ์กฐํ๋ฏ๋ก ์ญ์ ํ ์ ์๋ค. โป ๋ฐ์ดํฐ๋ ์ญ์ ๋์ง ์์
์์ ๊ฐ์ด ์ฐธ์กฐ ์ ์ฝ์กฐ๊ฑด์ ์ถ๊ฐํ๋ฉด PLAYER ํ ์ด๋ธ์ TEAM_ID ์นผ๋ผ์ด TEAM ํ ์ด๋ธ์ TEAM_ID ์นผ๋ผ์ ์ฐธ์กฐํ๊ฒ ๋๋ค. ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ต์ ์ ๋ฐ๋ผ์ ๋ง์ฝ TEAM ํ ์ด๋ธ์ด๋ TEAM ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ค ํ ๊ฒฝ์ฐ ์ธ๋ถ(PLAYER ํ ์ด๋ธ)์์ ์ฐธ์กฐ๋๊ณ ์๊ธฐ ๋๋ฌธ์ ์ญ์ ๊ฐ ๋ถ๊ฐ๋ฅํ๊ฒ ์ ์ฝ์ ํ ์ ์๋ค. ์ฆ ์ธ๋ถํค(FK)๋ฅผ ์ค์ ํจ์ผ๋ก์จ ์ค์์ ์ํ ํ ์ด๋ธ ์ญ์ ๋ ํ์ํ ๋ฐ์ดํฐ์ ์๋ํ์ง ์์ ์ญ์ ์ ๊ฐ์ ๋ถ์์ฌ๋ฅผ ๋ฐฉ์งํ๋ ํจ๊ณผ๋ฅผ ๋ณผ ์ ์๋ค.
RENAME ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ํ ์ด๋ธ์ ์ด๋ฆ์ ๋ณ๊ฒฝํ ์ ์๋ค.
RENAME ๋ณ๊ฒฝ์ ํ ์ด๋ธ๋ช TO ๋ณ๊ฒฝํ ํ ์ด๋ธ๋ช ;
SQL Server์์๋ sp_rename์ ์ด์ฉํ์ฌ ํ ์ด๋ธ ์ด๋ฆ์ ๋ณ๊ฒฝํ ์ ์๋ค.
[์์ ] RENAME ๋ฌธ์ฅ์ ์ด์ฉํ์ฌ TEAM ํ ์ด๋ธ๋ช ์ ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ๋ณ๊ฒฝํ๊ณ , ๋ค์ TEAM ํ ์ด๋ธ๋ก ๋ณ๊ฒฝํ๋ค.
[์์ ] Oracle
ํ ์ด๋ธ์ด๋ฆ์ด ๋ณ๊ฒฝ๋์๋ค.
ํ ์ด๋ธ์ด๋ฆ์ด ๋ณ๊ฒฝ๋์๋ค.
[์์ ] SQL Server
์ฃผ์: ์ํฐํฐ์ด๋ฆ ๋ถ๋ถ์ ๋ณ๊ฒฝํ๋ฉด ์คํฌ๋ฆฝํธ ๋ฐ์ ์ฅ ํ๋ก์์ ๋ฅผ ์์์ํฌ ์์๋ค.
์ฃผ์: ์ํฐํฐ์ด๋ฆ ๋ถ๋ถ์ ๋ณ๊ฒฝํ๋ฉด ์คํฌ๋ฆฝํธ ๋ฐ์ ์ฅ ํ๋ก์์ ๋ฅผ ์์์ํฌ ์์๋ค.
ํ ์ด๋ธ์ ์๋ชป ๋ง๋ค์๊ฑฐ๋ ํ ์ด๋ธ์ด ๋ ์ด์ ํ์ ์์ ๊ฒฝ์ฐ ํด๋น ํ ์ด๋ธ์ ์ญ์ ํด์ผ ํ๋ค. ๋ค์์ ๋ถํ์ํ ํ ์ด๋ธ์ ์ญ์ ํ๋ ๋ช ๋ น์ด๋ค.
DROP ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ํ ์ด๋ธ์ ๋ชจ๋ ๋ฐ์ดํฐ ๋ฐ ๊ตฌ์กฐ๋ฅผ ์ญ์ ํ๋ค. CASCADE CONSTRAINT ์ต์ ์ ํด๋น ํ ์ด๋ธ๊ณผ ๊ด๊ณ๊ฐ ์์๋ ์ฐธ์กฐ๋๋ ์ ์ฝ์กฐ๊ฑด์ ๋ํด์๋ ์ญ์ ํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. SQL Server์์๋ CASCADE ์ต์ ์ด ์กด์ฌํ์ง ์์ผ๋ฉฐ ํ ์ด๋ธ์ ์ญ์ ํ๊ธฐ ์ ์ ์ฐธ์กฐํ๋ FOREIGN KEY ์ ์ฝ ์กฐ๊ฑด ๋๋ ์ฐธ์กฐํ๋ ํ ์ด๋ธ์ ๋จผ์ ์ญ์ ํด์ผ ํ๋ค.
[์์ ] PLAYER ํ ์ด๋ธ์ ์ ๊ฑฐํ๋ค.
[์์ ] Oracle
ํ ์ด๋ธ์ด ์ญ์ ๋์๋ค.
ERROR: ์ค๋ช ํ ๊ฐ์ฒด๋ฅผ ์ฐพ์ ์ ์๋ค.
[์์ ] SQL Server
๋ช ๋ น์ด ์๋ฃ๋์๋ค.
๋ฉ์์ง 15009, ์์ค 16, ์ํ 1, ํ๋ก์์ sp_help, ์ค 66 ๋ฐ์ดํฐ๋ฒ ์ด์ค 'northwind'์ ์ํฐํฐ 'dbo.player'์ด(๊ฐ) ์๊ฑฐ๋ ์ด ์์ ์ ์ ํฉํ์ง ์๋ค.
TRUNCATE TABLE์ ํ ์ด๋ธ ์์ฒด๊ฐ ์ญ์ ๋๋ ๊ฒ์ด ์๋๊ณ , ํด๋น ํ ์ด๋ธ์ ๋ค์ด์๋ ๋ชจ๋ ํ๋ค์ด ์ ๊ฑฐ๋๊ณ ์ ์ฅ ๊ณต๊ฐ์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๋๋ก ํด์ ํ๋ค. ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ์์ ํ ์ญ์ ํ๊ธฐ ์ํด์๋ DROP TABLE์ ์คํํ๋ฉด ๋๋ค.
TRUNCATE TABLE PLAYER;
[์์ ] TRUNCATE TABLE์ ์ฌ์ฉํ์ฌ ํด๋น ํ ์ด๋ธ์ ๋ชจ๋ ํ์ ์ญ์ ํ๊ณ ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ํ์ธํ๋ค.
[์์ ] Oracle
ํ ์ด๋ธ์ด ํธ๋ ์ผ์ดํธ๋์๋ค.
[์์ ] SQL Server
๋ช ๋ น์ด ์๋ฃ๋์๋ค.
[์คํ ๊ฒฐ๊ณผ] Oracle
TEAM_ID
NOT NULL
CHAR(3)
REGION_NAME
NOT NULL
VARCHAR2(4)
TEAM_NAME
NOT NULL
VARCHAR2(40)
E_TEAM_NAME
VARCHAR2(50)
ORIG_YYYY
CHAR(4)
STADIUM_ID
NOT NULL
CHAR(3)
ZIP_CODE1
CHAR(3)
ZIP_CODE2
CHAR(3)
ADDRESS
VARCHAR2(80)
DDD
VARCHAR2(3)
TEL
VARCHAR2(10)
FAX
VARCHAR2(10)
HOMEPAGE
VARCHAR2(50)
OWNER
VARCHAR2(10)
14 ๊ฐ์ ํ์ด ์ ํ๋์์ต๋๋ค.
[์คํ ๊ฒฐ๊ณผ] SQL Server
exec sp_help 'dbo.TEAM' go
TEAM_ID
CHAR(3)
3
NO
REGION_NAME
VARCHAR(8)
8
NO
TEAM_NAME
VARCHAR(40)
40
NO
E_TEAM_NAME
VARCHAR(50)
50
YES
ORIG_YYYY
CHAR(4)
4
YES
STADIUM_ID
CHAR(3)
3
NO
ZIP_CODE1
CHAR(3)
3
YES
ZIP_CODE2
CHAR(3)
3
YES
ADDRESS
VARCHAR(80)
80
YES
DDD
VARCHAR(3)
3
YES
TEL
VARCHAR(10)
10
YES
FAX
VARCHAR(10)
10
YES
HOMEPAGE
VARCHAR(50)
50
YES
OWNER
VARCHAR(10)
10
YES
14 ๊ฐ์ ํ์ด ์ ํ๋์์ต๋๋ค.
[์์ ] DROP TABLE์ ์ฌ์ฉํ์ฌ ํด๋น ํ ์ด๋ธ์ ์ ๊ฑฐํ๊ณ ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ํ์ธํ๋ค.
[์์ ] Oracle
ํ ์ด๋ธ์ด ์ญ์ ๋์๋ค.
ERROR: ์ค๋ช ํ ๊ฐ์ฒด๋ฅผ ์ฐพ์ ์ ์๋ค.
[์์ ] SQL Server
๋ช ๋ น์ด ์๋ฃ๋์๋ค.
๋ฉ์์ง 15009, ์์ค 16, ์ํ 1, ํ๋ก์์ sp_help, ์ค 66 ๋ฐ์ดํฐ๋ฒ ์ด์ค 'northwind'์ ์ํฐํฐ 'dbo.TEAM'์ด(๊ฐ) ์๊ฑฐ๋ ์ด ์์ ์ ์ ํฉํ์ง ์๋ค.
DROP TABLE์ ๊ฒฝ์ฐ๋ ํ ์ด๋ธ ์์ฒด๊ฐ ์์ด์ง๊ธฐ ๋๋ฌธ์ ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ํ์ธํ ์ ์๋ค. ๋ฐ๋ฉด TRUNCATE TABLE์ ๊ฒฝ์ฐ๋ ํ ์ด๋ธ ๊ตฌ์กฐ๋ ๊ทธ๋๋ก ์ ์งํ ์ฒด ๋ฐ์ดํฐ๋ง ์ ๋ถ ์ญ์ ํ๋ ๊ธฐ๋ฅ์ด๋ค. TRUNCATE๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ณ๊ฒฝ ์์ด ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ผ๊ด ์ญ์ ํ๋ ๋ช ๋ น์ด๋ก DML๋ก ๋ถ๋ฅํ ์๋ ์์ง๋ง ๋ด๋ถ ์ฒ๋ฆฌ ๋ฐฉ์์ด๋ Auto Commit ํน์ฑ ๋ฑ์ผ๋ก ์ธํด DDL๋ก ๋ถ๋ฅํ์๋ค. ํ ์ด๋ธ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๋ช ๋ น์ด๋ TRUNCATE TABLE ๋ช ๋ น์ด ์ด์ธ์๋ ๋ค์ DML ์ ์์ ์ดํด๋ณผ DELETE ๋ช ๋ น์ด๊ฐ ์๋ค. ๊ทธ๋ฌ๋ DELETE์ TRUNCATE๋ ์ฒ๋ฆฌํ๋ ๋ฐฉ์ ์์ฒด๊ฐ ๋ค๋ฅด๋ค. ํ ์ด๋ธ์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๊ฒฝ์ฐ, ์์คํ ํ์ฉ ์ธก๋ฉด์์๋ DELETE TABLE ๋ณด๋ค๋ ์์คํ ๋ถํ๊ฐ ์ ์ TRUNCATE TABLE์ ๊ถ๊ณ ํ๋ค. ๋จ, TRUNCATE TABLE์ ๊ฒฝ์ฐ ์ ์์ ์ธ ๋ณต๊ตฌ๊ฐ ๋ถ๊ฐ๋ฅํ๋ฏ๋ก ์ฃผ์ํด์ผ ํ๋ค.
์ถ์ฒ : ๋ฐ์ดํฐ์จ์์ด โ ํ๊ตญ๋ฐ์ดํฐ์ฐ์ ์งํฅ์()