데이터 분석 공부/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
이 서브쿼리는 언제 사용하는걸까??
현 쿼리의 조건에서 가져올 수 없는 값을 사용하고싶을때 서브쿼리를 사용한다.
서브쿼리를 만들어놓으면 서브쿼리에서 내가 원하는 조건을 지정해서 그 값을 가져오면 되기 때문이다.