본문 바로가기
DB

!= 과 <> 의 차이와 ANSI SQL

by 스노위13 2022. 11. 22.

회사에서 코드를 보면서 공부하는 중인데 xml문에 쓰인 <![CDATA[<>]]>를 보고서 의문이 생겼다.
그 전에 학원에서는 오라클DB를 사용했는데 != 나 NOT을 주로 사용했었기 때문이다. 
!= 와 <>는 서로 어떤 차이가 있기에 CDATA까지 쓰면서 사용하는 것일까? 
<>는 ANSI SQL에서 제시한 SQL-92 표준에 속하기 때문에 DBMS 모두에서 사용된다. !=도 대부분의 DBMS에서 지원하고 있으며 둘은 기능적으로는 동일하게 사용된다. 아래의 예시를 살펴보면 MySQL에선 두 가지를 동일하게 지원한다는 것을 알 수 있다.

출처 : https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#operator_not-equal


하지만 !=의 경우 SQL Server 2000 및 이전 버전 IBM DB2 UDB 9.5, Microsoft Access 2010에서는 사용할 수 없다. 

이렇게 둘의 차이를 알아보다가 ANSI SQL에 대해 궁금해져서 찾아보게 되었다. 
ANSI SQL이란 미국 국립 표준 협회(American National Standards Institute,ANSI)에서 제시한 SQL에 대한 보편적인 문법이다. 표준이기 때문에 DBMS의 종류에 제약을 받지 않는다. 만약 프로젝트를 진행하다가 DBMS가 변경되더라도 ANSI SQL 문법으로 xml문이 만들어져 있다면 더 쉽게 이동할 수 있을 것이다.

<>와 != 차이 외에도 JOIN문을 사용할 때 내가 아는 것과 차이가 있다. 
이에 대해서는 아주 자세하게 설명한 블로그를 찾았으니 궁금하신 분은 아래 링크를 참고하시길~
https://tragramming.tistory.com/74

참고자료 : 
https://stackoverflow.com/questions/18015422/what-is-difference-between-and-in-sql-server
https://stackoverflow.com/questions/723195/should-i-use-or-for-not-equal-in-t-sql
https://tragramming.tistory.com/74

댓글