21.9.1

Inabang·2021년 9월 1일

PlayData

목록 보기
24/34

Day26

DDL(Data Definition Language) 구현

테이블,뷰,시퀀스,인덱스 등을 구현하고 활용할 수 있다.

데이터 저장하는 테이블을 생성할 수 있다.

1. 테이블 생성
기본구문
CREATE TALBE table_name
(column_name data_type [DEFAULT expr][ccolumn_constraint],,,[table_constraint,,,]);
구문설명
DEFAULT expr : 해당 컬럼에 적용될 자동 기본 값
CONSTRAINTS : column_constraint,table_constraint
각 레벨에서의 제약조건

2.Naming Rule

  • 테이블,컬럼명 : 특수문자사용가능,한글을 사용하지않는다.
  • 중목되는 이름은 사용할 수 없다.
  • 예약어는 사용 불가능.

3.제약 조건

  • NOT NULL : 해당 컬럼에 NULL을 포함하지 않아야 함.
  • UNIQUE : 해당 컬럼 또는 컬럼 조합 값이 유일하도록 함
  • PRIMARY KEY : 각 행을 유일하게 식별 할 수 있도록함
    == notnull + unique
  • REFERENCES table(column_name) : 해당 컬럼이 참조하고 있는 테이블 (주테이블 == 부모테이블)의 특정 컬럼값들과 일치 하거나 또는 NULL이 되도록 보장함
  • CHERCK : 해당 컬럼에 특정 조건을 항상 만족시키도록함.

4.제약조건의 특징

  • 이름으로 관리된다 : 문자로 시작, 길이는 30자, 이름을 지정하지 않으면 자동 생성
  • 생성시기 : 테이블 생성과 동시에, 테이블을 생성한 후(추가된다)
  • 컬럼 레벨 또는 테이블 레벨에서의 정의 (단, NOT NULL은 컬럼레벨에서만)
  • 컬럼 여러 개를 조합하는 경우에는 테이블레벨에서만 가능하다.

5.FOREIGN KEY
참조 테이블의 컬럼값과 일치하거나 NULL 상태를 유지하도록 하는 제약조건

  • TABLE_FK(종) 테이블생성을하면서 주 테이블을 참조하려한다.
  • 주테이블의 구조를 확인
  • 주테이블의 제약 조건을 확인
  • 주테이블의 참조컬럼의 제약조건이 PK이어야한다.

참조키를 생성할 때 주의할 옵션

    1. [CONSTRAINT CONSTRAINT_NAME] CONSTRAINT_TYPE ON ELETE SET NULL
      참조 컬럼 값이 삭제 될때

테이블 구조를 변경할 수 있다.

ALTER

-- 테이블수정
ALTER TABLE TABLE_NAME
ADD (COLUMN_NAME DATATYPE [DEFAULT]) | ADD CONSTRAINT 
MODIFY (COMLUMN_NAME DATATYPE [DEFAULT] )
DROP COLUMN COLUMN_NAME [CASCADE CONSTRAINTS]
-- 이름수정
ALTER TABLE OLD_TABLE_NAME RENAME TO NEW_TABLE_NAME;
RENAME OLD_TABLE_NAME TO NEW_TALBE_NAME;

제약조건을 사용해서 데이터 무결성을 보장 할 수 있다.

0개의 댓글