1️⃣ 기초 단계 심화 설명 (예제 포함)

✅ SQL 개요

SQL(Structured Query Language)은 관계형 데이터베이스(RDBMS)를 관리하는 언어입니다.
Oracle Database는 대표적인 RDBMS 중 하나이며, SQL을 사용하여 데이터를 저장, 조회, 수정, 삭제할 수 있습니다.


---

✅ 기본 SQL 문법

1. SELECT 문 기본

데이터를 조회하는 가장 기본적인 SQL 문법입니다.

SELECT first_name, last_name FROM employees;

📌 설명: employees 테이블에서 first_name과 last_name 열을 선택하여 출력합니다.

📌 출력 예시:
| first_name | last_name  |
|------------|------------|
| John       | Doe        |
| Jane       | Smith      |


---

2. WHERE 조건절

특정 조건을 만족하는 데이터만 조회할 수 있습니다.

SELECT * FROM employees WHERE department = 'IT';

📌 설명: department가 'IT'인 직원들만 조회합니다.

✅ 추가 예시 (연산자 사용)

SELECT * FROM employees WHERE salary >= 5000;

📌 설명: salary가 5000 이상인 직원만 조회합니다.

SELECT * FROM employees WHERE first_name LIKE 'J%';

📌 설명: first_name이 'J'로 시작하는 직원만 조회합니다. (LIKE 'J%' 사용)


---

3. ORDER BY (정렬)

데이터를 오름차순(ASC) 또는 내림차순(DESC)으로 정렬합니다.

SELECT first_name, last_name, salary FROM employees ORDER BY salary DESC;

📌 설명: salary 기준으로 내림차순(DESC) 정렬하여 높은 급여부터 출력합니다.

✅ 출력 예시:
| first_name | last_name | salary |
|------------|------------|--------|
| Jane       | Smith     | 7000   |
| John       | Doe       | 5000   |


---

4. DISTINCT (중복 제거)

중복된 값을 제거하고 고유한 값만 출력합니다.

SELECT DISTINCT department FROM employees;

📌 설명: employees 테이블에서 중복을 제거한 department 목록만 출력합니다.

✅ 출력 예시:
| department |
|------------|
| IT         |
| HR         |
| Sales      |


---

✅ 데이터 조작 (DML - Data Manipulation Language)

1. INSERT (데이터 삽입)

테이블에 새로운 데이터를 추가합니다.

INSERT INTO employees (first_name, last_name, department, salary)  
VALUES ('Alice', 'Brown', 'HR', 6000);

📌 설명: 'Alice Brown' 직원을 HR 부서에 급여 6000으로 추가합니다.


---

2. UPDATE (데이터 수정)

특정 행의 데이터를 수정합니다.

UPDATE employees SET salary = 7500 WHERE first_name = 'Alice' AND last_name = 'Brown';

📌 설명: 'Alice Brown' 직원의 급여를 7500으로 변경합니다.


---

3. DELETE (데이터 삭제)

특정 데이터를 삭제합니다.

DELETE FROM employees WHERE first_name = 'Alice' AND last_name = 'Brown';

📌 설명: 'Alice Brown' 직원을 employees 테이블에서 삭제합니다.


---

4. COMMIT & ROLLBACK (트랜잭션 제어)

COMMIT → 변경 사항을 영구 저장

ROLLBACK → 변경 사항을 되돌림


DELETE FROM employees WHERE department = 'HR';
ROLLBACK;

📌 설명: HR 부서의 모든 직원을 삭제했지만, ROLLBACK을 실행하면 삭제가 취소됩니다.


---

✅ 기본 함수 사용

1. 문자 함수 (VARCHAR 데이터 처리)

SELECT UPPER(first_name), LOWER(last_name) FROM employees;

📌 설명:

UPPER() → 대문자로 변환

LOWER() → 소문자로 변환


✅ 출력 예시:
| UPPER(first_name) | LOWER(last_name) |
|--------------------|-----------------|
| JOHN             | doe              |
| JANE             | smith            |

SELECT SUBSTR(first_name, 1, 3) FROM employees;

📌 설명: first_name에서 앞 3글자만 추출

✅ 출력 예시:
| SUBSTR(first_name, 1, 3) |
|--------------------------|
| Joh                      |
| Jan                      |


---

2. 숫자 함수 (NUMBER 데이터 처리)

SELECT ROUND(1234.567, 2), TRUNC(1234.567, 2);

📌 설명:

ROUND(값, 소수점 자리) → 반올림 (1234.57)

TRUNC(값, 소수점 자리) → 버림 (1234.56)


✅ 출력 예시:
| ROUND | TRUNC |
|--------|--------|
| 1234.57 | 1234.56 |


---

3. 날짜 함수 (DATE 데이터 처리)

SELECT SYSDATE, ADD_MONTHS(SYSDATE, 3), LAST_DAY(SYSDATE) FROM dual;

📌 설명:

SYSDATE → 현재 날짜 출력

ADD_MONTHS(SYSDATE, n) → n개월 후 날짜 계산

LAST_DAY(SYSDATE) → 해당 월의 마지막 날짜


✅ 출력 예시:
| SYSDATE  | ADD_MONTHS(SYSDATE, 3) | LAST_DAY(SYSDATE) |
|------------|---------------------|----------------|
| 2025-03-29 | 2025-06-29          | 2025-03-31     |


---

✅ 기본 집계 함수 (Aggregate Functions)

집계 함수는 여러 행을 하나의 결과로 요약하는 함수입니다.

SELECT COUNT(*) AS total_employees, AVG(salary) AS avg_salary  
FROM employees WHERE department = 'IT';

📌 설명:

COUNT(*) → IT 부서 직원 수

AVG(salary) → IT 부서 평균 급여


✅ 출력 예시:
| total_employees | avg_salary |
|----------------|------------|
| 5              | 6200       |


---

📌 정리

기초 SQL 문법을 익히면서 SELECT, WHERE, ORDER BY, INSERT, UPDATE, DELETE, 기본 함수 등을 연습하는 것이 중요합니다.
이제 중급 단계(JOIN, GROUP BY, HAVING, 서브쿼리)로 넘어갈 수 있습니다!

더 궁금한 점이 있으면 알려주세요!


반응형

+ Recent posts