MySQL에서 <> 기호는 '같지 않음(not equal to)'을 의미하는 비교 연산자로, != 연산자와 완전히 동일한 역할을 합니다. 두 연산자 모두 결과를 불리언(boolean), 즉 tinyint(1) 형태로 반환하며, 조건이 참(true)이면 1, 거짓(false)이면 0을 출력합니다.
!= 연산자와 <> 연산자 비교
케이스 1: != 연산자 사용
다음 쿼리처럼 != 연산자를 사용할 수 있습니다.
mysql> select 3!=5;
실행 결과는 다음과 같습니다.
+------+ | 3!=5 | +------+ | 1 | +------+ 1 row in set (0.00 sec)
케이스 2: <> 연산자 사용
같은 조건을 <> 연산자로 작성해도 동일한 결과가 나옵니다.
mysql> select 3 <> 5;
실행 결과는 다음과 같습니다.
+--------+ | 3 <> 5 | +--------+ | 1 | +--------+ 1 row in set (0.00 sec)
참고로 <> 연산자는 표준 ANSI SQL에 포함된 문법입니다. 반면 !=는 일부 데이터베이스에서만 지원되므로, 이식성(portability)을 고려한다면 <>를 사용하는 것이 더 안전합니다.
테이블에서 <> 연산자 활용하기
<> 연산자는 단순 값 비교뿐 아니라 WHERE 절에서 특정 조건을 제외한 행(row) 집합을 조회할 때도 유용하게 사용됩니다.
1. 테이블 생성
먼저 예제로 사용할 테이블을 생성합니다.
mysql> create table NotEqualOperator -> ( -> StudentId int, -> StudentName varchar(100), -> StudentSection varchar(10) -> ); Query OK, 0 rows affected (0.78 sec)
2. 샘플 데이터 삽입
INSERT 명령어로 학생 데이터를 추가합니다.
mysql> insert into NotEqualOperator values(1,'John','A'); Query OK, 1 row affected (0.19 sec) mysql> insert into NotEqualOperator values(2,'Carol','B'); Query OK, 1 row affected (0.19 sec) mysql> insert into NotEqualOperator values(3,'Sam','A'); Query OK, 1 row affected (0.15 sec) mysql> insert into NotEqualOperator values(4,'Mike','B'); Query OK, 1 row affected (0.23 sec) mysql> insert into NotEqualOperator values(5,'Bob','B'); Query OK, 1 row affected (0.19 sec) mysql> insert into NotEqualOperator values(6,'David','B'); Query OK, 1 row affected (0.14 sec) mysql> insert into NotEqualOperator values(7,'Ramit','A'); Query OK, 1 row affected (0.18 sec)
3. 전체 데이터 조회
SELECT 문으로 저장된 모든 레코드를 확인합니다.
mysql> select *from NotEqualOperator;
실행 결과는 다음과 같습니다.
+-----------+-------------+----------------+ | StudentId | StudentName | StudentSection | +-----------+-------------+----------------+ | 1 | John | A | | 2 | Carol | B | | 3 | Sam | A | | 4 | Mike | B | | 5 | Bob | B | | 6 | David | B | | 7 | Ramit | A | +-----------+-------------+----------------+ 7 rows in set (0.00 sec)
4. <> 연산자로 조건 필터링
이제 <> 연산자를 사용해 A반이 아닌 학생만 조회해 보겠습니다.
mysql> select *from NotEqualOperator where StudentSection <>'A';
실행 결과는 다음과 같습니다.
+-----------+-------------+----------------+ | StudentId | StudentName | StudentSection | +-----------+-------------+----------------+ | 2 | Carol | B | | 4 | Mike | B | | 5 | Bob | B | | 6 | David | B | +-----------+-------------+----------------+ 4 rows in set (0.00 sec)
정리
- MySQL에서
<>와!=는 기능적으로 동일한 '같지 않음' 연산자입니다. - 두 연산자 모두 조건이 참이면 1, 거짓이면 0을 반환합니다(tinyint(1)).
<>는 표준 ANSI SQL 문법이므로 다른 데이터베이스와의 호환성을 고려하면 이쪽을 사용하는 것이 좋습니다.