1. 기본적인 테이블 생성 명령어의 형식은
CREATE TABLE name (
칼럼이름 데이터 타입 옵션,
키 및 릴레이션 옵션
);
각종 옵션들은 필수 요소가 아니다. PRIMARY KEY또한 지정하지 않아도 테이블을 사용 할 수 있다. 즉, 가장 기본적인 형태는
CREATE TABLE name (
칼럼이름 데이터 타입,
칼럼이름 데이터 타입,
...
칼럼이름 데이터 타입
);
이라고 할 수 있다.
2. 2번, 3번, 4번 줄을 보면 가장 기본적인 옵션을 알 수 있다. 빈값을 넣을 수 없게 하는 NOT NULL, 중복되는 값을 넣을 수 없게 하는 UNIQUE, 기본값을 지정하는 DEFAULT 등의 여러가지 옵션이 들어갈 수 있다.
3. 6번 줄, 7번 줄을 보면 limit_sal이라는 이름의 CONSTRAINT를 만들고, salary가 50보다 작은지 검사 하도록 했다. 이것은 나중에 salary에 값을 넣을 때 50이상의 값은 넣을 수 없게 하는 제약이다.
4. 9번 줄처럼 제약사항을 만들지만 이름을 지정하지 않을 수도 있다. 이 줄에서 in은 집합의 속함 관계이다. 1, 2, 3, 4중 하나의 값이어야 하고 값을 따로 넣지 않을 경우 기본값은 1이 된다.
5. 13번 줄은 두 칼럼을 사용하여 제약을 만든 것이기 때문에 칼럼을 다 정의 한 다음 CONSTRAINT를 정의하였다.
6. 14번 줄도 마찬가지이지만 CONTRAINT 이름을 지정하여 주었다. 그리고 현재는 DISABLE시켜 놓은 상태 즉, 제약을 만들어 져 있지만 나중에 필요가 있을 때 검사를 하고 지금은 검사를 하지 않겠다는 것이다.
7. CONSTRAINT의 이름을 지정 해 주면 ENABLE/DISABLE 및 삭제가 편하다.
*[데이터베이스]로 분류된 포스팅에 포함된 문들을 오타가 있을 수 있으며 특정 DBMS에서 테스트되지 않았습니다. 그냥 이론으로만 참고 하세요. 데이터베이스 내용은 박영철 교수님의 수업 자료를 바탕으로 하고 있으며, 그대로 차용된 설명 내용이나 예제가 있으니 맘대로 퍼가시면 안됩니다~
'IT 이론 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] Transaction isolation level (0) | 2012.12.12 |
---|---|
[데이터베이스] 부질의(subquery), 중첩질의(nested query) (0) | 2012.11.30 |
[데이터베이스] SELECT Statement (0) | 2012.11.12 |
[데이터베이스] INSERT, DELETE, UPDATE Statement (0) | 2012.11.11 |
[데이터베이스] User and Schema Management (0) | 2012.11.11 |
댓글