아핫뉴스실시간 인기검색어
아핫뉴스 화산 이미지
아하

생활

생활꿀팁

Metasight
Metasight

[SQL] Null로 업데이트시 is null 을 왜 안쓰나요?

SQL 초보입니다.

Sql 명령중에서 update 구문을 작성할 때 제시된 예시가 아래와 같습니다.

UPDATE sample SET b=NULL;

위 구문에서 왜 ‘b is NULL’ 이 아니라 ‘b=NULL’인가요?

제가 알기로 NULL값은 일반연산자를 쓰지 못하고 is를 써야 하는 것으로 알고 있어서요…

    55글자 더 채워주세요.
    5개의 답변이 있어요!
    • 빈티지한돼지85
      빈티지한돼지85

      안녕하세요. 신기한줄나비81님..

      SQL문에서 null 처리 관련해서 문의하셨는데요...

      말씀 하신 is null 은 조건문(where절)에서 값을 비교할때 사용하는 것입니다.

      update 문의 set에서는 값을 비교 하는게 아니고 값을 셋팅하는 것이기 때문에 "= "을 써야 합니다.

    • 탈퇴한 사용자
      탈퇴한 사용자

      is null 은 조건을 확인하기 위한 것이지요.

      따라서 해당 쿼리는 where 절이나 group by 절의 having 등에서 사용됩니다.

      결과는 참 / 거짓 인 불리언(boolean)인 것이고요.

      업데이트 쿼리에서는 값을 설정하는 것이라 NULL 이 바로 들어가는 것이지요.

      프로그래밍 언어에서는 비교연산자와 배정연산자가 보통 구분되는데 (예. == 와 =)
      SQL의 경우 동일하게 = 를 사용하고 있어서 혼동이 될 수 있습니다.

    • 안녕하세요.

      SQL에서 NULL 비교 연산자는 is는 조건식 (비교식)에서 사용합니다.

      SELECT, UPDATE, DELETE 등 WHERE 조건에 들어갈 때는 b is NULL로 사용하시면 됩니다. 컬럼절에서 CASE WHEN 문 등에 사용할 때도 b is NULL 처럼 사용하면 됩니다.

      UPDATE의 SET 절에 들어갈 경우에는 값을 직접 수정하는 경우이므로 b = NULL 로 해야 합니다.

    • 안녕하세요.

      말씀하신 is null 은 select 문 작성시 where 절 이하에 조건문으로 사용하는 것으로 알고 있습니다.

      ex ) select * from [table] where a is null

      작성자분께서 문의주신 update문에서 해당 테이블의 어떠한 값을 넣어야 하는지 지정을 해줘야 하는 부분이니

      b = null 혹은 b = '1234' 등으로 정확히 명시해줘야 하지 않을까요?

      부족한 답변드리네요

      열공하세요!

    • 값은 = null 로 입력 하시고 조건절 (where절)에서 조회시 b is null 혹은 b not null로 조건을 넣으시면 됩니다.

      oracle과 mysql에서 null과 '' 는 차이가 있으니 이 부분도 확인해보시는게 좋을 것 같습니다

      데이터베이스 NULL 을 잘 다루는 것은 매우 중요합니다. 데이터베이스에서 값을 조회한 프로그램에서 오류를 낼 수 도 있고, 계산등에서 값이 맞지 않을 수도 있기 때문입니다.