SQL SELECT 문 핵심 구문 정리

유방현·2024년 10월 28일

SQL SELECT 문 핵심 구문 정리

1. 기본 SELECT 구문

FROM과 WHERE 절

-- 기본 구문
SELECT 컬럼명 FROM 테이블명 WHERE 조건;

-- 예시: 모든 열 조회
SELECT * FROM EMP;

-- 특정 열만 조회
SELECT ENAME, SAL FROM EMP;

-- 조건부 조회
SELECT ENAME, SAL 
FROM EMP 
WHERE SAL >= 2000;

AS (별칭)

-- 열 별칭
SELECT ENAME, SAL AS 급여 FROM EMP;

-- 테이블 별칭
SELECT E.ENAME, E.SAL 
FROM EMP AS E;

-- AS 생략 가능
SELECT E.ENAME, E.SAL 
FROM EMP E;

2. 데이터 정제와 제한

DISTINCT (중복 제거)

-- 중복 제거 기본 구문
SELECT DISTINCT 컬럼명 FROM 테이블명;

-- 예시: 고유한 부서 번호 조회
SELECT DISTINCT DEPTNO FROM EMP;

LIMIT (결과 행 제한)

-- 상위 N개 행 조회
SELECT * FROM EMP LIMIT 5;

-- 특정 범위 조회 (OFFSET 사용)
SELECT * FROM EMP LIMIT 5 OFFSET 5;  -- 6~10번째 행

ORDER BY (정렬)

-- 단일 열 정렬
SELECT ENAME, SAL 
FROM EMP 
ORDER BY SAL DESC;  -- 내림차순

-- 다중 열 정렬
SELECT ENAME, DEPTNO, SAL 
FROM EMP 
ORDER BY DEPTNO ASC, SAL DESC;  -- 부서 오름차순, 급여 내림차순

3. 실무 활용 예제

복합 조건 예시

-- 부서별 직책 목록 (중복 제거)
SELECT DISTINCT job, deptno 
FROM emp 
ORDER BY deptno;

-- 특정 부서 직원 정보 조회 (조건 + 정렬 + 제한)
SELECT job, ename AS name, deptno AS no
FROM emp
WHERE deptno IN (10, 20)
ORDER BY job, name
LIMIT 3;

주요 포인트

  1. SELECT 문 실행 순서

    • FROM → WHERE → SELECT → ORDER BY → LIMIT
  2. 별칭(AS) 사용 시 주의사항

    • ORDER BY 절에서는 별칭 사용 가능
    • WHERE 절에서는 별칭 사용 불가
  3. ORDER BY 특징

    • 기본값은 ASC(오름차순)
    • NULL 값은 MySQL/MariaDB에서 가장 작은 값으로 처리
  4. LIMIT 특징

    • MariaDB/MySQL 전용 구문
    • 다른 DBMS에서는 다른 구문 사용 (예: Oracle의 ROWNUM)

0개의 댓글