SQL에서 ‘같지 않다’는 의미 != 와 <> 연산자 차이

SQL 쿼리에서 특정 값이 아닌 데이터를 조회할 때 != 또는 <> 를 사용한다. 두 연산자 모두 결과는 동일하게 나온다.

예를 들어 아래와 같이 쓴다.

SELECT * FROM users WHERE status != 'blocked';
SELECT * FROM users WHERE status <> 'blocked';

두 쿼리 모두 MySQL, MariaDB, PostgreSQL, Oracle, SQL Server 등 대부분의 DBMS 환경에서 사용할 수 있다.

다만 <> 방식이 SQL 국제 표준 규격에서 정의한 연산자다. 수학에서 같지 않다를 표현할 때 키보드에 해당 기호가 없기 때문에 <(작다)와 >(크다)를 합쳐 작거나 크다(=같지 않다) 라는 의미로 만들었다고 한다.

!= 는 C, Java, Python 등 프로그래밍 언어에서 같지 않다를 표현하는 방식으로 익숙하기에 대부분의 DBMS가 편의를 위해 허용해주는 비표준 문법이다. 대부분 문제가 없지만 아주 오래된 버전의 DB 환경에서는 에러가 발생할 수도 있다.

아무래도 표준을 준수하는 게 호환성 측면에서 좋은 습관이기 때문에 되도록 <> 를 쓰는 것도 좋을 거 같다.

댓글 남기기