본문 바로가기
DataBase

[SQL] DDL(Data Define Language)

by 올리브영 2023. 3. 8.
728x90
반응형

DDL

  • DB를 구축하거나 수정할 목적으로 사용하는 언어이다.

 

DDL의 3가지 유형

명령어 기능
CREATE SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의함
ALTER TABLE에 대한 정의를 변경하는 데 사용함
DROP SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 삭제함.

 

CREATE TABLE

CREATE TABLE 학생 # <학생> 테이블 생성
	(이름 VARCHAR(15) NOT NULL, # '이름'속성은 최대 문자 15로 NULL값을 갖지 않음.
    학번 CHAR(8), # '학번'속성은 문자 8자이다.
    성별 SEX, # '성별'속성은 'SEX'도메인을 자료형으로 사용한다.
    생년월일 DATE, # '생년월일'속성은 DATE자료형을 갖는다.
    PRIMARY KEY(학번), # '학번'을 기본키로 정의
    FOREIGN KEY(전공) REFERENCES 학과(학과코드) # '전공'속성은 <학과> 테이블의 '학과코드' 속성을 참조하는 외래키이다.
    ON DELETE SET NULL # <학과>테이블에서 튜플이 삭제되면 관련된 모든 튜플의 '전공'속성의 값을 NULL로 변경
    ON UPDATE CASCADE, # <학과>테이블에서 '학과코드'가 변경되면 관련된 모든 튜플의 '전공'속성의 값도 같은 값으로 변경
    CONSTRAINT 생년월일제약 
    CHECK(생년월일>='1998-01-01')); # '생년월일'속성에는 1980-01-01 이후의 값만을 저장할 수 있으며, 이 제약 조건의 이름은 '생년월일제약'이다.
  • PRIMARY KEY : 기본키로 사용할 속성을 지정
  • UNIQUE : 대체키로 사용할 속성을 지정. 중복된 값을 가질 수 없음.
  • FOREIGN KEY ~ REFERENCES ~ : 외래키로 사용할 속성을 지정
    • ON DELETE 옵션 : 참조 테이블의 튜플이 삭제되었을 때 기본 테이블에 취해야 할 사항을 지정.
    • ON UPDATE 옵션 : 참조 테이블의 참조 속성 값이 변경되었을 때 기본테이블에 취해야 할 사항을 지정.
  • CONSTRAINT : 제약 조건의 이름을 지정.
  • CHECK : 속성 값에 대한 제약 조건을 정의.

 

ALTER TABLE

ALTER TABLE 학생 ADD 학년 VARCHAR(3); # <학생>테이블에 최대 3문자로 구성되는 '학년' 속성 추가
ALTER TABLE 학생 ALTER 학번 VARCHAR(10) NOT NULL; # <학생>테이블의 '학번'필드의 데이터 타입과 크기를 VARCHAR(10)으로 하고 NULL값이 입력되지 않게 변경
ALTER TABLE 학생 ADD COLUMN 이름 VARCHAR(10); # <학생>테이블에 '이름'필드 추가
ALTER TABLE 학생 MODIFY COLUMN 이름 CHAR(10) UNSIGNED NOT NULL; # 데이터 타입 변경 및 제한사항 추가
ALTER TABLE 학생 DROP COLUMN 이름; # <학생>테이블에서 '이름'필드 삭제
  • ADD : 새로운 속성을 추가할 때 사용.
  • ALTER : 특정 속성의 Default 값을 변경할 때 사용.
  • DROP COLUMN : 특정 속성을 삭제할 때 사용.

 

DROP TABLE

DROP TABLE 학생; # <학생>테이블 삭제
  • CASCADE : 제거할 요소를 참조하는 다른 모든 개체를 함께 제거
  • RESTRICT : 다른 개체가 제거할 요소를 참조중일 때는 제거를 취소.
728x90
반응형

'DataBase' 카테고리의 다른 글

[DataBase]MVCC  (0) 2023.08.04
[DataBase] Transactional Isolation Level  (0) 2023.08.03
[DB] 데이터베이스 기본개념  (0) 2023.03.08