728x90

1. Oracle에서 TABLE이란?
TABLE은 Oracle Database에서 데이터를 저장하는 가장 기본적인 객체입니다. 각 테이블은 행(Row)과 열(Column)로 구성되며, 데이터베이스의 핵심인 구조적 정보를 담고 있습니다.
2. 테이블 생성 기본 문법
CREATE TABLE 테이블명 (
컬럼명 데이터타입 [제약조건],
...
);
예제: 기본 테이블 생성
CREATE TABLE employees (
employee_id NUMBER PRIMARY KEY,
first_name VARCHAR2(50),
last_name VARCHAR2(50) NOT NULL,
hire_date DATE,
salary NUMBER(10,2)
);
3. 데이터 타입 주요 종류
| 데이터 타입 | 설명 |
|---|---|
| VARCHAR2(n) | 가변 길이 문자열 (최대 n 바이트) |
| CHAR(n) | 고정 길이 문자열 |
| NUMBER(p,s) | 정수 또는 소수 |
| DATE | 날짜와 시간 |
| CLOB | 대용량 문자 데이터 |
4. 제약조건(CONSTRAINT) 설명
- PRIMARY KEY: 테이블 내에서 유일하고 NULL 허용 안됨
- UNIQUE: 중복 금지, NULL 허용 가능
- NOT NULL: NULL 입력 금지
- CHECK: 조건을 만족하는 데이터만 허용
- FOREIGN KEY: 외래 키 설정
5. 제약조건 포함 테이블 생성 예제
CREATE TABLE departments (
department_id NUMBER PRIMARY KEY,
department_name VARCHAR2(100) NOT NULL,
manager_id NUMBER,
location_id NUMBER,
CONSTRAINT fk_location FOREIGN KEY (location_id)
REFERENCES locations(location_id)
);
6. 테이블에 주석 달기 (COMMENT)
COMMENT ON TABLE employees IS '직원 기본 정보 테이블';
COMMENT ON COLUMN employees.salary IS '직원의 월급';
7. 테이블 변경 (ALTER TABLE)
ALTER TABLE employees ADD department_id NUMBER;
ALTER TABLE employees MODIFY salary NUMBER(12,2);
ALTER TABLE employees DROP COLUMN hire_date;
8. 테이블 삭제
DROP TABLE employees;
DROP TABLE employees CASCADE CONSTRAINTS;
CASCADE CONSTRAINTS는 종속된 제약조건까지 함께 삭제합니다.
9. 테이블 복사 및 구조 복제
CREATE TABLE emp_copy AS SELECT * FROM employees;
CREATE TABLE emp_struct LIKE employees;
두 번째 예제는 Oracle에서는 공식적으로 지원하지 않지만, 구조만 복제하려면 SELECT 조건에 WHERE 1=0 등을 활용합니다.
10. 실무 팁: 파티션 테이블 생성 예
CREATE TABLE sales_data (
sale_id NUMBER,
sale_date DATE,
amount NUMBER
)
PARTITION BY RANGE (sale_date) (
PARTITION sales_2023 VALUES LESS THAN (TO_DATE('2024-01-01','YYYY-MM-DD')),
PARTITION sales_2024 VALUES LESS THAN (TO_DATE('2025-01-01','YYYY-MM-DD'))
);
11. 테이블 정보 확인 쿼리
SELECT table_name FROM user_tables;
DESC employees;
SELECT column_name, data_type, nullable FROM user_tab_columns WHERE table_name = 'EMPLOYEES';
12. 성능 관련 고려사항
- 테이블 설계 시 정규화 vs 반정규화 균형 유지
- 자주 사용하는 칼럼에는 인덱스 고려
- 대용량 테이블은 파티셔닝 고려
- 데이터 주기성, 삭제 정책도 고려해야 유지보수 쉬움
13. 테이블과 관련된 시스템 뷰
USER_TABLES: 현재 사용자 테이블 목록USER_TAB_COLUMNS: 칼럼 정보DBA_TABLES,ALL_TABLES: 전체/권한 내 테이블 정보USER_CONSTRAINTS: 제약조건 정보
14. 결론
Oracle 테이블은 모든 데이터 구조의 핵심으로, 정확한 설계와 관리가 매우 중요합니다. 비즈니스 로직에 따라 데이터 타입, 제약조건, 파티션 등의 요소를 전략적으로 활용하면 성능과 유지보수 효율성 모두를 높일 수 있습니다.
출처
- Oracle 공식 문서: https://docs.oracle.com/en/database/
- Oracle SQL & PL/SQL Developer’s Guide
- 오라클 실무 테이블 설계와 튜닝 - 김현민 저
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] CREATE() TABLE, VIEW, USER 생성 실무 예제 총정리 (0) | 2025.06.09 |
|---|---|
| [ORACLE] COMMENT() 구문으로 테이블과 컬럼 설명 문서화하기 (0) | 2025.06.09 |
| [ORACLE] TABLESPACE() 개념부터 생성·관리까지 완벽 가이드 (0) | 2025.06.09 |
| [ORACLE] GRANT() 권한 부여 문법과 실무 예제 완벽 정리 (0) | 2025.06.09 |
| [ORACLE] USER() 계정 생성부터 권한 부여까지 실무 가이드 (0) | 2025.06.09 |