오라클 SQL 기초: 데이터베이스를 다루는 마법의 언어
SQL은 데이터베이스와 대화하는 언어입니다. 오라클에서는 SQL을 통해 테이블을 생성하고, 데이터를 조작하며, 권한과 트랜잭션을 제어할 수 있습니다. 오늘은 그 중에서도 CREATE TABLE과 제약조건을 중심으로 실용적인 예제와 함께 익혀봅시다.
1. SQL의 언어 분류
- DDL: CREATE, ALTER, DROP 등 데이터 구조 정의
- DML: SELECT, INSERT, UPDATE, DELETE - 데이터 조작
- DCL: GRANT, REVOKE - 접근 제어
- TCL: COMMIT, ROLLBACK - 트랜잭션 제어
2. CREATE TABLE 기본 문법
CREATE TABLE members (
mem_id VARCHAR2(10) PRIMARY KEY,
mem_name VARCHAR2(30) NOT NULL,
mem_email VARCHAR2(50) UNIQUE,
mem_birth DATE,
mem_gender CHAR(1) CHECK (mem_gender IN ('M', 'F'))
);
💡 TIP:
VARCHAR2는 오라클에서 권장하는 가변 문자 타입입니다. 고정 크기가 필요한 경우에만 CHAR을 사용하세요.3. 주요 제약조건 종류
🔒 NOT NULL
해당 컬럼에 반드시 값이 입력되어야 합니다.
mem_name VARCHAR2(30) NOT NULL
🌐 UNIQUE
중복을 허용하지 않습니다 (NULL은 중복 가능).
mem_email VARCHAR2(50) UNIQUE
🆔 PRIMARY KEY
각 행을 고유하게 식별합니다. NOT NULL + UNIQUE 조건을 포함합니다.
🔗 FOREIGN KEY
다른 테이블의 PRIMARY KEY를 참조합니다.
CREATE TABLE orders (
order_id NUMBER PRIMARY KEY,
mem_id VARCHAR2(10),
CONSTRAINT fk_member FOREIGN KEY (mem_id)
REFERENCES members(mem_id)
);
✅ CHECK
입력값이 특정 조건을 만족해야 합니다.
mem_gender CHAR(1) CHECK (mem_gender IN ('M', 'F'))
4. 복합 기본키 (Composite Key)
두 개 이상의 컬럼을 조합해 고유한 키로 사용합니다.
CREATE TABLE enrollments (
student_id VARCHAR2(10),
course_id VARCHAR2(10),
grade NUMBER,
CONSTRAINT pk_enroll PRIMARY KEY (student_id, course_id)
);
5. 데이터 타입 간단 정리
- VARCHAR2(n): 가변 문자열
- CHAR(n): 고정 길이 문자열
- NUMBER(p, s): 정수/실수
- DATE: 날짜 + 시간
- BOOLEAN: 오라클에는 없음 → 대신
CHAR(1)+CHECK사용
6. 정리하며
SQL은 데이터베이스의 모든 작업을 제어하는 핵심 도구입니다. 그 중에서도 CREATE TABLE과 제약조건은 가장 기초이자 가장 중요합니다. 오늘 배운 내용을 토대로 직접 실습해보고, 구조적인 데이터베이스 설계를 해보세요!
'Oracle' 카테고리의 다른 글
| Oracle.조인과 서브쿼리 (0) | 2025.05.31 |
|---|---|
| Oracle.그룹 쿼리와 집계함수 (1) | 2025.05.31 |
| Oracle.SQL함수 (0) | 2025.05.31 |
| Oracle.데이터 베이스 객체 (0) | 2025.05.31 |
| Oracle.데이터 베이스 이해 (2) | 2025.05.25 |