alt

[2026개정] SQLD 2과목 PART1 미리보기 #관계형데이터베이스 #SELECT

2026년 11월 9일 공유

SQL 기본 및 활용: 관계형 데이터베이스와 SELECT문

개요

SQL 기본 및 활용 과목은 총 20개 챕터로 구성되며, 기본 문법(파트 1), 활용 문법(파트 2), **관리 구문(파트 3)**으로 나뉜다. 파트 1과 파트 2의 출제 비중은 비슷하고 관리 구문은 약 4문제 수준으로 출제된다. 파트 2는 내용이 어렵지만 핵심 유형이 반복되므로, 기본 문법을 충분히 익히고 활용 문법은 원리를 이해하는 것을 목표로 한다.

핵심 개념

데이터베이스와 DBMS

  • DBMS는 데이터베이스를 효율적으로 관리하고 조작하는 소프트웨어다.
  • RDBMS는 행과 열로 구성된 정형 데이터를 관리한다. 대표 제품은 Oracle, SQL Server, MySQL, PostgreSQL 등이다.
  • NoSQL DBMS는 주로 반정형·비정형 데이터를 관리한다.
  • SQLD 시험은 RDBMS의 SQL을 중심으로 다루며, 특히 Oracle 문법의 비중이 높다.
  • 데이터 모델링에서는 엔터티·속성·관계를 설계하고, 이를 물리적으로 구현하면 테이블과 컬럼이 된다.

관계형 데이터베이스의 구성과 특성

  • 데이터베이스에는 테이블이 저장되며, 테이블은 행과 열로 이루어진 2차원 구조다.
  • 계정은 데이터베이스에 접속하는 주체이며, 계정별 권한을 설정해 데이터 접근을 통제한다.
  • 스키마는 테이블·뷰·인덱스·제약조건 등 데이터베이스 객체의 구조와 정의를 포괄한다. Oracle에서는 계정과 스키마를 사실상 같은 의미로 사용하는 경우가 많다.
  • 관계형 데이터베이스는 SQL, 제약조건 등을 통해 데이터를 체계적으로 관리하고 신뢰성을 높일 수 있다.
  • 단점으로는 초기 설계가 중요하고, 운영 중 구조 변경이 쉽지 않으며, 시스템 관리와 성능 분석에 전문성이 필요하다는 점이 있다.

데이터 무결성

데이터의 정확성·일관성을 유지하고 결손이나 부정합을 방지하는 것이다.
  • 개체 무결성: 기본 키에 중복값이나 NULL을 허용하지 않는다.
  • 참조 무결성: 외래 키는 참조 대상의 값과 일치해야 한다. 일반적으로 NULL은 허용될 수 있다.
  • 도메인 무결성: 컬럼에 허용되는 값의 범위·형식 등을 제한한다.
  • 널 무결성: 특정 컬럼에 NULL을 허용하지 않도록 한다.
  • 고유 무결성: 고유 키(UNIQUE)로 중복을 제한한다. 고유 키는 NULL을 허용할 수 있다.
  • 키 무결성: 테이블 간 관계가 키를 통해 연결되고 관리되는 성질이다.

SQL 문장 분류

  • DDL: 데이터 정의 언어. 객체를 생성·변경·삭제한다. 예: CREATE, ALTER, DROP, TRUNCATE
  • 자동 커밋 특성이 있어 실행 후 롤백하기 어렵다.
  • TRUNCATE는 테이블 구조를 유지하면서 데이터를 전체 삭제한다.
  • DML: 데이터 조작 언어. 행을 삽입·수정·삭제한다. 예: INSERT, UPDATE, DELETE, MERGE
  • 변경 후 COMMIT으로 저장하거나 ROLLBACK으로 취소한다.
  • DCL: 데이터 제어 언어. 권한을 부여·회수한다. 예: GRANT, REVOKE
  • TCL: 트랜잭션 제어 언어. 예: COMMIT, ROLLBACK
  • DQL: 데이터 조회 언어. SELECT를 가리킨다. 교재나 분류 방식에 따라 SELECT를 DML에 포함하기도 하지만, 조회는 데이터 변경을 수행하지 않는다.

상세 노트

