[DB] 테이블 생성 및 관리
테이블 생성 및 관리
데이터베이스 객체
객체 | 설명 |
테이블 | 기본 저장 단위며 행과 열로 구성된다. |
뷰 | 논리적으로 하나 이상의 테이블에 있는 데이터의 부분 집합을 나타낸다. |
시퀀스 | 숫자 값 생성기입니다. |
인덱스 | 질의의 성능을 향상시킵니다. |
동의어 | 객체에 다른 이름을 제공합니다. |
-테이블은 언제든지 생성할 수 있으며 사용자가 데이터베이스를 사용하는 중에도 생성할 수 있다.
-테이블 크기는 데이터베이스에 전체적으로 할당된 공간만큼 정의되므로 지정할 필요가 없다.
-테이블 구조는 온라인으로 수정할 수 있다.
이름 지정 규칙
1. 반드시 문자로 시작해야 한다.
2. 1자부터30자까지 사용 가능하다.
3. A-Z, a-z, 0~9,__,$,#만 포함해야 한다.
4. 동일한 사용자가 소유한 다른 객체의 이름과 중복되지 않아야 한다.
5. Oracle Server의 예약어가 아니어야 한다. ex) select 사용X
CREATE TABLE 문
오라클 데이터베이스의 테이블
- 사용자 테이블
- 사용자가 생성 및 유지 관리하는 테이블의 collection입니다.
- 사용자가 정보를 포함합니다.
- 데이터 딕셔너리
- Oracle Server가 생성 및 유지 관리하는 테이블의 collection입니다.
-데이터베이스 정보를 포함합니다.
접두어 | 설명 |
USER_ | 사용자가 소유하는 객체에 관한 정보를 포함 |
ALL_ | 사용자가 액세스할 수 있는 모든 테이블에 관한 정보를 포함 |
DBA_ | 제한된 뷰로서 DBA롤을 할당 받은 사용자만 액세스 할 수 있다. |
V$ | 데이터베이스 서버 성능, 메모리 및 잠금에 대한 동적성능 뷰 |
데이터 유형
데이터 유형 | 설명 |
VARCHAR2 (#size) | 가변 길이 문자 데이터 |
CHAR(size) | 고정 길이 문자 데이터 |
NUMBER(p,#) | 가변 길이 숫자 데이터 |
DATE | 날짜 및 시간 값 |
LONG | 최대 2GB의 가변 길이 문자 데이터 |
CLOB | 최대 4GB의 문자 데이터 |
RAW 및 LONG RAW | 원시 이진 데이터 |
BFILE | 외부 파일에 저장된 이진 데이터(최대 4GB) |
ROWID | 테이블에서 행의 고유 주소를 나타내는 64진수 |
- size는 적절한 용량을 배정해준다.( x20%가 적절)
- 서브 쿼리를 사용하여 테이블을 생성한 경우 열은 복사되지 않는다.
- LONG 열은 GROUP BY 또는 ORDER BY절에 포함시킬 수 없다.
- LONG 열은 테이블 당 하나만 사용할 수 있다.
- LONG 열에는 제약 조건을 정의할 수 없다.
- LONG 열보다는 CLOB열을 사용하는것이 좋다.
DateTime 데이터
TimeStamp : 소수점 이하 초까지 포함하는 날짜
서브 쿼리 구문을 사용한 테이블 생성
- CRATE TABLE문과 서브쿼리 옵션을 결합하여 테이블을 생성하고 행을 삽입한다.
- 지정한 열 수를 서브 쿼리 열 수와 일치시켜야 한다.
- 열 이름 및 기본값을 사용하여 열을 정의한다.
90번부서에 근무하는 사원의 이름과 급여를 저장하는 dept90 테이블을 생성하시오.
ALTER TABLE문
-새 열 추가
-기존 열 수정
-열 삭제
SET UNUSED 옵션
-SET UNUSED 옵션을 사용하여 하나 이상의 열을 UNUSED로 표시한다.
- drop UNUSED COLUMNS 옵션을 사용하여 UNUSED로 표시된 열을 제거합니다.
테이블 삭제
- 테이블의 모든 데이터 및 구조를 삭제한다.
- 보류 중인 트랙잭션을 모두 커밋한다.
- 인덱스를 모두 삭제한다.
- DROP TABLE문은 롤백할 수 없다.