[Day 10 | DB] SQL 문법: 중복 제거, 데이터 제한, 정렬, 순서 지정

y♡ding·2024년 10월 25일
0

데브코스 TIL

목록 보기
58/163

SQL에서는 조회 시 중복 제거, 출력 범위 제한, 정렬 등을 통해 데이터를 효율적으로 확인할 수 있습니다. 이를 통해 데이터는 변하지 않으면서도 원하는 조건으로 데이터를 필터링하고 정렬하여 출력할 수 있습니다.


1. 중복값 제거

  • DISTINCT 키워드는 특정 열의 중복값을 제거하여 고유한 값만 출력.
  • 여러 열에 대해 DISTINCT을 사용할 때는 각 열의 조합이 중복이 아닐 때만 제거됩니다.
예제
  • 부서별 직책 목록 출력 (부서번호와 직책의 중복 조합 제거):
    select distinct deptno, job from emp;

2. 출력 범위 제한 (LIMIT)

  • LIMIT 키워드를 사용하여 특정 범위의 데이터만 출력할 수 있습니다.
  • 형식: LIMIT (시작위치,) 출력개수
    • 시작 위치는 생략시 0부터 시작하며, 출력 개수만큼의 행을 반환.
    • offset을 사용하여 특정 지점부터 데이터 가져올 수 있음.
예제
  • 세 번째 행부터 3개의 행만 출력:
    select job, ename, deptno from emp limit 2, 3;

3. 정렬 (ORDER BY)

  • ORDER BY 키워드를 사용하여 특정 열을 기준으로 정렬.
  • 기본 정렬 순서는 오름차순(ASC), 내림차순은 DESC로 명시.
  • 여러 열을 동시에 정렬할 수 있으며, 첫 번째 열로 정렬하고 그다음 열을 정렬하는 방식.
예제
  • 10번 부서와 20번 부서의 직책과 이름을 정렬하여 출력:
    select job, ename, deptno from emp where deptno in(10,20) order by job, ename;
  • 별칭(alias)을 사용하여 열 이름을 변경하여 출력:
    select job, ename as name, deptno as no from emp where deptno in(10,20) order by job, name;

4. 전체 순서와 LIMIT 적용

  • SQL 문에서 LIMITORDER BY 다음에 위치하여 정렬된 결과의 일부만 출력.
  • 일반적인 SQL 문법 순서: SELECT ~ FROM ~ WHERE ~ ORDER BY ~ LIMIT
예제
  • 10번과 20번 부서의 직책과 이름을 정렬 후 상위 3개의 행 출력:
    select job, ename as name, deptno as no from emp where deptno in(10,20) order by job, name limit 3;

요약

  • DISTINCT: 특정 열의 중복값 제거.
  • LIMIT: 지정된 범위의 데이터만 출력.
  • ORDER BY: 특정 열을 기준으로 정렬 (ASC, DESC).
  • SELECT ~ FROM ~ WHERE ~ ORDER BY ~ LIMIT 순서로 조합하여 데이터를 필터링, 정렬, 제한하여 원하는 형식으로 출력 가능.

이와 같은 명령어들은 데이터의 실제 값을 변경하지 않고 출력 형태만 조정합니다.

0개의 댓글

관련 채용 정보