MySQL에서 연산자(operators)는 특정한 연산을 수행하여 값을 비교하거나 계산할 때 사용되는 기호 또는 키워드입니다. MySQL은 다양한 종류의 연산자를 제공하며, 크게 산술 연산자, 비교 연산자, 논리 연산자, 비트 연산자, 문자열 연산자, 할당 연산자로 분류할 수 있습니다.
예시 코드에서 사용할 테이블 생성 및 데이터를 삽입합니다.
아래 sql문을 복사하여 테이블을 생성하고 데이터를 삽입해주세요.
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
age INT,
city VARCHAR(50)
);
INSERT INTO users (name, age, city) VALUES
('John', 25, 'Seoul'),
('Jane', 35, 'Busan'),
('Mike', 30, 'Seoul'),
('Alice', 29, 'Incheon'),
('Bob', 45, 'Daegu'),
('Charlie', 22, 'Seoul'),
('David', NULL, 'Seoul'),
('Eve', 50, 'Busan'),
('Frank', 27, 'Incheon'),
('Grace', 60, 'Seoul');
산술 연산자는 수학적 연산을 수행할 때 사용됩니다. 주로 숫자 값을 다루며, 더하기, 빼기, 곱하기 등의 계산을 처리합니다.
연산자 | 설명 | 예시 |
---|---|---|
+ | 더하기 (Addition) | a + b |
- | 빼기 (Subtraction) | a - b |
* | 곱하기 (Multiplication) | a * b |
/ | 나누기 (Division) | a / b |
% | 나머지 연산 (Modulo) | a % b (a를 b로 나눈 나머지) |
예시 코드
SELECT
10 + 5 AS addition_result, -- 15
10 - 5 AS subtraction_result, -- 5
10 * 5 AS multiplication_result, -- 50
10 / 5 AS division_result, -- 2
10 % 3 AS modulo_result; -- 1
비교 연산자는 두 값을 비교하여 참(TRUE
) 또는 거짓(FALSE
)을 반환합니다. 주로 WHERE
절에서 사용되어 데이터의 필터링을 수행합니다.
연산자 | 설명 | 예시 |
---|---|---|
= | 같음 (Equal) | a = b |
<> | 같지 않음 (Not equal) | a <> b |
!= | 같지 않음 (Not equal) | a != b |
> | 큼 (Greater than) | a > b |
< | 작음 (Less than) | a < b |
>= | 크거나 같음 (Greater than or equal) | a >= b |
<= | 작거나 같음 (Less than or equal) | a <= b |
BETWEEN | 두 값 사이에 포함됨 | a BETWEEN b AND c |
IN | 목록에 존재함 | a IN (b, c, d) |
LIKE | 패턴 일치 | a LIKE 'abc%' |
IS NULL | NULL 값 여부 | a IS NULL |
예시 코드
-- 2. 비교 연산자 (Comparison Operators)
SELECT * FROM users
WHERE age >= 30 -- 나이 30 이상
AND age <= 50 -- 나이 50 이하
AND name LIKE 'J%'; -- 이름이 'J'로 시작하는 사람
SELECT * FROM users
WHERE age BETWEEN 30 AND 50; -- 나이가 30과 50 사이
SELECT * FROM users
WHERE city IN ('Seoul', 'Busan'); -- 도시에 'Seoul' 또는 'Busan' 포함
논리 연산자는 여러 조건을 결합하여 참(TRUE
) 또는 거짓(FALSE
)을 반환합니다. 주로 WHERE
절에서 조건을 결합하거나 부정할 때 사용됩니다.
연산자 | 설명 | 예시 |
---|---|---|
AND | 두 조건이 모두 참이면 참 | a > 10 AND b < 20 |
OR | 하나 이상의 조건이 참이면 참 | a > 10 OR b < 20 |
NOT | 조건을 부정 | NOT a = 10 |
XOR | 두 조건 중 하나만 참이면 참 | a > 10 XOR b < 5 |
예시 코드
SELECT * FROM users
WHERE age > 30
AND city = 'Seoul'; -- 나이가 30 이상이고, 도시는 'Seoul'인 경우
SELECT * FROM users
WHERE age > 30
OR city = 'Seoul'; -- 나이가 30 이상이거나 도시는 'Seoul'인 경우
SELECT * FROM users
WHERE NOT age = 25; -- 나이가 25가 아닌 경우
비트 연산자는 숫자를 이진수 형태로 표현하여, 비트 단위로 연산을 수행할 때 사용됩니다. 주로 정수 데이터에 사용되며, 비트 간의 연산을 처리합니다.
연산자 | 설명 | 예시 |
---|---|---|
& | 비트 AND (Bitwise AND) | a & b |
` | ` | 비트 OR (Bitwise OR) |
^ | 비트 XOR (Bitwise XOR) | a ^ b |
~ | 비트 NOT (Bitwise NOT) | ~a |
<< | 비트 왼쪽 시프트 (Left shift) | a << 2 |
>> | 비트 오른쪽 시프트 (Right shift) | a >> 2 |
예시 코드
SELECT
5 & 3 AS bitwise_and, -- 결과: 1 (0101 & 0011 = 0001)
5 | 3 AS bitwise_or, -- 결과: 7 (0101 | 0011 = 0111)
5 ^ 3 AS bitwise_xor, -- 결과: 6 (0101 ^ 0011 = 0110)
~5 AS bitwise_not, -- 결과: -6 (비트 반전)
5 << 1 AS left_shift, -- 결과: 10 (0101 << 1 = 1010)
5 >> 1 AS right_shift; -- 결과: 2 (0101 >> 1 = 0010)
문자열 연산자는 문자열 데이터를 결합하거나 비교할 때 사용됩니다.
연산자 | 설명 | 예시 |
---|---|---|
+ | 문자열 결합 (MySQL 8.0 이후) | 'abc' + 'def' |
CONCAT | 두 개 이상의 문자열 결합 | CONCAT(a, b) |
LIKE | 패턴 일치 | a LIKE 'abc%' |
예시 코드
SELECT
CONCAT('Hello', ' ', 'World') AS greeting, -- 'Hello World'
'abc' + 'def' AS concatenated_string; -- 'abcdef'
할당 연산자는 변수에 값을 할당할 때 사용됩니다. MySQL에서 변수는 @
로 시작합니다.
연산자 | 설명 | 예시 |
---|---|---|
:= | 값 할당 | @var := 10 |
예시 코드
SET @myVar := 100;
SELECT @myVar; -- 결과: 100
집합 연산자는 여러 SELECT 쿼리의 결과를 결합할 때 사용됩니다. MySQL에서는 UNION
연산자를 제공합니다.
연산자 | 설명 | 예시 |
---|---|---|
UNION | 두 쿼리의 결과를 중복 제거 후 결합 | SELECT ... UNION SELECT ... |
예시 코드
SELECT name FROM users WHERE city = 'Seoul'
UNION
SELECT name FROM users WHERE age > 30; -- 두 쿼리 결과를 결합
1 ) CASE 연산자
CASE
연산자는 조건에 따라 값을 반환합니다.
구문
SELECT CASE
WHEN 조건1 THEN '값1'
WHEN 조건2 THEN '값2'
ELSE '기본값'
END
FROM 테이블명;
예시 코드
SELECT name,
CASE
WHEN age > 30 THEN '성인'
ELSE '젊은이'
END AS category
FROM users;
2 ) NULL 연산자
MySQL에서는 IS NULL
과 IS NOT NULL
을 사용하여 NULL
값 여부를 확인할 수 있습니다.
예시 코드
SELECT name FROM users WHERE age IS NULL; -- 나이가 NULL인 사용자 조회
MySQL에서는 다양한 종류의 연산자를 제공하여 데이터 조회, 필터링, 계산, 문자열 처리 등을 유연하게 할 수 있습니다. 이를 적절히 사용하면 복잡한 쿼리를 간결하고 효율적으로 작성할 수 있습니다.