테이블 관리

테이블 관리

테이블은 데이터를 저장하기 위한 공간이라고 생각하면 된다. 표 형태로 생각하면 이해하기 쉽다.

일반적인 데이터 저장 형태는 다음과 같다

데이터 예시 : 학생 정보

번호

이름

성별

나이

1

이오리

남자

30

2

베니마루

남자

27

3

마이

여자

21

4

루갈

남자

45

이처럼 데이터가 들어갈 수 있는 형태(ex : 표)를 테이블이라고 한다.

테이블은 행(Row)과 열(Column)으로 구성되어 있다.

  • 행(Row) : 1개의 데이터 단위를 의미. 튜플(Tuple), 레코드(Record)라고도 한다.

  • 열(Column) : 1개의 속성을 의미

테이블 생성

테이블을 생성하기 위해서는 열(Column) 정보를 명시해야 한다.

번호

이름

성별

나이

다음과 같이 테이블을 만들어야 하단에 데이터를 추가할 수 있으며, 데이터는 정해진 유형에 따라 공간을 할당받다. 샘플 테이블 생성 코드는 다음과 같다.

create table kof(
no number(2),
name varchar2(12),
gender varchar2(6),
age number(2)
);

표로 표현하면 다음과 같다.

번호 (숫자2자리)

이름 (문자열 12byte)

성별 (문자열 6byte)

나이 (숫자2자리)

자리 수나 크기를 정하는 이유는 간단하다. 공간을 효율적으로 사용하기 위해서이다. 데이터베이스 역시 저장소이므로 물리적인 저장 공간을 사용하며, 저장 크기가 작을 수록 효율성이 높다고 할 수 있다. 따라서 사용자가 테이블을 만들 때 저장될 데이터의 최대치를 명시해주어 공간을 낭비하는 일 없이 사용할 수 있게 된다.

공간을 정해두지 않고 자동으로 할당할 경우 추가 시간이 소요되어 성능 저하가 발생한다

문자열의 경우 varchar2를 사용하는데, 크기는 byte로 지정한다. 오라클은 기본적으로 UTF-8 인코딩을 사용하기 때문에, 한글의 경우 1글자가 3byte를 차지한다.

인코딩을 확인하기 위한 명령은 다음과 같다.

select parameter, value from nls_database_parameters where parameter = 'NLS_CHARACTERSET'

테이블 조회

다음 명령은 현재 계정에 존재하는 테이블을 조회한다.

select * from tab;

하나의 테이블에 대한 상세 형태를 보고 싶을 경우 describe 명령을 사용한다.

desc[ribe] 테이블이름;

테이블 변경

alter table 테이블이름 add(컬럼명 형태)
alter table 테이블이름 modify(컬럼명 형태)
alter table 테이블이름 drop(컬럼명)

테이블을 변경하는 방법은 3가지가 있다. 각각 컬럼 추가, 컬럼 수정, 컬럼 삭제이며 컬럼 배치 순서를 변경하는 명령은 없다.

우회적으로 컬럼 추가, 컬럼 이름변경, 컬럼 삭제를 이용하여 처리할 수 있다.

테이블 삭제

drop table 테이블이름;

테이블이 삭제된다. 테이블과 관련된 제약조건이 존재할 경우 같이 삭제하여야 한다.

drop table 테이블이름 cascade 제약조건;

테이블 초기화

truncate table 테이블이름;

테이블을 초기 상태로 되돌린다. 데이터는 사라지게 되며, 이는 일반적인 방법으로 복구가 불가능하다.

Last updated