본문 바로가기
학부 전공/DB

SQL NULL Value & Ordering

by 장어진 2021. 6. 19.

Null Value

Null 값은 크게 3가지로 생각할 수 있다. Value unknown, value inapplicable, value withheld가 그 종류이다. Null은 비교 연산을 할 때 할 수 없기 때문에 Boolean 타입에 null을 위한 UNKNOWN이 들어가게 된다.

Ex) xNULL이라고 가정하면 X+3 또한 NULL이다. NULL + 3 legal SQL expression에 맞지 않는다. X=3UNKNOWN이며 NULL = 3SQL에 맞지 않는다.

X IS NULL is TRUE 로 확인할 수 있다.


 

PostgreSQL에서는 다음과 같다.

SQL>select 10 = 10;                  >>  t

SQL> select 10 IS NULL;             >>  f

SQL> select 10 = NULL;              >>  NULL

SQL> select NULL = NULL;          >>  NULL

SQL> select NULL IS NULL;          >>  t

 

Ex) Movie(title, year, length, genre, studioName, producerCNo)

SELECT *

FROM Movie

WHERE length < = 120 OR length > 120;

위와 같을 때 모든 튜플이 나올 것 같지만 실제로는 그렇지 않다. NULL값이 있을 경우 boolean 타입이 UNKNOWN이 있기 때문에 그 값은 제외된다. 따라서 위처럼 구성을 하면 lengthnon-null인 것을 찾는 것일 뿐이다.

 

Null Value 실습

우선 The Terminatorlength값과 Miserystudioname, producernoNULL값이니 이들을 대상으로 실습을 해보았다.

lengthNULL인 터미네이터 영화는 사라진 것을 확인할 수 있다.

이번에는 String 값이 null인 경우를 대상으로 해보겠다.

모든 스튜디오이름이 a보다는 사전의 뒤에 나오기 때문에 비교연산자를 활용했고 그 결과 studionameNULL이었던 misery는 사라진 형태로 나온 것을 확인해볼 수 있다.


Ordering the Output

Syntax

– ORDER BY <list of attributes>

– ORDER BY <list of attributes> ASC (이 값이 디폴트이며 오름차순)

– ORDER BY <list of attributes> DESC (감소하는 순으로 정렬 내림차순)

 

 

728x90