Database/SQL

NULL값

2022. 8. 3. 18:25

" NULL값 "


NULL값 

: 아직 지정되지 않은 값
 NULL 값은 ‘0’, ‘’ (빈 문자), ‘ ’ (공백) 등과 다른 특별한 값

 

특징

비교 연산자로 비교 불가능
연산을 수행하면 결과 역시 NULL 값으로 반환됨

  예) NULL+숫자’ 연산의 결과는 NULL

집계 함수 계산 시, NULL이 포함된 행은 집계에서 빠짐

 


연습문제


① Mybook 테이블 생성

CREATE TABLE Mybook(
    book_id         integer
  , price	        integer
);

INSERT INTO Mybook
VALUES
    (1, 10000),
    (2, 20000),
    (3, null)
;

 

 

Ο 연산을 수행하면 결과 역시 NULL 값으로 반환되는 예)

SELECT price+100
 FROM Mybook
 WHERE book_id = 3;

-> price 값이 null인 book_id을 조건절로 하여 price에 덧셈 연산을 한 결과 null 출력됨.

    : null값 숫자 연산 결과는 null

 

 

 

Ο 집계함수에서 null은 적용되지 않는다는 예)

SELECT SUM(price) 총가격,
	   AVG(price) 평균가격,
       COUNT(*) 총수량,
       COUNT(price) 가격구분
 FROM Mybook;

-> 전체를 대상으로한 집계함수 COUNT에 반해 NULL값이 있는 컬럼 price에 대한 COUNT는 NULL값이 제외되어 -1


 

NULL값 확인하기

 IS NULL, IS NOT NULL

SELECT *
 FROM Mybook
 WHERE price IS NULL;

SELECT *
 FROM Mybook
 WHERE price IS NULL;


 

 NULL값 처리하기

  IFNULL( 속성, 값A )

: 속성값이 NULL이면 값A로 대체한다.

 


연습문제


질의 4-10.   이름, 전화번호가 포함된 고객목록을 보이시오. 단, 전화번호가 없는 고객은 ‘연락처없음’으로 표시한다.

SELECT name 이름
,IFNULL(phone, '연락처없음') 전화번호
 FROM customer;

 

'Database > SQL' 카테고리의 다른 글

[MySQL] Workbench 에서 ERD 그리기  (0) 2022.08.10
[MySQL] 행 번호 출력하기  (0) 2022.08.07
SQL내장함수 : 날짜/ 시간함수  (0) 2022.08.03
SQL내장함수 : 문자함수  (0) 2022.08.03
SQL내장함수 : 숫자함수  (0) 2022.08.03