코딩테스트/SQL 문제

[프로그래머스] 59403 동물의 아이디와 이름 - SQL

glorypang 2025. 3. 21. 17:39
728x90
반응형
SMALL

📌 문제 정보

  • 출처: 문제 링크
  • 난이도: ⭐
  • 문제 유형: SELECT
  • 사용 언어: SQL

🔍 문제 설명

`ANIMAL_INS` 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

 

동물 보호소에 들어온 모든 동물의 아이디와 이름을 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다.

 


💡 풀이 노트

SELECT [ALL| DISTINCT] 속성이름
[FROM 테이블이름]
[WHERE 검색조건]
[GROUP BY 속성이름]
[HAVING 검색조건]
[ORDER BY 속성이름 [ASC | DESC]]

📌SELECT

  • 조회할 속성(컬럼) 명시
  • `ALL`: 중복 허용(기본값)
  • `DISTINCT`: 중복 제거

📌FROM

  • 조회 대상이 되는 테이블을 지정

📌WHERE (조건 필터링)

  • 조건에 맞는 행만 조회, 비교/논리/패턴/NULL 조건 등 사용 가능
구분  연산자  예시
비교 `=`, `<>`, `<` , `>` , `≤` , `≥` `WHERE age >= 20`
범위 `BETWEEN A AND B` `WHERE age BETWEEN 20 AND 30`
집합 `IN(. . .)`, `NOT IN(. . .)` `WHERE major IN ('CS', 'EE)`
NULL 검사 `IS NULL`, `IS NOT NULL` `WHERE address IS NULL`
패턴 `LIKE`, `NOT LIKE` `WHERE name LIKE '%철수%`
복합 조건 `AND`, `OR, `NOT` `WHERE age > 20 AND gender = 'F'`

LIKE 패턴 정리 (문자열 검색용)

패턴  의미  예시 
`%` 0개 이상 문자 `축구%` → 축구로 시작
`_` 임의의 1개 문자 `구_` → 첫 글자 ‘구’ 다음 1글자
`[ ]` 특정 문자 하나 `[0-5]%` → 0~5로 시작
`[^ ]` 특정 문자 제외 `[^0~5]%` → 0~5 아닌 숫자로 시작

📌GROUP BY & HAVING

  • GROUP BY: 동일한 값을 가지는 레코드를 그룹화
  • HAVING: 그룹에 대한 조건 지정
  • → `WHERE` 은 그룹 전 필터, `HAVING` 은 그룹 후 필터

집계합수

함수  설명 
`SUM()` 합계
`AVG()` 평균
`COUNT()` 개수
`MAX()` 최댓값
`MIN()` 최솟값
  • `NULL` 값은 계산 대상에서 제외
  • `WHERE` 에서는 집계 함수 사용 불가, `SELECT` 또는 `HAVING`에서만 가능

📌ORDER BY

결과 정렬 시 사용

  • 기본은 오름차순(ASC), 내림차순은 DESC 지정

🚀 코드 (SQL)

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS

🖥 실행 결과

ANIMAL_ID NAME
A349996	Sugar
A350276	Jewel
A350375	Meo
A352555	Harley
A352713	Gia
A352872	Peanutbutter
A353259	Bj
A354540	Tux
A354597	Ariel
A354725	Kia
A354753	Sammy
A355519	Faith
A355688	Shadow
A355753	Elijah
A357021	Queens
A357444	Puppy
A357846	Happy
A358697	Fuzzo
A358879	Simba
A361391	Baby Bear
A362103	Stitch
A362383	*Morado
A362707	Girly Girl
A362967	Honey
A363653	Goofy
A364429	Hugo
A365172	Diablo
A365302	Minnie
A367012	Miller
A367438	Cookie
A367747	Woody
A368742	Stormy
A368930	
A370439	Sniket
A370507	Emily
A370852	Katie
A371000	Greg
A371102	Ceballo
A371344	Sailor
A371534	April
A373219	Ella
A373687	Rosie
A375393	Dash
A376322	Mama Dog
A376459	Dora
A377750	Lucy
A378348	Frijolito
A378353	Lyla
A378818	Zoe
A378946	Mercedes
A379998	Disciple
A380009	Pickle
A380320	Scooby
A380420	Laika
A380506	Ruby
A381173	Pepper
A381217	Cherokee
A382192	Maxwell 2
A382251	Princess
A383036	Oreo
A383964	Finney
A384360	Jj
A384568	Jedi
A385442	Clyde
A386005	Giovanni
A386276	Tiko
A386688	Punch
A387083	Goldie
A387965	Dakota
A388360	Spider
A388691	Blaze
A390222	Holly
A391512	Rome
A391858	Nellie
A392027	Penny
A392075	Skips
A392615	Chip
A394547	Snickerdoodl
A395451	Rogan
A396810	Raven
A397882	Charlie
A399421	Lucy
A399552	Jack
A400498	Reggie
A400680	Lucy
A403564	Anna
A405494	Kaila
A406756	Sabrina
A407156	Jake
A408035	Lizzie
A409637	Stanley
A410330	Chewy
A410668	Raven
A410684	Mitty
A412173	Jimminee
A412626	*Sam
A412697	Jackie
A413789	Benji
A414198	Shelly
A414513	Rocky

 


📌 깃허브 코드 저장소: https://github.com/glorypang/CodingTest

 

 

 

728x90
반응형
LIST