[MySQL] 연산자

Main·2024년 9월 10일
0

MySQL

목록 보기
7/13
post-thumbnail

MySQL에서 연산자(operators)는 특정한 연산을 수행하여 값을 비교하거나 계산할 때 사용되는 기호 또는 키워드입니다. MySQL은 다양한 종류의 연산자를 제공하며, 크게 산술 연산자, 비교 연산자, 논리 연산자, 비트 연산자, 문자열 연산자, 할당 연산자로 분류할 수 있습니다.


0. 예시 코드 테이블 생성 및 데이터 삽입

예시 코드에서 사용할 테이블 생성 및 데이터를 삽입합니다.

아래 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');

1. 산술 연산자 (Arithmetic Operators)

산술 연산자는 수학적 연산을 수행할 때 사용됩니다. 주로 숫자 값을 다루며, 더하기, 빼기, 곱하기 등의 계산을 처리합니다.

연산자설명예시
+더하기 (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

2. 비교 연산자 (Comparison Operators)

비교 연산자는 두 값을 비교하여 참(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 NULLNULL 값 여부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' 포함

3. 논리 연산자 (Logical Operators)

논리 연산자는 여러 조건을 결합하여 참(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가 아닌 경우

4. 비트 연산자 (Bitwise Operators)

비트 연산자는 숫자를 이진수 형태로 표현하여, 비트 단위로 연산을 수행할 때 사용됩니다. 주로 정수 데이터에 사용되며, 비트 간의 연산을 처리합니다.

연산자설명예시
&비트 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)

5. 문자열 연산자 (String Operators)

문자열 연산자는 문자열 데이터를 결합하거나 비교할 때 사용됩니다.

연산자설명예시
+문자열 결합 (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'

6. 할당 연산자 (Assignment Operators)

할당 연산자는 변수에 값을 할당할 때 사용됩니다. MySQL에서 변수는 @로 시작합니다.

연산자설명예시
:=값 할당@var := 10

예시 코드

SET @myVar := 100;
SELECT @myVar;   -- 결과: 100

7. 집합 연산자 (Set Operators)

집합 연산자는 여러 SELECT 쿼리의 결과를 결합할 때 사용됩니다. MySQL에서는 UNION 연산자를 제공합니다.

연산자설명예시
UNION두 쿼리의 결과를 중복 제거 후 결합SELECT ... UNION SELECT ...

예시 코드

SELECT name FROM users WHERE city = 'Seoul'
UNION
SELECT name FROM users WHERE age > 30;  -- 두 쿼리 결과를 결합

8. 기타 연산자

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 NULLIS NOT NULL을 사용하여 NULL 값 여부를 확인할 수 있습니다.

예시 코드

SELECT name FROM users WHERE age IS NULL;    -- 나이가 NULL인 사용자 조회

정리

MySQL에서는 다양한 종류의 연산자를 제공하여 데이터 조회, 필터링, 계산, 문자열 처리 등을 유연하게 할 수 있습니다. 이를 적절히 사용하면 복잡한 쿼리를 간결하고 효율적으로 작성할 수 있습니다.

profile
함께 개선하는 프론트엔드 개발자

0개의 댓글