[SQL] 기본 연산자

[원본 링크]

테스트 환경은 PostgreSQL이다.



비교연산자

기본적인 비교 연산자로는 =, !=, <>, <, >, >=, <=가 있다.
!=와 <>는 동일한 연산자다.



사칙연산

일반적으로 언어들에서 사용하는 연산자와 동일하다.
+, -, *, /

예외로, 나머지셈은 MOD 함수를 사용해야 한다.
postgres의 경우에는 % 연산자를 제공하나, 표준이 아니라 다른 시스템에서도 돌아가진 않을 것이다.



비트연산자

비트열로 값을 제어하는 비트연산자도 제공된다.
|, &, >>, <<, ~, ^ 등이 있다.

일반적으로 쓸 일이 많지는 않을 것이다.



논리연산자

논리연산자로는 AND, OR, NOT이 있다.



IS 연산자

특별한 값, NULL, TRUE, FALSE에 한해서 전용 동등 비교를 사용할 수가 있다.
=나 !=랑 큰 차이는 아마 없을 것이다.
가독성의 차이다.



IN 연산자

값 in 리스트의 형태를 띤다.
in일 경우엔 값이 리스트의 값 중 하나일 때만 true를 반환하고,
not in일 경우엔 없을 때 true를 반환한다.



LIKE 연산자

like는 문자열 탐색용 연산자다.

편리하지만, 많은 성능상의 문제점이 있다는 것에 유의해야 한다.
대충 다음과 같이 사용할 수 있다. 왼쪽에는 대상 컬럼, 오른쪽이 검색할 조건, 단어다.

이것만 본다면 =나 !=와 무슨 차이가 있나 싶을 것이다.

like는 단순비교뿐만 아니라 와일드카드를 통한 일종의 패턴매칭이 가능하다!
단일문자는 _, 전체는 %다.

아무거나 한 문자로 시작되며, oo로 끝나는 검색어는 다음과 같이 작성할 수 있다.

뭐든간에 o를 포함하는 문자열은 다음과 같이 검색할 수 있다.

실제 검색 등을 구현할 때는 웬만해서 사용하게 되지만 단순 동등비교를 할때는 쓰지 않는게 좋다.
느리다.

게다가 대부분의 DB 시스템에서는 앞에 와일드카드가 붙으면 인덱스를 타지 않는 문제가 있다.
뒤에붙는건 괜찮은데 앞에 붙으면 대부분 안된다고 한다.



BETWEEN 연산자

이건 값이 특정 범위에 속하는지를 확인하는 연산자다.
값 between 시작 and 끝 의 형태를 가진다.
<=, >= 연산자를 사용하는 것과 동일한 결과를 주지만, 가독성이 더 괜찮고, 최적화에도 조금 유리한 점이 있다는 것이 장점이다.


그렇다.


참조
https://cloud.google.com/bigquery/docs/reference/standard-sql/operators?hl=ko
https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators?hl=ko