본문 바로가기

SQL Kit/SELECT

아픈 동물 찾기 [ 프로그래머스 | SQL Kit | Level 1 ]

1. 문제 목적

WHERE 절을 사용하여 특정 조건을 만족하는 데이터를 필터링하고 ORDER BY 절을 통해 결과를 정렬하는 방법을 학습하는 데 목적이 있다. 특히, 특정 조건(INTAKE_CONDITION = 'Sick')에 해당하는 데이터만 필터링하여 결과를 출력하는 SQL의 기본적인 쿼리 작성법을 익히는 것을 목표로 한다.


2. 핵심 개념

WHERE 절

  • 정의: WHERE 절은 특정 조건을 지정하여 데이터를 필터링하는 데 사용된다
SELECT 열이름 FROM 테이블이름 WHERE 조건;
SELECT * FROM 테이블 WHERE 열이름 = '값';

2.3 ORDER BY 절

  • 정의: 조회된 데이터를 특정 열 기준으로 정렬하는 데 사용된다.
SELECT 열이름 FROM 테이블이름 ORDER BY 열이름 [ASC|DESC];
  • ASC: 오름차순(기본값).
  • DESC: 내림차순.

3. 문제 해결 절차

  1. 요구사항 분석:
    • ANIMAL_INS 테이블에서 아픈 동물(INTAKE_CONDITION = 'Sick')만 조회해야 한다.
    • 결과는 ANIMAL_ID와 NAME 열을 포함해야 한다.
    • 결과는 ANIMAL_ID 기준으로 오름차순(ASC) 정렬되어야 한다.
  2. 접근 방법:
    • SELECT 문을 사용하여 조회할 열(ANIMAL_ID, NAME)을 명시.
    • WHERE 절을 사용하여 INTAKE_CONDITION = 'Sick' 조건을 지정.
    • ORDER BY 절을 추가하여 ANIMAL_ID 기준으로 정렬.
  3. SQL 문 작성 절차:
    • SELECT 문으로 조회할 열을 나열.
    • WHERE 절로 조건을 명시.
    • ORDER BY 절로 정렬 기준을 추가.

4. 코드 작성

-- ANIMAL_INS 테이블에서 ANIMAL_ID와 NAME 열을 조회
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
-- INTAKE_CONDITION이 'Sick'인 데이터만 필터링
WHERE INTAKE_CONDITION = 'Sick'
-- ANIMAL_ID 기준으로 오름차순 정렬
ORDER BY ANIMAL_ID ASC;

코드 설명:

  1. SELECT ANIMAL_ID, NAME: 테이블에서 ANIMAL_ID와 NAME 열만 선택적으로 조회.
  2. FROM ANIMAL_INS: 데이터를 조회할 테이블을 명시.
  3. WHERE INTAKE_CONDITION = 'Sick': INTAKE_CONDITION 열이 'Sick'인 데이터만 필터링.
  4. ORDER BY ANIMAL_ID ASC: 결과를 ANIMAL_ID 기준으로 오름차순으로 정렬.

5. 코드 분석

SELECT 문

  • SELECT ANIMAL_ID, NAME:
  • 테이블의 모든 열 대신 필요한 열(ANIMAL_ID, NAME)만 선택적으로 조회하여 불필요한 데이터 로드를 줄인다.

WHERE 절

  • WHERE INTAKE_CONDITION = 'Sick':조건은 = 연산자를 사용하여 정확히 일치하는 값을 검색한다.
  • 조건에 따라 데이터를 필터링하여 INTAKE_CONDITION 값이 'Sick'인 행만 결과로 반환한다.

ORDER BY 절

  • ORDER BY ANIMAL_ID ASC:ASC는 명시하지 않아도 기본값으로 적용되지만, 명시적으로 작성하면 가독성이 높아진다.
  • 조회된 데이터를 ANIMAL_ID 기준으로 오름차순으로 정렬한다.