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)
- 실제 테이블에 존재하지 않는 계산 결과
- 산술연산, 함수, 상수 등 포함

문자열 연결 연산자
- Oracle:
||
SELECT EMPNO || '-' || ENAME
FROM EMP;

컬럼 Alias (별칭) ⭐⭐⭐
- 출력 시 임시 이름 부여
- SELECT 절에서만 정의
- AS 생략 가능
SELECT SAL * 1.1 AS NEW_SAL
FROM EMP;
주의사항
- ORDER BY 에서는 별칭 사용 가능
- 별칭에 공백 포함 시 쌍따옴표 필요
- 예약어를 별칭으로 사용할 경우 쌍따옴표 필수
SELECT SAL * 1.1 AS "NEW SAL"
FROM EMP;

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


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

👉 Oracle은 FROM 절 생략 ❌
👉 SQL Server는 일부 상황에서 생략 가능
DISTINCT ⭐⭐⭐
- 중복 행 제거
- SELECT 바로 뒤에 위치
- 한 번만 사용 가능
- 여러 컬럼 지정 시 컬럼 조합 기준으로 중복 판단
SELECT DISTINCT DEPTNO
FROM EMP;
SELECT DISTINCT DEPTNO, JOB
FROM EMP;

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