: 테이블은 데이터베이스의 가장 기본적인 객체로, 행과 열의 구조로 데이터를 저장한다. 테이블 생성을 위해서는 해당 테이블에 입력될 데이터를 정의하고, 정의한 데이터를 어떠한 데이터 유형으로 선언할 것인지를 결정해야 한다.
테이블을 생성하는 구문 형식은 다음과 같다.
CREATE TABLE 테이블명(
컬럼명1 데이터 유형 [기본값] [NOT NULL]
,컬럼명2 데이터 유형 [기본값] [NOT NULL]
,컬럼명3 데이터 유형 [기본값] [NOT NULL]
,...
);
: 제약조건이란 사용자가 원하는 조건의 데이터만 유지하기 위한 즉 데이터의 무결성을 유지하기 위한 데이터베이스의 보편적인 방법으로 테이블의 특정 컬럼에 설정하는 제약이다.
NULL
: 아직 정의되지 않은 미지의 값이거나 아직 데이터가 입력되지 않은 경우를 의미한다.
DEFAULT
: 사전에 정의된 기본 값이 자동으로 입력된다.
Oracle은 'DESCRIBE 테이블명;' 또는 간략히 'DESC 테이블명;'으로 해당 테이블에 대한 정보를 확인할 수 있다.
CTAS(Create Table ~ As Select ~)
기존 테이블을 이용한 CTAS방법을 사용하면 컬럼별로 데이터 유형을 다시 정의하지 않아도 된다.
CREATE TABLE TEAM_TEMP AS SELECT * FROM TEAM;
: 컬럼을 추가/삭제하거나 제약조건을 추가/삭제하는 작업을 진행할 수 있다.
ALTER TABLE 테이블명
ADD( 추가할 컬럼명1 데이터유형 [기본값] [NOT NULL]
[,추가할 컬럼명2 데이터유형 [기본값] [NOT NULL]
]);
: 테이블에서 필요 없는 컬럼을 삭제할 수 있으며 데이터가 있거나 없거나 모두 삭제 가능하다.
단 컬럼삭제 후 최소 하나 이상의 컬럼이 테이블에 존재해야하며 한번 삭제된 컬럼은 복구할 수 없다.
ALTER TABLE 테이블명 DROP (삭제할컬럼명1 [,삭제할컬럼명2, ...]);
: 테이블에 존재하는 컬럼에 대해 ALTER TABLE 명령을 이용해 컬럼의 데이터 유형, 디폴트값, NOT NULL 제약조건에 대한 변경을 포함할 수 있다.
ALTER TABLE 테이블명
MODIFY( 컬럼명1 데이터유형 [기본값] [NOT NULL]
[,컬럼명2 데이터유형 [기본값] [NOT NULL]
, ...
]);
: 컬럼명을 변경해야 하는 경우 사용한다.
ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼명 TO 변경컬럼명;
: 테이블 생성시 부여했던 제약조건을 삭제하는 명령어
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;
: 테이블 생성시 제약조건을 적용하지 않았다면, 생성이후에 필요에 의해 제약조건을 추가할 수 있다.
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건 (컬럼명);
: RENAME 명령어를 사용해 테이블의 이름을 변경할 수 있다.
RENAME 기존 테이블명 TO 새로운 테이블명;
: 테이블을 삭제하는 명령어
DROP TABLE 테이블명 [CASCADE CONSTRAINT];
: CASCADE CONSTRAINT 옵션은 해당 테이블과 관계가 있었던 참조되는 제약조건에 대해서도 삭제함을 의미한다.
: 테이블 자체가 삭제되는 것이 아니고 해당 테이블에 들어 있던 모든 행들이 제거되고 저장 공간을 재사용 가능하도록 해제한다.
TRUNCATE TABLE 테이블명;
: DELETE 와 TRUNCATE는 처리하는 방식 자체가 다르다. 테이블의 전체데이터를 삭제하는 경우 시스템활용 측면에서는 DELETE보다는 시스템 부하가 적은 TRUNCATE을 권고햔다. 단 TRUNCATE TABLE의 경우 정상적인 복구가 불가능하므로 주의해야 한다.