본문 바로가기

SQL Kit/STRING, DATE

특정 옵션이 포함된 자동차 리스트 구하기 [ 프로그래머스 | SQL Kit | Level 1 ]

1. 문제 목적

문자열 처리조건 검색을 학습하기 위한 것입니다. LIKE 연산자를 사용하여 문자열 안에 특정 키워드가 포함된 데이터를 검색하는 방법을 연습할 수 있습니다.

2. 핵심 개념

LIKE 연산자

  • 정의: 문자열 열에서 특정 패턴을 가진 데이터를 검색하는 데 사용되는 연산자입니다.
SELECT 열이름
FROM 테이블이름
WHERE 열이름 LIKE '%패턴%';

  • %: 0개 이상의 임의의 문자와 일치합니다.
  • _: 정확히 하나의 임의의 문자와 일치합니다.

3. 문제 해결 절차

  1. 문제 이해:
    • 테이블에서 OPTIONS 열에 네비게이션 옵션이 포함된 차량을 찾는다.
    • CAR_ID를 기준으로 오름차순 정렬하여 결과를 반환한다.
  2. 데이터 검색 조건 설정:
    • OPTIONS 열에 네비게이션이라는 키워드가 포함된 데이터를 찾기 위해 LIKE '%네비게이션%' 조건을 사용한다.
  3. 정렬 추가:
    • 검색된 결과를 CAR_ID 열을 기준으로 오름차순(ASC) 정렬한다.
  4. SQL 작성 및 실행:
    • 조건에 맞는 SQL문을 작성하고 실행하여 결과를 확인한다.

4. 코드 작성

-- 1. CAR_ID와 관련 정보를 선택
SELECT CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS
-- 2. CAR_RENTAL_COMPANY_CAR 테이블에서 데이터를 검색
FROM CAR_RENTAL_COMPANY_CAR
-- 3. OPTIONS 열에서 '네비게이션' 키워드를 포함하는 데이터를 찾기
WHERE OPTIONS LIKE '%네비게이션%'
-- 4. CAR_ID 기준으로 오름차순 정렬
ORDER BY CAR_ID ASC;

주석 설명:

  1. SELECT: 반환할 열을 선택합니다. 여기서는 CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS 열을 선택했습니다.
  2. FROM: 데이터를 검색할 테이블을 지정합니다.
  3. WHERE: OPTIONS 열에서 네비게이션이라는 키워드를 포함한 데이터를 필터링합니다. %는 앞뒤로 다른 문자열이 있어도 검색되도록 합니다.
  4. ORDER BY: 검색된 데이터를 CAR_ID 기준으로 오름차순 정렬합니다.

5. 코드 분석

WHERE OPTIONS LIKE '%네비게이션%'

  • 이 조건은 OPTIONS 열에 네비게이션이라는 문자열이 포함된 행만 반환합니다.
  • %네비게이션%:% 뒤에도 아무 문자나 올 수 있음.
  • 즉, 문자열 안 어디에 있든 네비게이션이라는 단어가 포함된 데이터를 검색합니다.
  • % 앞에 아무 문자나 올 수 있음.

ORDER BY CAR_ID ASC

  • 결과를 CAR_ID 열의 값을 기준으로 오름차순으로 정렬합니다.
  • 오름차순은 기본값이므로 ASC를 생략해도 동일하게 작동합니다.

전체 쿼리 동작

  1. 테이블 CAR_RENTAL_COMPANY_CAR에서 모든 데이터를 검색합니다.
  2. OPTIONS 열에서 네비게이션을 포함한 데이터를 필터링합니다.
  3. 필터링된 데이터를 CAR_ID 기준으로 정렬하여 반환합니다.