일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 인접행렬
- java
- JWT
- 탐욕법
- dfs
- node.js
- OOP
- Spring
- html
- bean
- 알고리즘
- javascript
- Linux
- puppeteer
- 프로그래머스
- css
- typescript
- GraphQL
- 자료구조
- Kubernetes
- nestjs
- MySQL
- Interceptor
- TIL
- winston
- LifeCycle
- Deep Dive
- REST API
- 인접리스트
- 코딩테스트
- Today
- Total
처음부터 차근차근
각종 연산자들 본문
1. 사칙연산
+, -, *, / | 각각 더하기, 빼기, 곱하기, 나누기 |
%, MOD | 나머지 |
SELECT 1 + 2;
SELECT 5 - 2.5 AS DIFFERENCE;
SELECT 3 * (2 + 4) / 2, 'Hello';
SELECT 10 % 3;
문자열에 사칙연산을 가하면 0으로 인식
SELECT 'ABC' + 3; => 3
SELECT 'ABC' * 3; => 0
SELECT '1' + '002' * 3;
-- 숫자로 구성된 문자열은 숫자로 자동인식
SELECT
OrderID + ProductID
FROM OrderDetails;
SELECT
ProductName,
Price / 2 AS HalfPrice
FROM Products;
2. 참/거짓 관련 연산자
SELECT TRUE, FALSE;
SELECT !TRUE, NOT 1, !FALSE, NOT FALSE;
MySQL에서는 TRUE는 1, FALSE는 0으로 저장됩니다.
SELECT 0 = TRUE, 1 = TRUE, 0 = FALSE, 1 = FALSE;
SELECT * FROM Customers WHERE TRUE;
SELECT * FROM Customers WHERE FALSE;
IS | 양쪽이 모두 TRUE 또는 FALSE |
IS NOT | 한쪽은 TRUE, 한쪽은 FALSE |
SELECT TRUE IS TRUE; // 1
SELECT TRUE IS NOT FALSE; // 1
SELECT (TRUE IS FALSE) IS NOT TRUE; // 1
AND, && | 양쪽이 모두 TRUE일 때만 TRUE |
OR, || | 한쪽은 TRUE면 TRUE |
SELECT TRUE AND FALSE, TRUE OR FALSE; // 0 , 1
SELECT 2 + 3 = 6 OR 2 * 3 = 6; // 1
SELECT * FROM Orders
WHERE
CustomerId = 15 AND EmployeeId = 4;
SELECT * FROM Products
WHERE
ProductName = 'Tofu' OR CategoryId = 8;
SELECT * FROM OrderDetails
WHERE
ProductId = 20
AND (OrderId = 10514 OR Quantity = 50);
= | 양쪽 값이 같음 |
!=, <> | 양쪽 값이 다름 |
>, < | (왼쪽, 오른쪽) 값이 더 큼 |
>=, <= | (왼쪽, 오른쪽) 값이 같거나 더 큼 |
SELECT 1 = 1, !(1 <> 1), NOT (1 < 2), 1 > 0 IS NOT FALSE;
SELECT 'A' = 'A', 'A' != 'B', 'A' < 'B', 'A' > 'B';
SELECT 'Apple' > 'Banana' OR 1 < 2 IS TRUE;
MySQL의 기본 사칙연산자는 대소문자 구분을 하지 않습니다.
SELECT 'A' = 'a';
테이블의 컬럼이 아닌 값으로 선택하기.
SELECT
ProductName, Price,
Price > 20 AS EXPENSIVE
FROM Products;
SELECT
ProductName, Price,
NOT Price > 20 AS CHEAP
FROM Products;
BETWEEN {MIN} AND {MAX} | 두 값 사이에 있음 |
NOT BETWEEN {MIN} AND {MAX} | 두 값 사이가 아닌 곳에 있음 |
SELECT 5 BETWEEN 1 AND 10;
SELECT 'banana' NOT BETWEEN 'Apple' AND 'camera';
SELECT * FROM OrderDetails
WHERE ProductID BETWEEN 1 AND 4;
SELECT * FROM Customers
WHERE CustomerName BETWEEN 'b' AND 'c';
IN (...) | 괄호 안의 값들 가운데 있음 |
NOT IN (...) | 괄호 안의 값들 가운데 없음 |
SELECT 1 + 2 IN (2, 3, 4) // 1
SELECT 'Hello' IN (1, TRUE, 'hello') // 1
SELECT * FROM Customers
WHERE City IN ('Torino', 'Paris', 'Portland', 'Madrid')
LIKE '... % ...' | 0~N개 문자를 가진 패턴 |
LIKE '... _ ...' | _ 갯수만큼의 문자를 가진 패턴 |
SELECT
'HELLO' LIKE 'hel%',
'HELLO' LIKE 'H%',
'HELLO' LIKE 'H%O',
'HELLO' LIKE '%O',
'HELLO' LIKE '%HELLO%',
'HELLO' LIKE '%H',
'HELLO' LIKE 'L%',
'HELLO' LIKE '%L%'
SELECT
'HELLO' LIKE 'HEL__',
'HELLO' LIKE 'h___O',
'HELLO' LIKE 'HE_LO',
'HELLO' LIKE '_____',
'HELLO' LIKE '_HELLO',
'HELLO' LIKE 'HEL_',
'HELLO' LIKE 'H_O'
SELECT * FROM Employees
WHERE Notes LIKE '%economics%'
SELECT * FROM OrderDetails
WHERE OrderID LIKE '1025_'
+, -, *, / | 각각 더하기, 빼기, 곱하기, 나누기 |
%, MOD | 나머지 |
IS | 양쪽이 모두 TRUE 또는 FALSE |
IS NOT | 한쪽은 TRUE, 한쪽은 FALSE |
AND, && | 양쪽이 모두 TRUE일 때만 TRUE |
OR, || | 한쪽은 TRUE면 TRUE |
= | 양쪽 값이 같음 |
!=, <> | 양쪽 값이 다름 |
>, < | (왼쪽, 오른쪽) 값이 더 큼 |
>=, <= | (왼쪽, 오른쪽) 값이 같거나 더 큼 |
BETWEEN {MIN} AND {MAX} | 두 값 사이에 있음 |
NOT BETWEEN {MIN} AND {MAX} | 두 값 사이가 아닌 곳에 있음 |
IN (...) | 괄호 안의 값들 가운데 있음 |
NOT IN (...) | 괄호 안의 값들 가운데 없음 |
LIKE '... % ...' | 0~N개 문자를 가진 패턴 |
LIKE '... _ ...' | _ 갯수만큼의 문자를 가진 패턴 |
https://www.yalco.kr/@sql/1-2/
'DB > MySQL' 카테고리의 다른 글
MySQL 쿼리 안에 서브쿼리 (0) | 2023.06.01 |
---|---|
MySQL 조건에 따라 그룹으로 묶기 (0) | 2023.06.01 |
MySQL 시간/날짜 관련 및 기타 함수들 (1) | 2023.06.01 |
숫자와 문자열을 다루는 함수들 (0) | 2023.05.29 |
SELECT 기능 (0) | 2023.05.29 |