MySQL/프로그래머스

[프로그래머스] 이름이 없는 동물의 아이디

묘걍 2023. 10. 13. 20:46

❓문제

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

동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다.

예시

예를 들어 ANIMAL_INS 테이블이 다음과 같다면

이름이 없는 채로 들어온 동물의 ID는 A368930입니다. 따라서 SQL을 실행하면 다음과 같이 출력되어야 합니다.

 

🤔풀이 방법 고민해보기

ANIMAL_ID 가 출력되어야함 → select

ANIMAL_INS 테이블에서 → from

이름이 없는 동물 = NAME이 NULL값인 동물 → where

ID기준 오름차순 → order by

👩🏻‍💻나의 코드

SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME is NULL
ORDER BY ANIMAL_ID

처음에 WHERE NAME = NULL이라고 했었다

=가 아니라 is였다

더보기

SQL에서 NULL은 특별한 의미를 갖습니다. NULL은 "값이 없음" 또는 "알려지지 않음"을 나타내는 특별한 키워드이며, 일반적인 값과 같은 방식으로 비교할 수 없습니다.

따라서 NULL을 비교할 때는 = 연산자를 사용할 수 없습니다. 대신 IS NULL 또는 IS NOT NULL을 사용하여 NULL 값 여부를 체크해야 합니다.

아래는 두 문장의 차이점을 간략하게 정리한 것입니다:

  • WHERE NAME = NULL: 잘못된 문법입니다. NULL과 일반적인 값과의 비교는 항상 FALSE로 평가됩니다.
  • WHERE NAME IS NULL: 올바른 문법입니다. NAME 컬럼의 값이 NULL인 경우를 검색합니다.

따라서 이름이 없는 동물의 ID를 찾기 위해서는 WHERE NAME IS NULL을 사용해야 합니다.

✅다른 사람 코드

-똑같음-

 

 

출처: https://school.programmers.co.kr/learn/courses/30/lessons/59039

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr