산술 연산자
사칙 연산을 다루는 기본적인 연산자 / 두 개의 피연산자를 가지는 이항 연산자
산술 연산자
|
설명
|
+
|
왼쪽 피연산자에 오른쪽 피연산자를 더함.
|
-
|
왼쪽 피연산자에서 오른쪽 피연산자를 뺌.
|
*
|
왼쪽 피연산자에 오른쪽의 피연산자를 곱함.
|
/
|
왼쪽 피연산자를 오른쪽 피연산자로 나눔.
|
DIV
|
왼쪽 피연산자를 오른쪽 피연산자로 나눈 후, 소수 부분을 버림.
|
%또는 MOD
|
왼쪽 피연산자를 오른쪽 피연산자로 나눈 후, 그 나머지를 반환함.
|
연산자 우선 순위
0 | () |
1 | INTERVAL |
2 | BINARY, COLLATE |
3 | ! |
4 | - (단항 연산자), ~ (비트 연산자) |
5 | ^ |
6 | *, /, DIV, %, MOD |
7 | - (이항 연산자), + |
8 | <<, >> |
9 | & |
10 | |
11 | = (관계 연산자), <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN |
12 | BETWEEN, CASE, WHEN, THEN, ELSE |
13 | NOT |
14 | AND, && |
15 | XOR |
16 | OR, |
17 | = (대입 연산자), := |
위의 표 대로 우선 순위를 가지나 굳이 다 외울 필욘 없다. / 소괄호가 제일 우선 시 되니 연산이 길어지면 소괄호로 구분 정돈 해주자
대입 연산자
= | 왼쪽 피연산자에 오른쪽 피연산자를 대입함. (SET 문이나 UPDATE 문의 SET 절에서만 대입연산자로 사용됨) |
:= | 왼쪽 피연산자에 오른쪽 피연산자를 대입함. |
MySQL에선 자바완 다르게 =가 비교 연산자나 대입 연산자로도 활용될 수 있기에 언제나 대입 연산자로 사용되는 :=가 별도로 있다.
SET, UPDATE의 SET문을 제외하면 비교 연산자
비교 연산자
좌우 피연산자를 판단하여 참(true)이면 1을 반환, 거짓(false)이면 0반환
= | 왼쪽 피연산자와 오른쪽 피연산자가 같으면 참을 반환함. |
!=, <> | 왼쪽 피연산자와 오른쪽 피연산자가 같지 않으면 참을 반환함. |
< | 왼쪽 피연산자가 오른쪽 피연산자보다 작으면 참을 반환함. |
<= | 왼쪽 피연산자가 오른쪽 피연산자보다 작거나 같으면 참을 반환함. |
> | 왼쪽 피연산자가 오른쪽 피연산자보다 크면 참을 반환함. |
>= | 왼쪽 피연산자가 오른쪽 피연산자보다 크거나 같으면 참을 반환함. |
<=> | 양쪽의 피연산자가 모두 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() | 피연산자의 값이 인수로 전달받은 리스트에 존재하지 않으면 참을 반환함. |
* 대부분 프로그래밍 언어에서 동등 연산자는 == 이나 SQL은 =가 동등, 대입으로도 쓰인다.
논리 연산자
논리식을 판단하여 참이면 1, 거짓이면 0을 반환
논리 연산자
|
설명
|
AND
|
논리식이 모두 참이면 참을 반환함.
|
&&
|
논리식이 모두 참이면 참을 반환함.
|
OR
|
논리식 중에서 하나라도 참이면 참을 반환함.
|
||
|
논리식 중에서 하나라도 참이면 참을 반환함.
|
XOR
|
논리식이 서로 다르면 참을 반환함.
|
NOT
|
논리식의 결과가 참이면 거짓을, 거짓이면 참을 반환함.
|
!
|
논리식의 결과가 참이면 거짓을, 거짓이면 참을 반환함.
|
흐름 제어
ㅡ CASE : 연산자의 값을 비교해 값이 일치하면 그에 따른 결과 반환 ( 자바의 switch문? )
1. CASE value
WHEN [compare_value] THEN result
[WHEN [compare_value] THEN result] ...
[ELSE result]
END
Value와 WHEN의 compare_value의 값이 같으면 result 반환
ㅡ IF() : 첫 번째 인수의 논리값에 따라 값 반환
SELECT IF(0 < 1, 'yes', 'no');
첫 번째 인수 0 < 1은 참 이기에 두 번째 인수 'yes' 반환, 거짓이면 세 번째 인수를 반환한다.
ㅡ IFNULL() : 함수는 첫 번째 인수가 NULL 인지 판별
SELECT IFNULL(NULL, 'null입니다.');
첫 번째 인자가 NULL이면 두 번째 인자가 반환되며, 첫 번째 인자가 NULL이 아니면 첫 번째 인자 자체가 반환된다.
ㅡ NULLIF() : 인수로 전달받은 두 값을 비교해 같으면 NULL 반환, 다르면 첫 번째 인자 반환
NULLIF(expr1, expr2);
패턴 매칭
ㅡ 데이터의 특정 패턴을 검색하기 위한 패턴 매칭 연산자
LIKE : 특정 패턴을 포함하는 데이터를 검색할 때 사용
SELECT * FROM Reservation
WHERE Name LIKE '장%';
SELECT * FROM Reservation
WHERE Name LIKE '%동';
SELECT * FROM Reservation
WHERE Name LIKE '&우동%';
1. 장으로 시작하는 데이터 탐색
2. 동으로 끝나는 데이터 탐색
3. 사이에 우동이 들어간 데이터 탐색
* 특정 패턴을 포함하지 않는 데이터를 찾고 싶으면 NOT LIKE 연산자를 사용하면 된다.
→ LIKE 사용 시 %, _ 를 사용할 수 있는데
%는 0개 이상의 문자를 대체
_는 _갯수 당 1개의 문자를 대체
SELECT * FROM Reservation
WHERE RoomNum LIKE '20_';
20_ → 20이 들어가는 총 3자리 데이터 찾기
'MySQL' 카테고리의 다른 글
JOIN (0) | 2023.01.25 |
---|---|
Primary Key,(기본 키) Foreign Key(참조 키, 외래 키) (0) | 2023.01.24 |
MySQL 데이터 타입 (1) | 2023.01.20 |
MySQL 구문 [삽입, 수정, 선택, 중복 제거, 정렬, 별칭] (0) | 2023.01.19 |
MySQL 구문 [ 생성, 제약 조건, 수정, 삭제 ] (0) | 2023.01.19 |
댓글