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
'데이터베이스 > ORACLE' 카테고리의 다른 글
Oracle 트랜잭션 관리 쉽게 이해하기: START TRANSACTION, COMMIT, ROLLBACK 활용법 (0) | 2024.12.20 |
---|---|
SQL 초보자를 위한 WHERE CASE WHEN 사용법: Oracle vs 다른 DB (0) | 2024.12.20 |
Oracle SQL 집계 함수 완벽 가이드: COUNT부터 LISTAGG까지! (0) | 2024.12.20 |
Oracle ON DELETE CASCADE와 SET NULL: 외래 키 옵션 완벽 가이드 (0) | 2024.12.20 |
[데이터베이스] ORACLE 조인(JOIN)의 종류와 차이점: INNER, LEFT, RIGHT, FULL OUTER JOIN 예제 코드 정리 (0) | 2024.10.29 |