SQL에서 NOT IN과 NOT EXISTS는 비슷하게 사용되지만, NULL 값을 처리하는 방식에서 차이가 있다.NOT IN을 사용할 때, 서브쿼리 내에 NULL 값이 있으면 NOT IN 조건은 전체적으로 NULL을 반환하게 된다. 이는 SQL의 3값 논리 때문으로,
SQL에서 NULL 값을 올바르게 처리하는 것은 중요하다. NULL 값은 누락되었거나 알 수 없는 데이터를 나타낸다. NULL과 관련된 두 가지 일반적인 작업은 값이 NULL인지 확인하는 것과 값을 NULL과 비교하는 것이다. 'IS NULL'과 '= NULL'의 차이
두 가지 방법으로 동일한 작업을 수행하는것을 예로들자.1) 동적 SQL 2) SQL바인딩만약 "user" 변수가 사용자 입력에서 왔고, 그 사용자 입력이 다음과 같았다면:Robert'); DROP TABLE students; --첫 번째 경우에는 문제가 발생할 것이지만