본문 바로가기
Database/Oracle

DDL

by 서초록 2021. 11. 7.

논리연산자

제약조건명을 명시적으로 부여할 수도 있고, 묵시적으로 제약조건명 없이 제약조건을 설정할 수도 있음(시스템에서 자동으로 생성가능함)

 

CREATE TABLE

 

제약 조건의 지정

CREATE TABLE TABLE1{
}

시스템에서 자동 생성되어 제약조건명이 생성된 경우 제약조건을 삭제하고 싶다면,

제약조건명을 찾아서 DROP 시켜주면 된다. 

 

FK제약 조건의 옵션

DELECT나 UPDATE 시 참조무결성에 위배되기때문에 

ON DELETE CASCADE ON UPDATE RESTRICT

RESTRICT :  기본값의 삭제 또는 갱신을 불허

NO ACTION : RESTRICT와 동일하게 동작

CASCADE : 아무일도 없었다는 듯이 참조무결성에 위배되기 전에 조치를 취함

  - 기본키가 삭제되면 해당값을 외래키로 갖는 레코드도 삭제

  - 기본키가 갱신되면 이를 참조하는 외래키를 새로운 값으로 업데이트

SET NULL

  - 기본키가 삭제 또는 갱신되면 이를 참조하는 외래키를 NULL로 업데이트

 

 

테이블 변경

ALTER문을 통한 테이블 변경

 - 칼럼의 추가/삭제/수정, 제약 조건의 추가/삭제

 칼럼의 추가

ALTER TABLE PLAYER
ADD (ADDRESS VARCHAR2(80));

칼럼의 삭제

ALTER TABLE PLAYER
DROP COLUMN ADDRESS;

칼럼명 변경

ALTER TABLE PLAYER
RENAME COLUMN PLAYER_ID TO TEMP_ID;

 

 

칼럼의 정의 수정

 *데이터 타입 변경 : 테이블에 아무 행도 없거나, 해당 칼럼이 NULL만 갖고 있을 때 가능

 *칼럼의 크기 변경

   칼럼의 크기 확대 -> 항상 가능

   칼럼의 크기 축소 ->  테이블에 아무 행도 없거나, 해당 칼럼이 NULL만 갖고있거나, 현재 저장된 값을 수용할 수 있는 크기로의 축소만 가능

 * DEFAULT값 추가 및 수정 : 추가 및 수정 이후 삽입되는 행에만 영향을 미침

 

 

ALTER TABLE PLAYER_TEMP MODIFY (PLAYER_NAME NOT NULL);

 

제약조건 추가

ALTER TABLE PLAYER
ADD CONSTRAINT PLAYER_FK FOREIGN KEY (TEAM_ID) REFERENCES TEAM(TEAM_ID);

 

테이블 삭제

 

'Database > Oracle' 카테고리의 다른 글

[SQL] 서브쿼리  (0) 2021.11.11
[SQL] 서브쿼리  (0) 2021.11.11
SQL developer 설치  (0) 2021.11.06
오라클 SCOTT계정 lock해제하기  (0) 2021.05.13
3-11 조인  (0) 2021.04.28