Oracle

Oracle.SQL기본(Table)

calla1013 2025. 5. 31. 18:55
오라클 SQL 기초: 데이터베이스를 다루는 마법의 언어

 

 

오라클 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