SQL 고득점 Kit
의 네 번째 유형 IS NULL
!
"값이 없음을 의미하는
NULL
.NULL
을 처리하는 방법을 배워봅시다."
IS NULL
NULL
값이 있는 필드는 값이 없는 필드이다.NULL
값은 0 또는 공백이 포함된 필드와는 다르다! (NULL
값이 있는 필드는 비어 있는 필드!)- 이러한
NULL
값으로 채워져 있는지 테스트하는 방법은IS NULL
연산자를 사용하는 것이다!SELECT [필드명] FROM [테이블명] WHERE [필드명] IS NULL
: [테이블명]의 [필드명]의 값이
NULL
인 필드를 조회하라.
IS NOT NULL
IS NULL
과는 달리NULL
값이 아닌 필드를 조회하는 연산자이다.SELECT [필드명] FROM [테이블명] WHERE [필드명] IS NOT NULL
: [테이블명]의 [필드명]의 값이
NULL
이 아닌 필드를 조회하라.
🔗 LEVEL1. 이름이 없는 동물의 아이디
테이블 정보
✔ ANIMAL_INS
: 동물 보호소에 들어온 동물의 정보를 담은 테이블
필드 정보
✔ ANIMAL_ID
: 동물의 아이디
✔ ANIMAL_TYPE
: 생물 종
✔ DATETIME
: 보호 시작일
✔ INTAKE_CONDITION
: 보호 시작 시 상태
✔ NAME
: 이름
✔ SEX_UPON_INTAKE
: 성별 및 중성화 여부
문제
✔ 동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성하라. 단, ID는 오름차순 정렬되어야 한다.
💡 POINT
NAME
필드가NULL
인 레코드의ANIMAL_ID
값을 출력한다.ANIMAL_ID
를 오름차순으로 정렬해야 한다.
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL
ORDER BY ANIMAL_ID
✔ SELECT ANIMAL_ID
: ANIMAL_ID
를 출력
✔ FROM ANIMAL_INS
: ANIMAL_INS
테이블 선택
✔ WHERE NAME IS NULL
: NAME
필드의 값이 NULL
인 레코드를 조회
✔ ORDER BY ANIMAL_ID
: ANIMAL_ID
를 기준으로 오름차순으로 정렬한다.
🔗 LEVEL1. 이름이 있는 동물의 아이디
테이블 정보
✔ ANIMAL_INS
: 동물 보호소에 들어온 동물의 정보를 담은 테이블
필드 정보
✔ ANIMAL_ID
: 동물의 아이디
✔ ANIMAL_TYPE
: 생물 종
✔ DATETIME
: 보호 시작일
✔ INTAKE_CONDITION
: 보호 시작 시 상태
✔ NAME
: 이름
✔ SEX_UPON_INTAKE
: 성별 및 중성화 여부
문제
✔ 동물 보호소에 들어온 동물 중, 이름이 있는 동물의 ID를 조회하는 SQL 문을 작성하라. 단, ID는 오름차순 정렬되어야 한다.
💡 POINT
NAME
필드가NULL
아 아닌 레코드의ANIMAL_ID
값을 출력한다.ANIMAL_ID
를 오름차순으로 정렬해야 한다.
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
ORDER BY ANIMAL_ID
✔ SELECT ANIMAL_ID
: ANIMAL_ID
를 출력
✔ FROM ANIMAL_INS
: ANIMAL_INS
테이블 선택
✔ WHERE NAME IS NOT NULL
: NAME
필드의 값이 NULL
이 아닌 레코드를 조회
✔ ORDER BY ANIMAL_ID
: ANIMAL_ID
를 기준으로 오름차순으로 정렬한다.
NULL
처리하기🔗 LEVEL2. NULL 처리하기
테이블 정보
✔ ANIMAL_INS
: 동물 보호소에 들어온 동물의 정보를 담은 테이블
필드 정보
✔ ANIMAL_ID
: 동물의 아이디
✔ ANIMAL_TYPE
: 생물 종
✔ DATETIME
: 보호 시작일
✔ INTAKE_CONDITION
: 보호 시작 시 상태
✔ NAME
: 이름
✔ SEX_UPON_INTAKE
: 성별 및 중성화 여부
문제
✔ 입양 게시판에 동물 정보를 게시하려 한다. 동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성하라. 이때 프로그래밍을 모르는 사람들은 NULL이라는 기호를 모르기 때문에, 이름이 없는 동물의 이름은 "No name"으로 표시하라.
💡 POINT
ANIMAL_TYPE
,NAME
,SEX_UPON_INTAKE
필드를 출력NAME
이 없는 동물의 이름은 "No name"으로 출력한다.
SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') AS NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
✔ SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') AS NAME, SEX_UPON_INTAKE
ANIMAL_TYPE
필드 출력NAME
이 NULL
값이면 No name
으로 출력, NULL
값이 아니면 NAME
출력NAME
으로 출력되게 AS NAME
)SEX_UPOEN_INTAKE
필드 출력✔ FROM ANIMAL_INS
: ANIMAL_INS
테이블 선택
📌
IFNULL
을 이용해서NULL
값 치환SELECT IFNULL([필드명], 'NULL일 때 치환값') FROM [테이블명];
- Ex)
SELECT IFNULL(Name, 'Unknown') FROM Person
:
Person
테이블에서Name
필드값이NULL
인 경우는Unknown
으로 바꿔서 출력한다.
https://www.w3schools.com/sql/sql_null_values.asp
https://velog.io/@gillog/DB-MySQL-NULL-%EC%B2%98%EB%A6%ACIFNULL-CASE-COALESCE