ALTIBASE HDB 5.3.3 기초강좌
테이블 생성 0 0 54,111

by Altibase 테이블 테이블 생성 CREATE TABLE MAXROWS [2011.12.14]


테이블을 "CREATE" 라는 SQL 구문을 이용하여 생성하게 되며, ALTIBASE HDB는 메모리 테이블과 디스크 테이블을 제공하기 때문에 테이블 생성시, 어떤 테이블을 만들 것인지 고려해야 합니다.

테이블 생성 시 주의 사항

  테이블을 생성할 때, 다음과 같은 사항들을 주의해야 합니다.

  • - 컬럼 크기 지정 시, 최대 허용 크기를 넘거나 최소 크기 보다 작으면 안된다.
  • - PRIMARY KEY는 한 테이블에 2개 이상 존재할 수 없다.
  • - 참조 제약조건의 경우 FOREIGN KEY 와 PRIMARY KEY의 컬럼 개수 및 데이터 타입이 동일해야 한다.
  • - 테이블 생성 시, 대소문자 구별하지 않지만 "" 을 사용해서 테이블 생성하면 대소문자 구별한다.

메모리 테이블 vs. 디스크 테이블

  ALTIBASE HDB는 메모리 테이블과 디스크 테이블을 제공하는 DB 입니다. 따라서, 테이블 생성 시에 데이터 특성에 맞게 테이블을 생성해야 합니다.

  일반적으로 메모리 테이블에는 고성능/실시간으로 처리해야 하는 데이터를, 디스크 테이블에는 대용량 데이터를 저장하고 관리합니다.

  테이블을 생성할 때, 메모리와 디스크로 구분하게 되며, 테이블 생성 구문 하단 부분에 테이블스페이스 지정 시 메모리/디스크 테이블스페이스를 각각 지정하면 됩니다.

  지정하려고 하는 테이블스페이스는 테이블보다 먼저 생성되어 있어야 합니다. 존재하지 않는 테이블스페이스를 지정하면 에러가 발생합니다.

테이블 생성 구문

  테이블을 생성하는 구문은 다음과 같습니다.

 
CREATE TABLE table_name 
( column_name datatype [DEFAULT expr] [column_constraint],  
…… 
[table_constraint] ) 
[MAXROWS integer ]
[TABLESPACE  tablespace_name ]
[AS  subquery ];
    

  • - column_constraint : 새로운 테이블을 생성할 때 칼럼에 대한 조건을 설정한다. 하나 이상의 칼럼 제약에 대해 명시적으로 제약 이름을 사용할 수 있으며, 파티션드 테이블인 경우에는 로컬 유니크 속성을 부여한다.
  • - table_constraint : 한 칼럼 이상의 칼럼들에 대한 제약으로, 하나 이상의 칼럼 제약에 대해 명시적으로 제약조건을 사용할 수 있다.
  • - MAXROWS integer : 테이블에 입력할 수 있는 최대 레코드 개수를 지정한다.
  • - TABLESPACE : 테이블이 저장될 테이블스페이스를 지정하는 절이다.
  • - AS SELECT : subquery를 이용하여 테이블을 생성한다.

테이블 생성 예제

  사원 테이블을 edu_mem 테이블스페이스에 생성하는 예제이다. 테이블스페이스가 존재하지 않으면 오류가 발생하며, 테이블스페이스 관련 자세한 강좌는 "4장 ALTIBASE HDB 테이블스페이스 관리"를 참고해 주세요

 
iSQL> CREATE TABLE employee(
      eno INTEGER PRIMARY KEY,
      ename CHAR(20) NOT NULL,
      dno INTEGER,
      sex CHAR(1) DEFAULT 'M' NOT NULL,
      birth DATE ) 
      TABLESPACE edu_mem ;  
    

  employee 테이블에서 부서 번호가 10 인 조건을 만족하는 데이터를 가진 emp_dept_10 테이블을 생성

 
iSQL> CREATE TABLE  emp_dept_10 
      AS
      SELECT * 
      FROM employee
      WHERE dno = 10 ;      
    

  emp 테이블을 생성하고, 제약조건은 컬럼 레벨로 정의하시오.

 
iSQL> CREATE TABLE emp(
      eno INTEGER CONSTRAINT emp_pk PRIMARY KEY, 
      ename VARCHAR(10) NOT NULL, 
      age NUMBER DEFAULT 1,
      dno INTEGER REFERENCES dept(dno));
    

  emp 테이블을 생성하고, 제약조건은 테이블 레벨로 정의하시오.

 
iSQL> CREATE TABLE emp(
      eno INTEGER, 
      ename VARCHAR(10) NOT NULL, 
      age NUMBER DEFAULT 1,
      dno INTEGER,
      CONSTRAINT emp_pk PRIMARY KEY(eno),
      CONSTRAINT emp_fk FOREIGN KEY (dno) REFERENCES dept(dno));
    

- 강좌 URL : http://www.gurubee.net/lecture/2172

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입