테이블을 "CREATE" 라는 SQL 구문을 이용하여 생성하게 되며, ALTIBASE HDB는 메모리 테이블과 디스크 테이블을 제공하기 때문에 테이블 생성시, 어떤 테이블을 만들 것인지 고려해야 합니다.
테이블을 생성할 때, 다음과 같은 사항들을 주의해야 합니다.
ALTIBASE HDB는 메모리 테이블과 디스크 테이블을 제공하는 DB 입니다. 따라서, 테이블 생성 시에 데이터 특성에 맞게 테이블을 생성해야 합니다.
일반적으로 메모리 테이블에는 고성능/실시간으로 처리해야 하는 데이터를, 디스크 테이블에는 대용량 데이터를 저장하고 관리합니다.
테이블을 생성할 때, 메모리와 디스크로 구분하게 되며, 테이블 생성 구문 하단 부분에 테이블스페이스 지정 시 메모리/디스크 테이블스페이스를 각각 지정하면 됩니다.
지정하려고 하는 테이블스페이스는 테이블보다 먼저 생성되어 있어야 합니다. 존재하지 않는 테이블스페이스를 지정하면 에러가 발생합니다.
테이블을 생성하는 구문은 다음과 같습니다.
CREATE TABLE table_name ( column_name datatype [DEFAULT expr] [column_constraint], …… [table_constraint] ) [MAXROWS integer ] [TABLESPACE tablespace_name ] [AS 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
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.