Oracle의 CREATE TABLE 문은 새 테이블을 정의할 때 사용하며, 컬럼과 각 컬럼의 데이터 타입을 지정해요. 기본 구문 구조는 다음과 같아요:
CREATE TABLE table_name (
column1 data_type constraint,
column2 data_type constraint,
...
);
기본 예제
employee_id, first_name, last_name, email, hire_date 컬럼을 가진 employees 테이블을 만들어 볼게요.
CREATE TABLE employees (
employee_id NUMBER(10) PRIMARY KEY,
first_name VARCHAR2(50) NOT NULL,
last_name VARCHAR2(50) NOT NULL,
email VARCHAR2(100) UNIQUE,
hire_date DATE DEFAULT SYSDATE
);
예상 결과:
Table EMPLOYEES created.
컬럼 정의와 데이터 타입
테이블의 각 컬럼에는 이름과 데이터 타입이 있어야 해요. Oracle은 다음을 포함한 다양한 데이터 타입을 지원해요:
- NUMBER: 숫자 값이에요. 정밀도(precision)와 소수 자릿수(scale)를 지정할 수 있어요.
- VARCHAR2: 가변 길이 문자열이에요.
- DATE: 날짜 및 시간 값이에요.
- BLOB: Binary Large Object로, 바이너리 데이터를 저장할 때 사용해요.
예제: 데이터 타입 지정하기
CREATE TABLE products (
product_id NUMBER(10) PRIMARY KEY,
product_name VARCHAR2(255) NOT NULL,
price NUMBER(10, 2),
created_at DATE DEFAULT SYSDATE
);
예상 결과:
Table PRODUCTS created.
제약 조건 추가하기
제약 조건은 데이터 무결성을 보장하기 위해 컬럼에 적용하는 규칙이에요. 자주 쓰는 제약 조건은 다음과 같아요:
- PRIMARY KEY: 각 행을 고유하게 식별해요.
- UNIQUE: 컬럼의 모든 값이 고유하도록 보장해요.
- NOT NULL: 컬럼에 NULL 값이 들어갈 수 없도록 보장해요.
- CHECK: 컬럼의 모든 값이 특정 조건을 만족하도록 보장해요.
- FOREIGN KEY: 두 테이블의 컬럼 간에 연결을 만들어요.
예제: 제약 조건 추가하기:
CREATE TABLE orders (
order_id NUMBER(10) PRIMARY KEY,
customer_id NUMBER(10) REFERENCES customers(customer_id),
order_date DATE NOT NULL,
status VARCHAR2(20) CHECK (status IN ('Pending', 'Shipped', 'Delivered'))
);
예상 결과:
Table ORDERS created.
Beekeeper Studio로 테이블 만들기
Beekeeper Studio에서는 스키마 브라우저 사이드바로 이동해 ‘+’ 버튼을 누르면 새 테이블을 빠르게 만들 수 있어요. 또한 테이블용 ‘구조 보기’를 제공해서 컬럼 추가, 삭제, 이름 변경 등 다양한 데이터베이스 작업을 할 수 있어요. Beekeeper Studio는 Oracle을 비롯한 여러 데이터베이스를 지원하는 오픈 소스 SQL 에디터이자 데이터베이스 관리 도구예요. 테이블을 만들고, 관리하고, 쿼리할 수 있는 사용하기 쉽고 직관적인 인터페이스를 제공해요.
고급 테이블 옵션과 고려 사항
테이블을 만들 때는 다음 옵션을 고려해 보세요:
테이블스페이스
Oracle의 테이블스페이스는 관련된 데이터 파일을 하나로 묶는 논리적 저장 단위예요. 테이블이나 인덱스 같은 데이터베이스 객체를 담는 컨테이너 역할을 해요. 테이블스페이스를 사용하면 스토리지를 더 체계적으로 할당하고 관리할 수 있어요.
CREATE TABLE sales (
sale_id NUMBER(10) PRIMARY KEY,
product_id NUMBER(10) NOT NULL,
sale_date DATE
) TABLESPACE sales_data;
스토리지 매개변수
스토리지 매개변수는 Oracle이 테이블스페이스 안에서 테이블과 인덱스에 공간을 어떻게 할당할지 정의해요. 이 매개변수들은 물리적 스토리지를 관리하고 데이터가 저장되고 액세스되는 방식을 제어하는 데 도움이 돼요.
CREATE TABLE logs (
log_id NUMBER(10) PRIMARY KEY,
log_message CLOB
) STORAGE (INITIAL 10M NEXT 5M);
테이블스페이스와 스토리지 매개변수를 사용하는 이유
- 체계적인 관리: 테이블스페이스로 관련 데이터를 함께 묶으면 관리와 백업이 더 쉬워져요.
- 성능 최적화: 자주 액세스하는 테이블과 인덱스를 더 빠른 디스크에 두거나 자주 쓰지 않는 데이터와 분리해서 성능을 최적화할 수 있어요.
- 데이터 관리: 스토리지 매개변수는 공간을 효율적으로 할당하고 관리하게 해 주어 단편화 가능성을 줄이고 전반적인 데이터베이스 성능을 높여요.
결론
Oracle에서 테이블을 만들려면 데이터 타입, 제약 조건, 스토리지 옵션을 이해해야 해요. 여기서 소개한 예제와 가이드를 따르면 데이터를 더 효과적으로 관리할 수 있을 거예요. 테이블 구조를 정의할 때는 데이터 무결성과 성능을 꼭 고려하세요.
함께 읽으면 좋은 글:
Beekeeper Studio는 무료 오픈 소스 Oracle GUI예요
저는 업무상 MSSQL/MariaDB/Oracle/Postgres와 SQLite를 사용해 레거시 코드부터 새 코드까지 모두 다뤄요. 이제 제게 필요한 모든 걸 하나로 해결해 주는 도구를 찾은 것 같아요. - Chris Pink
Beekeeper Studio는 빠르고 직관적이며 사용하기 쉬운 Oracle 클라이언트예요. 다른 데이터베이스도 많이 지원하고, Windows, Mac, Linux에서 모두 잘 작동해요.
Oracle 사용자들의 Beekeeper Studio 후기
저는 업무상 MSSQL/Mariadb/Oracle/Postgres와 sqlite를 사용해 레거시 코드부터 새 코드까지 모두 다루는데, 이제 제게 필요한 모든 걸 하나로 해결해 주는 도구를 찾은 것 같아요
Beekeeper Studio의 가장 좋은 점은 깔끔한 인터페이스와 데이터 표시 방식이에요. 제가 아는 도구 중 최고예요. 엔지니어로서 Postgres, MySQL, SQLite, Oracle, MS SQL을 쓰는데, Beekeeper는 아주 매끄럽고 여유로운, 자연스럽고 직관적인 인터페이스로 이 모든 걸 해내요. Beekeeper Studio를 후보에 올려 보시면 분명 가장 즐겨 쓰는 도구가 될 거예요.