숫자를 계산할 때 사용하는 연산자입니다.
| 연산자 | 설명 | 예제 | 결과 |
|---|---|---|---|
+ | 덧셈 | SELECT 10 + 5; | 15 |
- | 뺄셈 | SELECT 10 - 5; | 5 |
* | 곱셈 | SELECT 10 * 5; | 50 |
/ | 나눗셈 | SELECT 10 / 4; | 2.5 |
% | 나머지 (MOD 연산) | SELECT 10 % 3; | 1 |
DIV | 정수 나눗셈 | SELECT 10 DIV 4; | 2 |
📌 DIV vs / 차이점
/는 소수점까지 반환 (10 / 4 → 2.5)DIV는 정수 부분만 반환 (10 DIV 4 → 2)값을 비교할 때 사용됩니다.
| 연산자 | 설명 | 예제 | 결과 |
|---|---|---|---|
= | 같음 | SELECT 10 = 10; | 1 (TRUE) |
!= 또는 <> | 다름 | SELECT 10 != 5; | 1 (TRUE) |
> | 초과 | SELECT 10 > 5; | 1 (TRUE) |
< | 미만 | SELECT 10 < 5; | 0 (FALSE) |
>= | 이상 | SELECT 10 >= 10; | 1 (TRUE) |
<= | 이하 | SELECT 10 <= 5; | 0 (FALSE) |
<=> | NULL-safe 비교 | SELECT NULL <=> NULL; | 1 (TRUE) |
📌 주의사항
=는 NULL 비교 시 FALSE 반환 (SELECT NULL = NULL; → NULL)<=>는 NULL 비교를 안전하게 수행 (SELECT NULL <=> NULL; → 1)WHERE 절 등에서 조건을 조합할 때 사용합니다.
| 연산자 | 설명 | 예제 | 결과 |
|---|---|---|---|
AND (&&) | 두 조건이 모두 참이면 참 | SELECT 1 AND 1; | 1 (TRUE) |
OR (` | `) | 두 조건 중 하나라도 참이면 참 | |
NOT (!) | 조건을 반대로 | SELECT NOT 1; | 0 (FALSE) |
📌 예제
SELECT * FROM users WHERE age >= 18 AND city = 'Seoul';
➡️ age가 18 이상이고 city가 'Seoul'인 사용자 조회
변수에 값을 할당할 때 사용합니다.
| 연산자 | 설명 | 예제 |
|---|---|---|
:= | 변수를 선언하고 값 할당 | SET @var := 100; |
= | UPDATE문에서 값 할당 | UPDATE users SET age = 25 WHERE id = 1; |
📌 예제
SET @count := 10;
SELECT @count + 5; -- 결과: 15
정수 값을 비트 단위로 연산할 때 사용합니다.
| 연산자 | 설명 | 예제 | 결과 (2진수) |
|---|---|---|---|
& | 비트 AND | SELECT 5 & 3; | 1 (101 & 011 = 001) |
| ` | ` | 비트 OR | `SELECT 5 |
^ | 비트 XOR | SELECT 5 ^ 3; | 6 (101 ^ 011 = 110) |
~ | 비트 NOT | SELECT ~5; | -6 |
<< | 왼쪽 시프트 | SELECT 5 << 1; | 10 (101 → 1010) |
>> | 오른쪽 시프트 | SELECT 5 >> 1; | 2 (101 → 010) |
문자열을 결합하거나 비교할 때 사용됩니다.
| 연산자 | 설명 | 예제 | 결과 |
|---|---|---|---|
CONCAT() | 문자열 합치기 | SELECT CONCAT('Hello', ' ', 'World'); | 'Hello World' |
| ` | 또는+` | 문자열 연결 (ANSI SQL 표준) | |
LIKE | 패턴 매칭 | SELECT 'abc' LIKE 'a%'; | 1 (TRUE) |
NOT LIKE | 패턴 불일치 | SELECT 'abc' NOT LIKE 'b%'; | 1 (TRUE) |
📌 LIKE 연산자 패턴
% : 0개 이상의 문자 ('a%' → 'a', 'abc', 'apple' 매칭)_ : 정확히 한 개의 문자 ('_b_' → 'abc', 'zbx' 매칭)IN 연산자 (여러 값 중 하나와 일치)SELECT * FROM users WHERE city IN ('Seoul', 'Busan', 'Incheon');
➡️ 'Seoul', 'Busan', 'Incheon' 중 하나인 사용자 조회
BETWEEN 연산자 (범위 비교)SELECT * FROM orders WHERE price BETWEEN 1000 AND 5000;
➡️ 1000 ~ 5000 사이의 price 값을 가진 데이터 조회
IS NULL / IS NOT NULL (NULL 값 체크)SELECT * FROM users WHERE email IS NULL;
SELECT * FROM users WHERE email IS NOT NULL;
| 연산자 유형 | 대표 연산자 | 예제 |
|---|---|---|
| 산술 연산자 | +, -, *, /, %, DIV | SELECT 10 + 5; |
| 비교 연산자 | =, !=, <, >, <=, >=, <=> | SELECT age >= 18; |
| 논리 연산자 | AND, OR, NOT | SELECT 1 AND 0; |
| 비트 연산자 | &, ` | , ^, ~, <<, >>` |
| 문자열 연산자 | CONCAT(), LIKE, ` | |
| 특수 연산자 | IN, BETWEEN, IS NULL | SELECT * FROM users WHERE age BETWEEN 20 AND 30; |
📌 가장 많이 사용되는 연산자
= / != / <> (비교)AND / OR / NOT (논리)LIKE / IN / BETWEEN (조건 검색)ROUND(), CEIL(), FLOOR() (소수점 처리)