DDL: ALTER, DROP

DDL: ALTER, DROP

일단 테스트를 위한 테이블을 만들자.

테이블 만들

CREATE TABLE test(

  id VARCHAR2(10),

  pwd VARCHAR2(10));

1. ALTER

컬럼 추가

ALTER TABLE test ADD name VARCHAR2(20) CONSTRAINT test_nn_name NOT NULL;

컬럼 수정

ALTER TABLE test MODIFY id VARCHAR2(20) CONSTRAINT test_pk_id PRIMARY KEY;

컬럼 삭제

ALTER TABLE test DROP COLUMN name;

값 추가

INSERT INTO test VALUES(‘aaa’,’1234′);

INSERT INTO test VALUES(‘bbb’,‘1234’);

INSERT INTO test VALUES(‘ccc’,‘1234’);

COMMIT;

2. DELETE

테이블 삭제하기

1.DELETE (테이블 구조는 남는다)

DELECT FROM test;

2. TRUNCATE (테이블 구조는 남는다(데이터 잘라내기), 딜리트보다 빠르다) //주의!오토커밋

TRUNCATE TABLE test;

3. DROP (테이블 완전히 다 없어짐) //주의!오토커밋

DROP TABLE test;

———————————————————————————————————-

다시 연습을 위한 테이블을 만들자.

DROP TABLE 판매전표;

DROP TABLE 제품;

DROP TABLE 전표상세;

CREATE TABLE 판매전표(

  전표번호 VARCHAR2(12),

  판매일자 DATE,

  고객명 VARCHAR2(34),

  총액 NUMBER

);

CREATE TABLE 제품(

  제품번호 VARCHAR2(12),

  제품명 VARCHAR2(50),

  제품단가 NUMBER

);

CREATE TABLE 전표상세(

  전표번호 VARCHAR2(12),

  제품번호 VARCHAR2(12),

  수량 NUMBER,

  단가 NUMBER,

  금액 NUMBER

);

1. ALTER로 제약조건 주기

ALTER TABLE 판매전표 ADD CONSTRAINT 판매전표_pk_전표번호 PRIMARY KEY(전표번호);

ALTER TABLE 판매전표 ADD CONSTRAINT 판매전표_ck_총액 CHECK(총액>0);

ALTER TABLE 판매전표 MODIFY 고객명 CONSTRAINT 판매전표_nn_고객명 NOT NULL;

2. ALTER로 제약조건 주기2

ALTER TABLE 제품 ADD CONSTRAINT 제품_uk_제품명 UNIQUE(제품명);

ALTER TABLE 전표상세 ADD CONSTRAINT 전표상세_fk_전표번호 FOREIGN KEY(전표번호) REFERENCES 판매전표(전표번호);