MariaDB 연산자
연산자
사칙 연산자
- + : a + b 꼴에서 a와 b의 합
- - : a - b 꼴에서 a에서 b를 뺀 값
- * : a * b 꼴에서 a와 b의 곱
- / : a / b 꼴에서 a를 b로 나눈 몫
- % 혹은 MOD : a % b 혹은 a MOD b 꼴에서 a를 b로 나눈 나머지
비교 연산자
- = : a = b 꼴에서 a와 b가 같은가의 여부.
대소문자 구분 X, 'HELLO' = 'hello' >> 1(true)가 나옴
대소문자를 구분하기 위해 피연산자 둘 중 한 개 이상에 BINARY 키워드를 적용하여 BINARY a = b 꼴로 비교해야 한다
BINARY : 아스키 코드로 변환해서 비교함
- != 혹은 <> : a != b 혹은 a <> b 꼴에서 a와 b가 다른가의 여부.
- > : a > b 꼴에서 a가 b보다 큰가의 여부
- < : a < b 꼴에서 a가 b보다 작은가가의 여부
- >= : a >= b 꼴에서 a가 b보다 크거나 같은가의 여부
- <= : a <= b 꼴에서 a가 b보다 작거나 같은가의 여부
논리 연산자
- && 혹은 AND : a && b 혹은 a AND b 꼴에서 논리 a와 b 모두 참인가에 대한 여부
- || 혹은 OR : a || b 혹은 a OR b 꼴에서 논리 a와 b 중 한 개 이상이 참인가에 대한 여부
기타 연산자
- IN : a IN (b, ...) 꼴에서 a가 후행하는 값 b의 나열에 포함되는가의 여부
- NOT IN : a NOT IN (b, ...) 꼴에서 a가 후행하는 값 b의 나열에 포함되지 않는가의 여부
SELECT 5 IN (1, 3, 5, 7, 9); > 1(true)
- BETWEEN AND : a BETWEEN b AND C 꼴에서 a가 b 이상이고 c 이하인가의 여부.
a >= b AND a <= c 와 같다
- NOT BETWEEN AND : a NOT BETWEEN b AND C 꼴에서 a가 b 미만이거나 c 초과인가의 여부.
a < b || a > c 와 같다
- IS NULL : a IS NULL 꼴에서 a가 NULL인가의 여부
어떤 값이 null인지 검사하기 위해 비교 연산(=, != 혹은 <>)하지 않는다. 얘네로는 확인이 안됨
- IS NOT NULL : a IS NOT NULL 꼴에서 a가 NULL이 아닌가의 여부
어떤 값이 null이 아닌지 검사하기 위해 비교 연산(=, != 혹은 <>)하지 않는다. 얘네로는 확인이 안됨
- LIKE : a LIKE b 꼴에서 a가 b 패턴에 부합하는가의 여부
패턴은 문자열로 작성
패턴에서 %는 0개 이상의 아무 문자
패턴에서 _는 1개의 아무 문자
SELECT 'abcdef' LIKE 'a%f'; >> 1, a로 시작해서 f로 끝나는 문자 중 a랑 f사이에 있는 문자가 0개 이상
SELECT 'abcdef' LIKE 'abcdef%'; >> 1, abcdef로 시작해서 그 뒤에 0개 이상의 아무 문자
SELECT 'abcdef' LIKE '%'; >> 1, 0개 이상의 아무 문자
SELECT 'abcdef' LIKE 'a_f'; >> 0, a로 시작해 f로 끝나면서 a와 f사이에 1개의 문자
- NOT LIKE : a LIKE b 꼴에서 a가 b 패턴에 부합하지 않는가의 여부
- REGEXP : a REGEXP b 꼴에서 a가 정규표현식 b를 만족하는가의 여부
- NOT REGEXP : a NOT REGEXP b 꼴에서 a가 정규표현식 b를 만족하지 않는가의 여부
\b: 문자와 공백 사이를 의미한다.
\c: 제어 문자를 의미한다.
\d: 숫자에 해당하는 유니코드에 대응. [0-9]와 달리 아랍 문자, 페르시아 문자 등 다양한 숫자를 포괄한다.#
\f: 폼 피드
\n: 개행 문자
\s: 공백 문자
\t: 탭 문자
\v: 수직 탭
\w: 단어 영문자+숫자+_(밑줄) [0-9a-zA-Z_]
\x: 16진수 값
\0: 8진수 값