[New!! 2026] (2과목) SQLD 완벽 요약강의 | 요약강의 | SQL 기본 및 활용 | 최단시간 최대효율👍 | 핵심 요약노트 | SQL개발자
2026년 11월 9일 공유
SQLD 데이터베이스와 SQL 핵심 정리
개요
- 콘텐츠 유형: 강의
- 데이터베이스 관리 시스템(DBMS)의 역할과 관계형 DBMS의 기본 개념을 살펴보고, SQLD 시험에 자주 나오는 SQL 문법과 처리 원리를 정리한다.
- 시험 대비에서는 문법을 암기하는 데 그치지 않고 SQL을 직접 해석하고, 조건에 맞는 결과를 추론하는 연습이 중요하다.
- 시험 범위는 오라클 중심이며, SQL Server와의 주요 차이도 함께 알아둘 필요가 있다.
핵심 개념
- DBMS: 데이터베이스를 관리하고 사용자가 데이터에 접근할 수 있도록 환경을 제공하는 시스템.
- 관계형 DBMS(RDBMS): 데이터를 테이블로 관리하며, 테이블 간 관계를 기본키와 외래키로 표현한다.
- SQL: 관계형 데이터베이스에 접근하고 데이터를 정의·조작·제어하는 표준 언어.
- 관계 대수: SQL의 이론적 기반이 되는 수학적 연산 체계. 예를 들어 선택은 행을, 프로젝션은 열을 추출하는 개념과 연결된다.
- SELECT 처리 순서:
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
- 작성 순서와 처리 순서는 다르므로 구분해야 한다.
- 강의에서는 처리 순서를 FWGHSO로 암기하는 방법을 소개한다.
- 행과 열: 열은 컬럼·필드·속성, 행은 튜플·로우·레코드라고도 한다.
- 함수: 입력 하나마다 결과 하나를 반환하면 단일행 함수, 여러 행을 입력받아 결과 하나를 반환하면 다중행 함수다. 집계 함수는 다중행 함수에 해당한다.
- 그룹 처리와 윈도우 함수의 차이
GROUP BY는 행을 그룹화해 결과 행 수를 줄인다.
- 윈도우 함수는
OVER를 사용하며, 원래 행 수를 유지하면서 각 행에 계산 결과를 덧붙인다.
상세 정리
1. 관계형 데이터베이스와 SQL
- 대표적인 RDBMS에는 오라클, SQL Server, MySQL 등이 있다. SQLD 시험은 특히 오라클 문법에 비중을 두며 SQL Server와의 차이도 다룬다.
- SQL 명령은 크게 **데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL), 트랜잭션 제어어(TCL)**로 구분한다.
- 관계 대수는 SQL의 이론적 기초다. 선택은 행 추출, 프로젝션은 열 추출의 개념과 관련된다.
2. SELECT와 별칭
SELECT는 데이터를 조회하는 기본 명령이다.
SELECT *는 전체 열을 조회하며, 필요한 열만 지정하면 해당 열만 출력한다.
DISTINCT는 중복 결과를 제거한다.
AS를 이용해 열이나 테이블에 별칭을 붙일 수 있으며,AS는 생략할 수 있다.
- 별칭은 일반적으로
WHERE에서 사용할 수 없다.WHERE가SELECT보다 먼저 처리되기 때문이다. 반면ORDER BY에서는SELECT이후 처리되므로 열 별칭을 사용할 수 있다.
- 별칭에 공백이나 특수 문자가 필요한 경우 인용부호를 사용할 수 있다. 예약어를 별칭으로 쓰는 것은 주의해야 한다.
- 문자열 연결 방식은 DBMS마다 다르다.
- 오라클:
||또는CONCAT
- SQL Server:
+
3. 함수
- 오라클에서는 테이블 없이 함수 결과를 확인할 때 더미 테이블
DUAL을 사용할 수 있다.
- 문자 함수: 문자열 추출, 공백·지정 문자 제거 등을 수행한다.
SUBSTR는 시작 위치와 길이를 지정해 문자열을 추출하며, 음수 시작 위치는 뒤에서부터 센다.TRIM은 양쪽 끝의 공백 또는 지정 문자를 제거한다.
- 숫자 함수
ROUND: 반올림
TRUNC: 지정 자릿수 아래를 버림
FLOOR: 바닥값
CEIL: 천장값
- 날짜 함수: 오라클의 현재 날짜 함수는
SYSDATE, SQL Server에서는GETDATE()를 사용한다.
- 변환 함수: 숫자·문자·날짜 간 변환에
TO_CHAR,TO_DATE,TO_NUMBER등을 사용한다. 데이터의 겉모양이 같더라도 자료형에 따라 비교와 연산 결과가 달라진다.
- 집계 함수:
COUNT,SUM,AVG,MIN,MAX등이 있다.
COUNT(*)는 전체 행 수를 센다.
COUNT(열)은 해당 열의 NULL을 제외하고 센다.
- 집계 함수는 기본적으로 NULL을 제외해 계산한다.
- 집계 함수는 일반적인
WHERE조건에서 직접 사용할 수 없으며, 그룹 조건은HAVING으로 지정한다.
- NULL 처리 함수
NVL등은 값이 NULL일 때 대체값을 반환한다.
NULLIF는 두 값이 같으면 NULL, 다르면 첫 번째 값을 반환한다.
COALESCE는 왼쪽부터 확인해 처음으로 NULL이 아닌 값을 반환한다.
- NULL 비교에는
= NULL이 아니라IS NULL,IS NOT NULL을 사용한다.
- 조건 분기:
CASE와 오라클의DECODE로 조건에 따른 값을 반환할 수 있다.
4. 조건, 그룹화, 정렬
WHERE는 행 단위로 조건을 적용한다. 비교 연산자,AND·OR,IN,BETWEEN,LIKE등을 사용할 수 있다.
BETWEEN A AND B는 양 끝값을 포함한다.
LIKE의 와일드카드:
%: 문자가 0개 이상
_: 정확히 한 문자
%와_자체를 문자로 검색하려면ESCAPE를 지정한다.
GROUP BY는 지정한 열을 기준으로 그룹화하며, 그룹별 집계 결과를 구할 때 사용한다.
HAVING은 그룹 단위 조건을 지정한다.WHERE는 그룹화 전에 행을 거르고,HAVING은 그룹화 이후 그룹을 거른다. 먼저 불필요한 행을WHERE에서 줄이면 효율에 유리할 수 있다.
ORDER BY는 결과를 정렬하며 처리 순서상 마지막에 수행된다. 기본은 오름차순이며, 내림차순은DESC로 지정한다. 여러 정렬 기준을 함께 지정할 수 있고 열 번호로도 정렬할 수 있다.
- NULL의 기본 정렬 위치는 DBMS별로 다를 수 있다. 강의에서는 오라클과 SQL Server의 차이를 시험 유의사항으로 강조한다.
5. 조인과 서브쿼리
- 조인은 여러 테이블의 데이터를 연결해 하나의 결과로 조회한다.
- 동등 조인: 같은 값끼리 연결한다.
- 비동등 조인: 범위 조건 등 동등 비교가 아닌 조건으로 연결한다.
- 표준 조인에서는
JOIN ... ON또는 공통 열을 이용하는USING을 쓸 수 있다.
- 자연 조인은 이름이 같은 열을 자동으로 기준 삼는다.
- 교차 조인은 모든 행의 조합을 반환한다.
- 외부 조인은 기준 테이블의 미일치 행도 포함한다. 왼쪽·오른쪽·전체 외부 조인이 있다.
- 서브쿼리는 SQL 문 안에 포함된 다른 SQL 문이다. 반환 결과가 단일 값인지, 여러 행·열인지에 따라 적절한 비교 연산자와 함께 사용한다.
IN,ANY,ALL,EXISTS등의 연산자를 활용할 수 있다.
- 인라인 뷰는
FROM절에 위치한 서브쿼리다. 질의 결과를 논리적인 테이블처럼 다루며, 실제 데이터가 별도로 저장되는 테이블과는 다르다. 뷰는 데이터 노출을 제한하는 보안성, 구조 변경에 대한 독립성, 재사용 편의성을 제공할 수 있다.
6. 집합 연산과 그룹 함수
- 집합 연산자는 여러 조회 결과를 결합한다.
UNION ALL: 중복을 유지한다.
UNION: 중복을 제거한다.
INTERSECT: 교집합
MINUS: 차집합(오라클)
- 집합 연산을 하려면 각 조회 결과의 열 개수와 자료형이 호환되어야 한다.
- 그룹 함수:
ROLLUP: 지정한 열의 계층적 소계와 총계를 계산한다. 열 순서가 결과에 영향을 준다.
CUBE: 지정한 열의 가능한 조합별 집계 결과를 계산한다.
GROUPING SETS: 집계할 그룹 조합을 직접 지정한다.
7. 윈도우 함수
OVER와 함께 사용하며, 행을 그룹으로 축약하지 않고 각 행에 계산 결과를 반환한다.
- 순위 함수에는
ROW_NUMBER,RANK,DENSE_RANK가 있다. 동순위 처리와 다음 순위 부여 방식이 서로 다르다.
- 집계 함수도 윈도우 함수로 사용할 수 있다.
PARTITION BY는 계산 범위를 그룹으로 나누고,ORDER BY는 계산 순서를 지정한다.
LAG와LEAD는 이전 행·다음 행의 값을 가져오며,FIRST_VALUE와LAST_VALUE는 범위 내 첫 값·마지막 값을 반환한다.
- 윈도우 프레임 범위는
ROWS와RANGE로 지정한다.
ROWS는 행 위치 기준이다.
RANGE는 정렬값이 같은 행을 같은 범위로 다룰 수 있다.
LAST_VALUE등에서 의도한 결과를 얻으려면 프레임 범위를 명시해야 할 수 있다. 기본 범위가 현재 행까지라면 미래 행의 값은 포함되지 않는다.
NTILE(n)은 행을 n개 그룹으로 나눈다. 균등하게 나누어떨어지지 않으면 앞 그룹부터 행을 배정한다.
8. 상위 N개 조회와 계층형 질의
- 상위 N개 조회에는 정렬 기준이 필요하다. 정렬 없이 상위 행만 제한하면 원하는 기준의 상위 결과가 아닐 수 있다.
- SQL Server는
TOP, 오라클은ROWNUM등 DBMS별 문법을 사용한다. 오라클에서ROWNUM은 행이 처리되는 과정에서 부여되므로 조건을 설정할 때 처리 순서를 유의해야 한다.
- 계층형 질의는 부모·자식 관계를 따라 데이터를 조회한다.
START WITH로 시작 행을 지정하고CONNECT BY로 관계를 표현한다.
PRIOR의 위치에 따라 부모에서 자식으로 내려가거나 자식에서 부모로 올라가는 방향이 달라진다.LEVEL은 계층 단계,SYS_CONNECT_BY_PATH는 경로 표현에 활용된다.
- 셀프 조인은 동일한 테이블을 서로 다른 별칭으로 두 번 참조해 연결하는 방식이다.
9. 피벗과 정규 표현식
PIVOT은 행 데이터를 열 방향으로 재구성하고,UNPIVOT은 열 데이터를 행 방향으로 바꾼다.
- 정규 표현식은 패턴 검색과 문자열 검증에 활용된다. 시험에서는 방대한 문법 전체보다 자주 쓰이는 패턴과 함수를 우선 학습하는 것이 효율적이다.
10. DML과 트랜잭션
- DML
INSERT: 데이터 삽입. 열을 명시하지 않거나 일부만 지정하면 열 순서와 생략된 값의 처리를 확인해야 한다.
UPDATE: 기존 데이터 수정.WHERE를 빠뜨리면 모든 행이 변경될 수 있다.
DELETE: 조건에 맞는 행 삭제.
MERGE: 조건에 따라 기존 행을 수정하거나 새 행을 삽입한다.
- 트랜잭션은 데이터베이스의 논리적 작업 단위이며, ACID 특성과 관련된다.
COMMIT은 변경 사항을 확정하고,ROLLBACK은 변경 사항을 되돌린다.SAVEPOINT를 지정하면 특정 지점까지 부분적으로 롤백할 수 있다.
- 자동 커밋 동작은 DBMS와 설정에 따라 다르므로 오라클과 SQL Server의 차이를 확인해야 한다.
- 트랜잭션 격리 수준에 따라 더티 리드, 반복 불가능 읽기, 팬텀 읽기와 같은 현상의 발생 여부가 달라질 수 있다.
11. DDL과 DCL
- DDL은 데이터베이스 구조를 정의·변경한다.
CREATE: 객체 생성
ALTER: 구조 변경
DROP: 객체 삭제
TRUNCATE: 테이블 구조를 유지하면서 데이터를 비움
- 기본키는 NULL과 중복을 허용하지 않는다. 고유 제약조건은 중복을 허용하지 않지만 NULL 처리 방식은 DBMS에 따라 다를 수 있다. 외래키는 테이블 간 참조 관계를 설정한다.
CHECK는 허용값이나 조건을 제한한다.
TRUNCATE는DELETE와 동작 특성이 다르며, 롤백 가능 여부 등은 DBMS에 따라 달라질 수 있다.
- DCL
GRANT: 권한 부여
REVOKE: 권한 회수
- 객체 권한을 다른 사용자에게 전달할 수 있도록 하는 옵션과, 시스템 관리 권한을 부여하는 옵션을 구분해야 한다.
학습 핵심: SQL은 처리 순서를 기준으로 한 단계씩 해석하고, 행 조건(WHERE), 그룹 조건(HAVING), 정렬(ORDER BY)의 역할을 구분해야 한다. 문법 암기와 함께 다양한 질의의 결과를 직접 추론하는 연습이 중요하다.