데이터베이스/ORACLE

Oracle PRIMARY KEY, FOREIGN KEY, DEFAULT 완벽 가이드 🌟

CodeCaine Explorer 2024. 12. 20. 11:44
728x90
반응형
SMALL

Oracle PRIMARY KEY, FOREIGN KEY, DEFAULT 사용법 🌟

안녕하세요! 😊 오늘은 Oracle Database에서 PRIMARY KEY, FOREIGN KEY, DEFAULT를 사용하는 방법을 쉽고 간단하게 알려드릴게요. 데이터베이스 설계의 기본이 되는 이 세 가지 개념을 정확히 이해하고 실습까지 해볼까요?


1️⃣ PRIMARY KEY란? 🔑

PRIMARY KEY는 테이블에서 각 행을 고유하게 식별하기 위해 사용하는 컬럼(또는 컬럼 조합)입니다.
특징:

  • 값이 고유해야 함.
  • NULL을 허용하지 않음.

PRIMARY KEY 사용법

CREATE TABLE employees (
    emp_id NUMBER PRIMARY KEY,  -- PRIMARY KEY로 설정
    emp_name VARCHAR2(100),
    hire_date DATE
);

이미 있는 테이블에 PRIMARY KEY 추가하기

ALTER TABLE employees 
ADD CONSTRAINT pk_employees PRIMARY KEY (emp_id);

2️⃣ FOREIGN KEY란? 🌍

FOREIGN KEY는 한 테이블의 컬럼이 다른 테이블의 PRIMARY KEY를 참조할 때 사용합니다.
특징:

  • 테이블 간의 관계를 정의.
  • 참조 무결성을 유지(예: 부모 테이블에 없는 값은 허용되지 않음).

FOREIGN KEY 사용법

CREATE TABLE departments (
    dept_id NUMBER PRIMARY KEY,
    dept_name VARCHAR2(100)
);

CREATE TABLE employees (
    emp_id NUMBER PRIMARY KEY,
    emp_name VARCHAR2(100),
    dept_id NUMBER,
    CONSTRAINT fk_department FOREIGN KEY (dept_id) REFERENCES departments (dept_id)
);

이미 있는 테이블에 FOREIGN KEY 추가하기

ALTER TABLE employees 
ADD CONSTRAINT fk_department FOREIGN KEY (dept_id) REFERENCES departments (dept_id);

3️⃣ DEFAULT란? 🎯

DEFAULT는 테이블의 컬럼에 값을 입력하지 않을 경우 기본값을 자동으로 설정하는 기능입니다.
특징:

  • 데이터를 삽입할 때 값이 없으면 기본값 사용.

DEFAULT 사용법

CREATE TABLE products (
    product_id NUMBER PRIMARY KEY,
    product_name VARCHAR2(100),
    price NUMBER DEFAULT 0 -- 기본값 설정
);

값 삽입 예제

INSERT INTO products (product_id, product_name) 
VALUES (1, 'Laptop'); -- price는 0으로 자동 설정

4️⃣ 실전 예제: 세 가지를 조합한 테이블 생성

아래는 PRIMARY KEY, FOREIGN KEY, DEFAULT를 모두 사용하는 실습 예제입니다.

CREATE TABLE customers (
    customer_id NUMBER PRIMARY KEY,
    customer_name VARCHAR2(100),
    country VARCHAR2(50) DEFAULT 'South Korea' -- 기본값 설정
);

CREATE TABLE orders (
    order_id NUMBER PRIMARY KEY,
    order_date DATE DEFAULT SYSDATE, -- 기본값: 현재 날짜
    customer_id NUMBER,
    CONSTRAINT fk_customer FOREIGN KEY (customer_id) REFERENCES customers (customer_id)
);

5️⃣ 예제 실행 결과 확인하기

-- 데이터 삽입
INSERT INTO customers (customer_id, customer_name) VALUES (1, 'Alice');
INSERT INTO orders (order_id, customer_id) VALUES (1001, 1);

-- 결과 확인
SELECT * FROM customers;
SELECT * FROM orders;

결과:

customer_id customer_name country
1 Alice South Korea
order_id order_date customer_id
1001 2024-12-20 1

초보 개발자를 위한 응원 💪

"천천히 따라 하면 어느새 기본 개념 마스터! 😊 데이터베이스의 핵심을 배우고 있는 여러분을 응원합니다!"

728x90
반응형
SMALL