ํ ์ด๋ธ์์ ์์ ํ ์ ์๋ ๊ฒ!
1. ์ ์ฝ์กฐ๊ฑด (์ถ๊ฐ/์ญ์ )
2. ์ปฌ๋ผ (์ถ๊ฐ/์์ /์ญ์ )
3. ์ด๋ฆ ๋ณ๊ฒฝ(ํ ์ด๋ธ๋ช , ์ ์ฝ์กฐ๊ฑด๋ช , ์ปฌ๋ผ๋ช )
ALTER TABLE DEPT_COPY
ADD CONSTRAINT DEPT_COPY_TITLE_U UNIQUE(DEPT_TITLE);
ALTER TABLE DEPT_COPY
DROP CONSTRAINT DEPT_COPY_TITLE_U;
NOT NULL ์ ์ฝ์กฐ๊ฑด์ ์๋ก์ด ์กฐ๊ฑด์ ์ถ๊ฐํ๋ ๊ฒ์ด ์๋๋ผ ์ปฌ๋ผ ์์ฒด์ NULL ํ์ฉ/๋ฒํ์ฉ์ ์ ์ดํ๋ ์ฑ์ง ๋ณ๊ฒฝ์ ํํ๋ก ์ธ์๋จ! ๊ทธ๋์ ๋ค๋ฅธ ์ ์ฝ์กฐ๊ฑด์ด๋ ๋ค๋ฅธ ๊ตฌ๋ฌธ ์ฌ์ฉ! --> MODIFY
ALTER TABLE DEPT_COPY
MODIFY DEPT_TITLE NOT NULL;
-- DEPT_TITLE ์ปฌ๋ผ์ NOT NULL ์ ์ฝ์กฐ๊ฑด ์ค์ ์ผ๋ก ์์
ALTER TABLE DEPT_COPY
MODIFY DEPT_TITLE NULL; --DEPT_TITLE ์ปฌ๋ผ์ NOT NULL ์ ์ฝ์กฐ๊ฑด ํด์
ALTER TABLE DEPT_COPY ADD(CNAME VARCHAR2(30));
1) ๋ฐ์ดํฐํ์
๋ณ๊ฒฝ
ALTER TABLE ํ
์ด๋ธ๋ช
MODIFY ์ปฌ๋ผ๋ช
๋ฐ์ดํฐํ์
;
ALTER TABLE DEPT_COPY MODIFY DEPT_ID VARCHAR2(3);
2) DEFAULT ๋ณ๊ฒฝ
ALTER TABLE ํ
์ด๋ธ๋ช
MODIFY ์ปฌ๋ผ๋ช
DEFAULT '๊ฐ';
ALTER TABLE DEPT_COPY MODIFY LNAME DEFAULT 'KOREA';
UPDATE DEPT_COPY
SET LNAME = DEFAULT
WHERE LNAME = 'ํ๊ตญ'
--> ๊ธฐ๋ณธ๊ฐ์ ๋ณ๊ฒฝํ๋ค๊ณ ํด์ ๊ธฐ์กด ๋ฐ์ดํฐ๊ฐ ๋ณํ์ง๋ ์์! --> ์์ผ๋ก ์ ์ฅํ๋ ๋ฐ์ดํฐ๋ ๋ณํจ
3) NULL ์ฌ๋ถ ๋ณ๊ฒฝ
ALTER TABLE ํ
์ด๋ธ๋ช
MODIFY ์ปฌ๋ผ๋ช
NULL / NOT NULL;
ALTER TABLE ํ
์ด๋ธ๋ช
DROP(์ญ์ ํ ์ปฌ๋ผ๋ช
);
ALTER TABLE ํ
์ด๋ธ๋ช
DROP COLUMN ์ญ์ ํ ์ปฌ๋ผ๋ช
;
=> ์๋ฏธ๋ ๊ฐ์ผ๋ ํ๊ธฐ๋ฒ๋ง ๋ค๋ฆ
+ ํ ์ด๋ธ์ ์ต์ 1๊ฐ ์ด์์ ์ปฌ๋ผ์ด ์กด์ฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์ปฌ๋ผ์ ๋ค ์ญ์ ํ ์ ์๋ค.
ALTER TABLE DEPT_COPY DROP(LNAME);
ALTER TABLE DEPT_COPY DROP COLUMN CNAME;
CREATE TABLE DEPT_COPY
AS SELECT * FROM DEPARTMENT;
--> ์ปฌ๋ผ๋ช
, ๋ฐ์ดํฐํ์
, NOT NULL ์ฌ๋ถ๋ง ๋ณต์ฌ๋๋ค
ALTER TABLE DEPT_COPY RENAME COLUMN DEPT_TITLE TO DEPT_NAME;
ALTER TABLE DEPT_COPY RENAME CONSTRAINT D_COPY_PK TO DEPT_COPY_PK;
ALTER TABLE DEPT_COPY RENAME TO DCOPY;
ํ
์ด๋ธ ์ญ์ !
DROP TABLE ํ
์ด๋ธ๋ช
[CASCADE CONSTRAINTS];
DROP TABLE DCOPY;
CREATE TABLE TB1(
TB1_PK NUMBER PRIMARY KEY,
TB1_COL NUMBER
);
CREATE TABLE TB2(
TB2_PK NUMBER PRIMARY KEY,
TB2_COL NUMBER REFERENCES TB1 -- FK ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐ
);
DROP TABLE TB1;
-- unique/primary keys in table referenced by foreign keys
ํด๊ฒฐ๋ฐฉ๋ฒ
1. ์์, ๋ถ๋ชจ ํ
์ด๋ธ ์์๋ก ์ญ์
DROP TABLE TB2;
DROP TABLE TB1;
ALTER TABLE TB2
DROP CONSTRAINT SYS_C007292;
DROP TABLE TB1;
DROP TABLE TB1 CASCADE CONSTRAINTS;
/ DDL ์ฃผ์ ์ฌํญ /
1) DDL์ COMMIT / ROLLBACK์ด ๋์ง ์๋๋ค.
-> ALTER, DROP์ ์ ์คํ๊ฒ ์งํํด์ผ ํจ
2) DDL๊ณผ DML๊ตฌ๋ฌธ์ ์์ด์ ์ํํ๋ฉด ์๋๋ค!
-> DDL์ ์ํ ์ ์กด์ฌํ๊ณ ์๋ ํธ๋์ญ์
์ ๋ชจ๋ DB์ ๊ฐ์ COMMIT์ํด
-> DDL์ด ์ข
๋ฃ๋ ํ DML ๊ตฌ๋ฌธ์ ์ํํ ์ ์๋๋ก ๊ถ์ฅ