반응형

테이블 만들기(CREATE 문)

CREATE TABLE 테이블_이름
{{열_이름 데이터 형식
  [NOT NULL]
  [UNIQUE]
  [DEFAULT 기본값]
  [CHECK 체크조건]
  }

  [PRIMARY KEY(열_이름)]
  [FOREIGN KEY(열_이름) REFERENCES 테이블_이름(열_이름)]
 };

 SQL문을 사용하여 테이블을 만들 땐 위와 같은 형식의 명령어를 사용한다.

 

참고로, 'UNIQUE'로 지정한 애트리뷰트의 경우에는 대체 키로 사용될 수 있으며, 'CHECK'로 지정된 애트리뷰트의 경우에는 값이 가질 수 있는 범위를 지정할 수 있다.

 

테이블 수정하기(ALTER 문)

 데이터베이스를 설계 및 관리하다보면, 테이블에 대한 수정사항이 생기기 마련이다. 테이블 수정에는 크게 추가와 관련된 작업과 삭제에 관련된 작업이 있다. 

 

ALTER TABLE 고객
  ADD CONSTRAINT PK_고객_고객번호 PRIMARY KEY(고객번호);

위 경우는 고객 테이블에서 'PK_고객_고객번호'라는 이름의 제약조건을 추가하는 과정을 나타낸 것이다. 이 제약조건은 '고객번호'라는 속성을 기본 키로 추가하는 작업을 나타내고 있다.

 

ALTER TABLE 고객
  DROP CONSTRAINT PK_고객_고객번호;

위 경우는 앞서 추가한 제약조건을 삭제하는 작업을 나타내고 있다.

 

외래 키 설정하기

CREATE TABLE 주문 {
  주문번호 CHAR(11) NOT NULL,
  주문일자 DATETIME NULL,
  주문금액 INT NULL,
  고객번호 INT NULL,
  
  PRIMARY KEY(주문번호),
  FOREIGN KEY(고객번호) REFERENCES 고객(고객번호)
};

위는 '주문'이라는 이름의 테이블을 만드는 SQL문의 예시를 나타낸 것이다. 

 

기본 키인 주문번호는 NOT NULL 조건이 적용된 것을 볼 수 있으며, 외래 키인 고객번호는 '고객'이라는 테이블의 '고객번호' 애트리뷰트로부터 상속 받았음을 나타내고 있다.

 

외래키에는 무결성 제약 조건을 적용하고 있다. 그 이유는 만약 관계에 지장을 줄 수 있는 명령어가 입력될 경우 경고 메시지를 띄울 수 있기 때문이다. 또한 관계가 설정되어 있는 테이블을 삭제하고자 할 때, 해당 관계 먼저 삭제하도록 유도함으로 데이터베이스의 안정성을 높이기 위함이다.

 

속성 수정하기(ALTER문)

ALTER TABLE 고객
  ADD 주소 VARCHAR(50);

ALTER TABLE 고객
  DROP COLUMN 입력일자;

이 밖에도 테이블 내의 속성을 수정(추가 및 삭제)하는 구문의 예를 보여주고 있다.

 

테이블 삭제하기 (DROP문)

DROP TABLE 테이블_이름;

테이블 자체를 삭제하는 구문은 단순하다. 'DROP TABLE'에 테이블 이름을 명시하면 된다.

반응형

+ Recent posts