SQL 기본 규칙

  • SQL 문장은 일반적으로 **세미콜론(;)**으로 끝낸다. 여러 문장을 작성하면 세미콜론으로 문장 단위를 구분한다.
  • SQL 키워드는 대소문자를 구분하지 않지만, 실무에서는 일관된 표기 규칙을 따른다.
  • 테이블·컬럼은 모델링과 설계 단계에서 정의하며, Oracle에서는 DESC 테이블명으로 컬럼명, 순서, 데이터형과 길이를 확인할 수 있다.
  • 테이블은 특정 스키마(Oracle에서는 보통 계정)에 소속된다. 같은 스키마 안에서는 테이블명을 중복할 수 없지만, 스키마가 다르면 같은 이름을 사용할 수 있다.

테이블 및 컬럼 이름 규칙

  • 일반적으로 이름은 문자로 시작해야 하며, 숫자로 시작하거나 공백·대부분의 특수문자·예약어를 사용하는 것은 제한된다.
  • Oracle의 객체명 길이 제한은 일반적으로 30바이트다.
  • 이름에 공백이나 특수문자 등을 포함하려면 큰따옴표로 감쌀 수 있지만, 실무에서는 권장되지 않는다.
  • 이름의 대소문자를 그대로 구분하려는 경우에도 큰따옴표를 사용한다.
  • 큰따옴표는 이름을 지정할 때 쓰며, 문자·날짜 상수는 작은따옴표로 표현한다.

SELECT문의 구성과 처리 순서

SELECT문은 다음 절로 구성된다.
절
역할
SELECT
출력할 컬럼과 표현식 지정
FROM
데이터의 출처인 테이블 또는 뷰 지정
WHERE
행 단위 조건으로 필터링
GROUP BY
행을 그룹화해 집계
HAVING
그룹 단위 조건으로 필터링
ORDER BY
결과 정렬
  • 문법 작성 순서: SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY
  • 논리적 처리 순서: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
  • 따라서 SELECT 절에서 정의한 컬럼 별칭은 보통 이후에 처리되는 ORDER BY에서 사용할 수 있지만, 그보다 먼저 처리되는 절에서는 사용할 수 없다.

SELECT와 FROM

  • SELECT *는 모든 컬럼을 출력한다. 별표는 다른 컬럼이나 표현식과 함께 사용할 수 없다.
  • 여러 컬럼은 쉼표로 나열하며, 나열한 순서대로 출력된다.
  • 컬럼뿐 아니라 연산식·함수·상수도 출력할 수 있다. 예를 들어 급여에 1.1을 곱하면 10% 인상된 값을 출력할 수 있다.
  • 문자열 결합에는 ||를 사용한다.
  • 컬럼 별칭은 SELECT 절에서 지정하며, 해당 조회 결과에서만 유효하다. 별칭에 공백이나 특수문자를 넣는 등 일반 규칙을 벗어나려면 큰따옴표로 감쌀 수 있다.
  • FROM 절에는 테이블이나 뷰를 지정한다. 여러 테이블을 함께 조회할 때는 조인 관계를 설정해야 한다.
  • 테이블 별칭은 FROM 절에서 지정한다. Oracle에서는 별칭 앞에 AS를 쓰지 않는 방식이 일반적이다.
  • 테이블 별칭을 선언한 경우 컬럼을 한정할 때는 테이블명 대신 별칭을 사용한다. 예: E.DEPTNO

Oracle의 DUAL 테이블

  • Oracle에서는 FROM 절을 생략할 수 없다.
  • 특정 테이블의 데이터가 필요 없는 계산이나 함수 결과를 조회할 때는 Oracle이 제공하는 DUAL을 사용한다.
  • DUAL은 한 행과 한 컬럼으로 구성된 특수 테이블이다.

DISTINCT와 정렬

  • DISTINCT는 SELECT 바로 뒤에 사용해 중복을 제거한다.
  • 여러 컬럼에 적용하면 모든 지정 컬럼의 값이 함께 같은 행만 중복으로 판단한다.
  • ORDER BY는 결과를 정렬하며, SELECT 절보다 나중에 처리된다. 정렬 기준으로 컬럼 별칭을 사용할 수 있다.
공개 노트 모두 보기