본문 바로가기

데이터베이스

SQL) DDL

SQL은 RDBMS에서 사용하는 스크립트 언어이다.

 

구성 

  • DDL ( Data Definition Language )
    •  테이블을 생성, 수정, 삭제에 관한 명령어를 지원한다.
  • DML ( Data Manipulation Language )
    •  테이블에 데이터를 삽입하거나 수정, 삭제, 검색하는 명령어들을 지원한다.
  • DCL ( Data Control Language )
    • 보안을 위해 사용자에게 권한을 부여하거나 취소하는 명령어들을 지원한다.

 

DDL

테이블 생성 

CREATE TABLE [테이블명] (
	[컬럼이름] [데이터타입] [제약조건],
    ...

 	/*제약조건에 이름을 부여할 경우엔 CONSTRAINT 키워드를 사용*/
    EX) CONSTRAINT [제약조건이름] PRIMARY KEY(컬럼이름)
);

테이블을 생성할 때 컬럼에 ON 절로 옵션을 추가 가능하다.

ON DELETE NO ACTION : 옵션을 지정하지 않았을 때의 DEFAULT값으로 이 컬럼을 다른 FK가 참조하고 있을 경우 FK부터 삭제한 다음에 삭제가 가능하게 하는 옵션이다.

ON DELETE CASCADE : 위의 상황과 마찬가지일 때 관련 튜플도 같이 삭제가 된다.

ON DELETE SET NULL : 참조하고 있는 FK를 NULL로 변경하고 삭제된다.

ON DELETE SET DEFAULT : FK를 미리 지정해둔 DEFAULT값으로 변경하고 삭제된다.

 

ON UPDATE NO ACTION : 튜플 변경불가 (DEFAULT)

ON UPDATE CASCADE : FK도 함께 변경

ON UPDATE SET NULL : FK는 NULL로 변경

ON UPDATE SET DAFAULT : FK는 DEFAULT값으로 변경 

 

 

테이블 변경

/*컬럼추가*/
ALTER TABLE [테이블명] ADD [컬럼명] [데이터타입] [제약조건];

/*기존 컬럼 삭제*/
ALTER TABLE [테이블명] DROP COLUMN [컬럼명];

/*기존 컬럼에 제약조건 추가*/
ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건명] [제약조건];

/*기존 컬럼에 제약조건 추가, NOT NULL이나 DEFAULT의 경우*/
ALTER TABLE [테이블명] MODIFY [컬럼명] NOT NULL;  
ALTER TABLE [테이블명] MODIFY [컬럼명] NULL; 
ALTER TABLE [테이블명] MODIFY [컬럼명] DEFAULT [디폴트값];

/*기존 컬럼 이름 변경*/
ALTER TRABLE [테이블명] REMANE COLUMN [이전컬렴명] TO [새컬럼명];

/*컬럼 삭제*/
ALTER TABLE [테이블명] DROP COLUMN [컬럼명];

/*제약조건 삭제*/
ALTER TABLE [테이블명] DROP CONSTRAINT [제약조건명];

 

테이블 삭제 

/*테이블 삭제*/
DROP TABLE [테이블명];

/*CASCADE CONSTRAINTS옵션으로 관계가 맺어져 있어도 FK 제약조건을 삭제하며 한번에 DROP 가능*/
DROP TABLE [테이블명] CASCADE CONSTRAINTS;

 

테이블 내용 전체 삭제 

/* 모든 튜플 삭제 */
TRUNCATE TABLE [테이블명];

 

'데이터베이스' 카테고리의 다른 글

오라클 연산자 (IN, EXISTS, ALL...)  (0) 2023.06.01
DML  (0) 2023.05.31
보이스/코드 정규화  (0) 2023.05.10
정규화  (0) 2023.05.01
E-R 모델  (0) 2023.04.10