오라클 SQL과 데이터베이스 기본 구조
오라클 SQL은 단순히 문장을 외우는 과목이 아니라, 데이터베이스가 어떤 구조로 저장되고 조회되는지 이해하는 과목이다. 첫 챕터에서는 스키마, 테이블, 행과 열, SQL 분류와 실행 순서를 통해 이후 학습의 바닥을 단단히 잡는다.
오라클 SQL을 눌렀을 때 바로 챕터 목록이 보이도록 첫 화면을 전체 목차 중심으로 구성했습니다. 앞에서부터 읽으면 수험서처럼 흐름이 이어집니다.
오라클 SQL은 단순히 문장을 외우는 과목이 아니라, 데이터베이스가 어떤 구조로 저장되고 조회되는지 이해하는 과목이다. 첫 챕터에서는 스키마, 테이블, 행과 열, SQL 분류와 실행 순서를 통해 이후 학습의 바닥을 단단히 잡는다.
SELECT 문은 SQL 학습의 출발점이며, 시험과 실무 모두에서 가장 많이 쓰이는 문장이다. 이번 챕터에서는 컬럼 선택, 별칭, DISTINCT, FROM 절의 역할을 중심으로 조회문의 기본 골격을 정리한다.
좋은 SQL은 필요한 행만 남기는 SQL이다. WHERE 절은 조회 결과의 품질을 결정하는 핵심 구간이며, 비교 연산자를 어떻게 쓰느냐에 따라 결과가 완전히 달라진다.
조건이 하나일 때보다 여러 조건이 섞일 때 실수가 많이 나온다. AND, OR, NOT과 BETWEEN, IN, LIKE를 이해하면 실제 업무형 SQL에 훨씬 가까워진다.
NULL은 값이 0인 것도, 빈 문자열인 것도 아닌 특별한 상태다. NULL을 제대로 이해하지 못하면 비교, 집계, 정렬, 함수 결과에서 계속 오답이 생긴다.
정렬은 결과를 해석하는 마지막 단계다. ORDER BY를 이해하면 보고서형 SQL을 더 읽기 쉽게 만들 수 있고, 여러 정렬 기준을 설계하는 감각도 생긴다.
문자 함수는 텍스트 데이터를 다듬고 비교하는 데 필수적이다. 이름, 주소, 코드, 이메일처럼 문자열 중심 데이터가 많은 실무에서는 사용 빈도가 매우 높다.
숫자 함수는 계산 결과를 비즈니스 규칙에 맞게 다듬는 도구다. 반올림, 버림, 나머지 계산 같은 기본 기능만 정확히 익혀도 보고서와 통계형 SQL 품질이 높아진다.
날짜는 SQL에서 가장 자주 틀리는 데이터 타입 중 하나다. 오라클은 날짜 전용 함수가 풍부하기 때문에, 형 변환 대신 전용 함수를 정확히 쓰는 습관이 매우 중요하다.
데이터 타입을 맞추는 일은 SQL 정확도의 기본이다. 오라클에서는 TO_CHAR, TO_DATE, TO_NUMBER 같은 명시적 변환 함수와 CASE 같은 일반 함수가 함께 자주 쓰인다.
집계 함수는 여러 행을 하나의 요약값으로 압축한다. 개수, 합계, 평균, 최솟값, 최댓값을 정확히 다루면 데이터 요약 문제를 빠르게 풀 수 있다.
집계 함수의 진짜 힘은 그룹 단위 요약에서 드러난다. GROUP BY는 데이터를 기준별로 묶고, HAVING은 집계 결과를 다시 필터링한다.
관계형 데이터베이스의 핵심은 테이블을 연결해 의미를 복원하는 데 있다. INNER JOIN은 가장 기본적인 조인으로, 서로 매칭되는 데이터만 결합한다.
실무에서는 매칭되지 않은 데이터도 보고 싶을 때가 많다. OUTER JOIN은 누락된 쪽을 NULL로 채워 결과에 남기며, 오라클 전통 `(+)` 문법도 시험에서 여전히 자주 등장한다.
조인은 같은 테이블을 다시 붙일 수도 있고, 범위 조건으로 연결할 수도 있다. SELF JOIN, CROSS JOIN, 비등가 조인은 조인 개념을 깊게 이해했는지 확인하는 좋은 주제다.
서브쿼리는 하나의 질의 안에서 다른 질의를 이용하는 문법이다. 먼저 한 값을 구하고, 그 값을 바탕으로 바깥 질의를 실행하는 단일행 서브쿼리부터 이해하면 전체 구조가 쉬워진다.
서브쿼리 결과가 여러 행이 되는 순간 비교 연산자 선택이 달라진다. IN, ANY, ALL을 정확히 구분하면 다중행 서브쿼리 문제를 안정적으로 풀 수 있다.
상호연관 서브쿼리는 바깥 질의의 각 행이 안쪽 질의에 영향을 준다. EXISTS와 함께 익히면 “관련 데이터가 있는가”를 검사하는 문제를 매우 자연스럽게 풀 수 있다.
SET 연산자는 여러 SELECT 결과를 집합처럼 합치거나 비교하는 문법이다. 결과 구조가 같아야 하며, 중복 제거 여부를 정확히 구분하는 것이 핵심이다.
조건 분기는 데이터를 사람이 읽기 좋은 형태로 바꾸는 핵심 기술이다. 표준 SQL의 CASE와 오라클 고유 함수 DECODE를 함께 익히면 문제 해석 폭이 넓어진다.
분석 함수는 행을 줄이지 않고도 집계 결과를 각 행에 함께 보여준다. OVER 절과 PARTITION BY를 이해하면 집계와 분석의 차이가 선명해진다.
순위 함수는 정렬된 데이터에 순서를 매긴다. 같은 값이 나왔을 때 번호가 어떻게 붙는지 이해하면 상위 N건 문제와 동점 처리 문제를 확실히 잡을 수 있다.
오라클은 트리 구조 데이터를 위한 계층형 질의 문법을 제공한다. 조직도, 카테고리 트리, 부모-자식 관계를 SQL 한 문장으로 풀 수 있다는 점이 큰 장점이다.
데이터 형태를 회전시키거나 중간 결과를 이름 붙여 재사용하면 복잡한 SQL도 훨씬 읽기 쉬워진다. PIVOT, UNPIVOT, WITH절은 보고서형 SQL에서 특히 빛나는 도구다.
DDL은 데이터 구조를 정의하고 바꾸는 문법이다. 테이블과 컬럼을 만드는 CREATE, 구조를 바꾸는 ALTER, 제거하는 DROP과 TRUNCATE를 정확히 구분해야 한다.
좋은 데이터베이스는 잘못된 데이터를 애초에 받지 않는다. 제약조건은 데이터 무결성을 보장하는 핵심 장치이며, 오라클 SQL 시험에서도 매우 중요한 주제다.
DML은 실제 데이터를 추가하고 바꾸고 삭제하는 문법이다. 테이블 구조보다 더 자주 다루게 되는 영역이므로 문장별 목적과 영향 범위를 명확히 이해해야 한다.
데이터를 바꾼 뒤에는 그 변경을 확정할지 되돌릴지 결정해야 한다. TCL은 트랜잭션을 제어하고, DCL은 사용자 권한을 관리한다.
오라클 SQL 실무에서는 테이블만 다루지 않는다. 뷰로 조회를 추상화하고, 시퀀스로 번호를 만들고, 인덱스로 검색 속도를 높인다.
좋은 SQL은 정답만 맞는 SQL이 아니라, 같은 정답을 더 효율적으로 만드는 SQL이다. 실행 계획과 튜닝 기초를 이해하면 왜 어떤 문장이 느린지 읽을 수 있게 된다.