CS

[SQLD] SELECT 문

2026년 02월 12일 09:02

SQLD 2과목 – SELECT 문

SELECT 문 개요

데이터를 조회하는 기본 명령문이며, 조회 결과를 가공(연산, 함수, 문자열 결합 등)하여 출력 가능하다.
작성 순서와 실행(해석) 순서는 다르다

SELECT 실행 순서 ⭐⭐⭐

작성 순서

SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY

실행(해석) 순서

FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY

SELECT 기본 구조

SELECT 컬럼명 또는 표현식
FROM 테이블명
WHERE 조건
GROUP BY 그룹컬럼
HAVING 그룹조건
ORDER BY 정렬컬럼;

SELECT 절

  • 출력 대상 지정
  • * 또는 컬럼명, 표현식 사용 가능
  • * 과 특정 컬럼을 함께 사용 ❌
  • SELECT 절에서 표시할 대상 컬럼에 Alias(별칭)을 지정할 수 있음
SELECT * FROM EMP;      -- 전체 컬럼
SELECT EMPNO, ENAME FROM EMP;  -- 특정 컬럼

표현식 (Expression)

  • 실제 테이블에 존재하지 않는 계산 결과
  • 산술연산, 함수, 상수 등 포함

sqld-select1

문자열 연결 연산자

  • Oracle: ||
SELECT EMPNO || '-' || ENAME
FROM EMP;

sqld-select2

컬럼 Alias (별칭) ⭐⭐⭐

  • 출력 시 임시 이름 부여
  • SELECT 절에서만 정의
  • AS 생략 가능
SELECT SAL * 1.1 AS NEW_SAL
FROM EMP;

주의사항

  • ORDER BY 에서는 별칭 사용 가능
  • 별칭에 공백 포함 시 쌍따옴표 필요
  • 예약어를 별칭으로 사용할 경우 쌍따옴표 필수
SELECT SAL * 1.1 AS "NEW SAL"
FROM EMP;

sqld-select3

FROM 절

  • 조회 대상 테이블 지정
  • 여러 테이블 사용 시 콤마로 구분 (Oracle 구문)
SELECT *
FROM EMP, DEPT;
  • 테이블 별칭 선언 가능
  • 별칭 사용 시 컬럼 구분자는 반드시 별칭 사용
SELECT E.ENAME
FROM EMP E
WHERE E.DEPTNO = 10;

sqld-select4

sqld-select5

DUAL 테이블 (Oracle) ⭐⭐⭐

  • Oracle 전용 가상 테이블
  • 실제 테이블 없이 연산 수행 시 사용
  • 1행 1컬럼 구조
SELECT 24 * 123
FROM DUAL;

sqld-select6

👉 Oracle은 FROM 절 생략 ❌
👉 SQL Server는 일부 상황에서 생략 가능

DISTINCT ⭐⭐⭐

  • 중복 행 제거
  • SELECT 바로 뒤에 위치
  • 한 번만 사용 가능
  • 여러 컬럼 지정 시 컬럼 조합 기준으로 중복 판단
SELECT DISTINCT DEPTNO
FROM EMP;
SELECT DISTINCT DEPTNO, JOB
FROM EMP;

sqld-select7

👉 DEPTNO만 같아도 JOB 다르면 다른 행으로 처리