📚 Database

[MySQL] MySQL의 연산자(operator)

오늘 ONEUL 2022. 6. 1. 00:55

산술 연산자

MySQL은 대부분의 프로그래밍 언어에서 지원하는 기본적인 연산자를 모두 제공한다. 당연히 사칙연산 모두 가능하다.

산술 연산자 설명
+ 왼쪽 피연산자에 오른쪽 피연산자를 더함.
- 왼쪽 피연산자에서 오른쪽 피연산자를 뺌.
* 왼쪽 피연산자에 오른쪽의 피연산자를 곱함.
/ 왼쪽 피연산자를 오른쪽 피연산자로 나눔.
DIV 왼쪽 피연산자를 오른쪽 피연산자로 나눈 후, 소수 부분을 버림.
%또는 MOD 왼쪽 피연산자를 오른쪽 피연산자로 나눈 후, 그 나머지를 반환함.

 

 

 

 

비교 연산자

비교 연산자 설명
= 왼쪽 피연산자와 오른쪽 피연산자가 같으면 참을 반환함.
!=, <> 왼쪽 피연산자와 오른쪽 피연산자가 같지 않으면 참을 반환함.
< 왼쪽 피연산자가 오른쪽 피연산자보다 작으면 참을 반환함.
<= 왼쪽 피연산자가 오른쪽 피연산자보다 작거나 같으면 참을 반환함.
> 왼쪽 피연산자가 오른쪽 피연산자보다 크면 참을 반환함.
>= 왼쪽 피연산자가 오른쪽 피연산자보다 크거나 같으면 참을 반환함.
<=> 양쪽의 피연산자가 모두 NULL이면 참을 반환하고, 하나의 피연산자만 NULL이면 거짓을 반환함.
IS 왼쪽 피연산자와 오른쪽 피연산자가 같으면 참을 반환함.
(오른쪽 피연산자가 불리언 값인 TRUE, FALSE, UNKNOWN 값일 때 사용함)
IS NOT 왼쪽 피연산자와 오른쪽 피연산자가 같지 않으면 참을 반환함.
(오른쪽 피연산자가 불리언 값인 TRUE, FALSE, UNKNOWN 값일 때 사용함)
IS NULL 피연산자의 값이 NULL이면 참을 반환함.
IS NOT NULL 피연산자의 값이 NULL이 아니면 참을 반환함.
BETWEEN min AND max 피연산자의 값이 min 값보다 크거나 같고, max 값보다 작거나 같으면 참을 반환함.
NOT BETWEEN min AND max 피연산자의 값이 min 값보다 작거나 max 크면 참을 반환함.
IN() 피연산자의 값이 인수로 전달받은 리스트에 존재하면 참을 반환함.
NOT IN() 피연산자의 값이 인수로 전달받은 리스트에 존재하지 않으면 참을 반환함.
-- <>
SELECT * FROM emp
WHERE ename <> 'KING';


-- IS NULL, IS NOT NULL
SELECT * FROM emp
WHERE comm IS NULL;

SELECT * FROM emp
WHERE comm IS NOT NULL;


-- BETWEEN AND, NOT BETWEEN AND
SELECT * FROM emp
WHERE sal BETWEEN 1250 AND 3000;

SELECT * FROM emp
WHERE sal NOT BETWEEN 1250 AND 3000;


-- IN
SELECT * FROM emp
WHERE job IN ('SALESMAN', 'CLERK');

 

 

 

 

논리 연산자

논리 연산자 설명
AND 논리식이 모두 참이면 참을 반환함.
&& 논리식이 모두 참이면 참을 반환함.
OR 논리식 중에서 하나라도 참이면 참을 반환함.
|| 논리식 중에서 하나라도 참이면 참을 반환함.
XOR 논리식이 서로 다르면 참을 반환함.
NOT 논리식의 결과가 참이면 거짓을, 거짓이면 참을 반환함.
! 논리식의 결과가 참이면 거짓을, 거짓이면 참을 반환함.
SELECT * FROM emp
WHERE sal > 1000 AND sal < 2000;

SELECT * FROM emp
WHERE sal < 1000 OR sal > 2000;

 

 

 

 

패턴 매칭 연산자

패턴매칭연산자 설명
LIKE 특정 패턴을 포함하는 데이터만을 검색함.
REGEXP LIKE 연산자보다 더욱 복잡한 패턴을 검색할 때 사용함.
  • 와일드카드(wildcard)란? 문자를 대체하기 위해 사용되는 기호.
    • % : 0개 이상의 문자를 대체함.
    • _ : 1개의 문자를 대체함.

 

-- 사원명에 S가 포함되는 사원정보
SELECT * FROM emp
WHERE ename LIKE '%S%';


-- 직챙명 중 앞에서 세번째 알파벳이 A가 아닌 사원들의 정보
SELECT * FROM emp
WHERE job NOT LIKE '__A%';

 

 

 

 

※ 참고 자료

http://www.tcpschool.com/mysql/mysql_operator_arithmetic