MySQL을 기준으로 합니다.



사칙연산

연산자 의미
+, -, *, / 더하기, 빼기, 곱하기, 나누기
%, MOD 나머지

기본적인 사칙연산과 나머지 연산자로 다른 언어들과 비슷하다.

SELECT 1 + 2;
-- 3
SELECT 10 % 4;
-- 4

논리연산


연산자 TRUE 반환 조건
AND, && 양쪽 모두 TRUE일때
OR, | | 양쪽 중 하나라도 TRUE일 때
IS 양쪽이 모두 TRUE 또는 FALSE로 같을 때 (NXOR)
IS NOT 양쪽이 다를때 (XOR)

AND

SELECT TRUE AND FALSE; -- FALSE
SELECT TRUE AND TRUE; -- TRUE

OR

SELECT TRUE OR TRUE;     -- TRUE
SELECT TRUE OR FALSE;    -- TRUE
SELECT FALSE OR FALSE;   -- FALSE

IS

SELECT TRUE IS TRUE;     -- TRUE
SELECT TRUE IS FALSE;    -- FALSE
SELECT FALSE IS TRUE;    -- FALSE
SELECT FALSE IS FALSE;   -- TRUE

IS NOT

SELECT TRUE IS NOT TRUE;     -- FALSE
SELECT TRUE IS NOT FALSE;    -- TRUE
SELECT FALSE IS NOT TRUE;    -- TRUE
SELECT FALSE IS NOT FALSE;   -- FALSE

비교 연산자


연산자 의미
= 양쪽 값이 같음
!=, <> 양쪽 값이 다름
>, < (왼쪽, 오른쪽) 값이 더 큼
>=, <= (왼쪽, 오른쪽) 값이 같거나 더 큼

조금 독특한 부분은
양쪽이 같다는 연산자가 ‘==’ 가 아닌 ‘=’ 라는것과
‘=’ 연산자가 대소문자 구분이 없다는 것.

SELECT 5 = 5;   -- TRUE
SELECT 5 <> 5;  -- TRUE
SELECT 3 <= 2;  -- FALSE
SELECT 1 > 0;   -- TRUE

문자도 연산이 가능 하며 대소문자 부분이 없다.

SELECT 'A' = 'a';   -- TRUE
SELECT 'A' != 'B';  -- TRUE
SELECT 'A' < 'B';   -- TRUE
SELECT 'Alpha' > 'Bravo';   -- FALSE
SELECT 'Alpha' = 'ALPHA';   -- TRUE

그 외 연산자


연산자 의미
BETWEEN {MIN} AND {MAX} 두 값 사이에 있음
NOT BETWEEN {MIN} AND {MAX} 두 값 사이가 아닌 곳에 있음
SELECT 2 BETWEEN 1 AND 3; -- TRUE
SELECT 'Bravo' NOT BETWEEN 'Alpha' AND 'Charlie'; -- FALSE


|연산자|의미| |:–:|:–:| |IN (…)| 괄호 안의 값들 가운데 있음| |NOT IN (…)| 괄호 안의 값들 가운데 없음|

SELECT 1 + 2 IN (2, 3, 4);  -- TRUE
SELECT 'Alpha' IN (24, TRUE, 'Alpha')  -- TRUE


연산자 의미
LIKE ‘… % …’ 0~N개 문자를 가진 패턴
LIKE ‘… _ …’ _ 갯수만큼의 문자를 가진 패턴

%는 0~N 개의 문자를 나타냄

SELECT
  'ALPHA' LIKE 'alp%',      -- TRUE
  'ALPHA' LIKE 'a%',        -- TRUE
  'ALPHA' LIKE 'a%a',       -- TRUE
  'ALPHA' LIKE '%a',        -- TRUE
  'ALPHA' LIKE '%alpha%',   -- TRUE
  'ALPHA' LIKE '%H',        -- FALSE
  'ALPHA' LIKE 'L%';        -- FALSE

_는 _갯수와 문자열의 갯수가 일치해야함

SELECT
  'ALPHA' LIKE 'ALP__',     -- TRUE
  'ALPHA' LIKE '__PHA',     -- TRUE
  'ALPHA' LIKE 'A___A',     -- TRUE
  'ALPHA' LIKE '____a',     -- TRUE
  'ALPHA' LIKE '_alpha_',   -- FALSE
  'ALPHA' LIKE '_H',        -- FALSE
  'ALPHA' LIKE 'L_';        -- FALSE

Leave a comment