아래는 Oracle SQL 초보자를 위한 커리큘럼을 세분화하고 각 항목에 Step-by-Step으로 학습 예제를 추가한 상세 내용입니다. 학생들이 단계별로 실습을 통해 이해도를 높일 수 있도록 구성했습니다.
1. Oracle SQL 기본 개념
1.1 데이터베이스와 SQL 개요
• 설명: 데이터베이스와 SQL의 역할 이해 • 예제: Oracle 데이터베이스를 설치하고 Oracle SQL Developer 접속
1.2 기본 SQL 문법 이해
• SELECT 문 기본 구조
SELECT 'Hello, Oracle SQL!' AS greeting FROM DUAL;
• DUAL: Oracle에서 테스트 쿼리를 실행할 때 사용되는 가상 테이블
1.3 데이터 타입
• 설명: 자주 사용하는 데이터 타입 익히기 • 예제: 테이블 생성 예제
CREATE TABLE sample_table (
id NUMBER(5), name VARCHAR2(50), salary NUMBER(10, 2), hire_date DATE
);
2. 데이터 검색 및 필터링
2.1 SELECT 및 WHERE 사용
• 설명: 특정 조건의 데이터 검색 • 예제:
SELECT name, salary FROM employees WHERE salary > 5000;
2.2 정렬
• 설명: 데이터를 특정 기준으로 정렬 • 예제:
SELECT name, salary FROM employees ORDER BY salary DESC;
2.3 비교 및 논리 연산자
• 예제:
SELECT name, department_id FROM employees WHERE department_id IN (10, 20) AND salary > 3000;
3. SQL 함수 활용
3.1 문자열 함수
• 설명: 문자열 데이터를 변환하는 함수 활용 • 예제:
SELECT UPPER(name) AS uppercase_name,
LOWER(name) AS lowercase_name, SUBSTR(name, 1, 3) AS short_name
FROM employees;
3.2 숫자 함수
• 예제:
SELECT salary, ROUND(salary, -2) AS rounded_salary FROM employees;
3.3 날짜 함수
• 예제:
SELECT hire_date, SYSDATE AS today,
MONTHS_BETWEEN(SYSDATE, hire_date) AS months_worked
FROM employees;
4. 데이터 정렬 및 그룹화
4.1 GROUP BY
• 예제:
SELECT department_id, AVG(salary) AS avg_salary FROM employees GROUP BY department_id;
4.2 HAVING
• 예제:
SELECT department_id, AVG(salary) AS avg_salary FROM employees GROUP BY department_id HAVING AVG(salary) > 5000;
5. 데이터 조작
5.1 데이터 삽입
• 예제:
INSERT INTO employees (id, name, salary, hire_date) VALUES (101, 'John Doe', 4000, SYSDATE);
5.2 데이터 수정
• 예제:
UPDATE employees SET salary = salary * 1.1 WHERE department_id = 10;
5.3 데이터 삭제
• 예제:
DELETE FROM employees WHERE department_id = 20;
6. 테이블 생성 및 관리
6.1 테이블 생성
• 예제:
CREATE TABLE departments (
department_id NUMBER PRIMARY KEY, department_name VARCHAR2(100)
);
6.2 테이블 수정
• 예제:
ALTER TABLE departments ADD location_id NUMBER;
6.3 테이블 삭제
• 예제:
DROP TABLE departments;
7. 데이터 간 관계 설정
7.1 조인
• 예제:
SELECT e.name, d.department_name FROM employees e INNER JOIN departments d ON e.department_id = d.department_id;
7.2 서브쿼리
• 예제:
SELECT name FROM employees WHERE department_id = (SELECT department_id FROM departments WHERE department_name = 'HR');
8. 고급 SQL
8.1 뷰 생성
• 예제:
CREATE VIEW employee_summary AS SELECT department_id, COUNT(*) AS num_employees FROM employees GROUP BY department_id;
8.2 계층적 쿼리
• 예제:
SELECT employee_id, manager_id, LEVEL FROM employees START WITH manager_id IS NULL CONNECT BY PRIOR employee_id = manager_id;
8.3 집합 연산자
• 예제:
SELECT name FROM employees WHERE department_id = 10 UNION SELECT name FROM employees WHERE salary > 8000;
9. 성능 최적화
9.1 인덱스
• 예제:
CREATE INDEX idx_employee_salary ON employees(salary);
9.2 실행 계획
• 예제:
EXPLAIN PLAN FOR SELECT * FROM employees WHERE salary > 5000;
이 커리큘럼에 따라 차근차근 학습을 진행하면 초보자도 Oracle SQL의 핵심 내용을 체계적으로 이해하고 실습할 수 있습니다. 각 단계마다 연습 문제를 포함하여 학습 효과를 극대화할 수 있습니다!