DB/mysql [sql] Null의 연산 - Database에서 null은 이리 저리 처리해야하는 상황이 많아서 매우 피곤하다. 이번 포스트에서는 다양한 상황에서 null과의 연산에 대해 살펴보자. 참고로 테스트는 mysql에서 진행하였는데 필자가 아는 한 대부분 DB가 동일하다. null의 연산 산술 연산: 언제나 null select null+1, null-1, null*1, null/1 from dual; 문자열 결합 연산: null select concat(1, null, 2) from dual; 비교연산 이 부분이 가장 헷갈리는 부분이다. 비교 연산에서 null은 "무엇이든 될 수 있고 무엇도 될수 없는 값이다." (뭐래니.. unknown이라고도 한다. 즉 fix 할 수 없다는 이야기다.) 아래의 표를 살펴보자. 연산자 true false null null과의 연산 설명 ! false true null null은 true일 수도 있고 false일 수도 있어서 !null의 값을 정확히 결정할 수 없다. 따라서 null이다. true & 1 0 null null이 true이면 1, false이면 0이므로 최종 값도 unknown 즉 null이다. false & 0 0 0 null이 어떤 값이 되더라도 false & 이기 때문에 결과는 false이다. null & null 0 null null & false는 확실히 false이지만 나머지는 알 수 없다. 따라서 unknown 즉 null이다. true or 1 1 1 하나라도 true 이므로 null이 어떻게 평가 되더라도 true이다. false or 1 0 null null이 false면 0, true 였다면 1 이므로 평가할 수 없다. unknown 즉 null이다. null or 1 null null true가 하나라도 개입되면 1이지만 나머지는 모두 결과를 알 수 없다. 즉 null이다. 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기모두의 코딩 저작자표시 비영리 변경금지 Contents null의연산 산술연산:언제나null 문자열결합연산:null 비교연산 당신이 좋아할만한 콘텐츠 [mysql]알아두면 유용한 설정 2023.02.05 [mysql]00월 00일 입력? 2023.02.05 [mysql 설정] ONLY_FULL_GROUP_BY 2022.09.13 [sql]grouping 함수 사용법 2021.04.16 댓글 0 + 이전 댓글 더보기