세조목

SQL 정리(is와 null, 서브쿼리, char_length)(23.12.20) 본문

데이터 분석 공부/SQL

SQL 정리(is와 null, 서브쿼리, char_length)(23.12.20)

세조목 2023. 12. 20. 22:14

1. is와 =

where절을 작성하다보면 is 또는 = 을 사용하게되는 경우가 있다.

그런데 언제 is를 사용하고 언제 = 을 사용하는걸까??

답은 간단하다.

is 또는 = 뒤에 null이 나온다면 is를 사용하고,

그렇지 않은 경우에는 모두 = 을 사용하면 된다.

 

그런데 null 앞에는 왜 is를 써야할까??

NULL은 공백과는 다른 값으로 아직 값이 정해지지 않은 미지의 값 즉 Unknown 값이기 때문이다.
논리 연산 시 Unknown = Unknown 은 FALSE 조건이 되므로,

'= NULL' 이라고 쓰면 FALSE조건이 된다.
그래서 특수한 값인 NULL을 비교하기 위해서는 is NULL 또는 is not NULL 로 비교해야만 TRUE 조건이 가능하다.

 

예시는 아래와 같다.

select *
from academy
where math is null
select *
from academy
where math =
(
select student_number
from academy
where student_number = 75
)

 

 

2. 서브쿼리

쿼리를 작성하다보면 종종 서브쿼리를 사용하게 된다.

ex)

select *
from
(
select *
from house
) a

이 서브쿼리는 언제 사용하는걸까??

현 쿼리의 조건에서 가져올 수 없는 값을 사용하고싶을때 서브쿼리를 사용한다.

서브쿼리를 만들어놓으면 서브쿼리에서 내가 원하는 조건을 지정해서 그 값을 가져오면 되기 때문이다.