코드 그라데이션

[얄코] MySQL 1-2. 각종 연산자들 본문

Database/SQL

[얄코] MySQL 1-2. 각종 연산자들

완벽한 장면 2023. 6. 9. 02:01

1-2강. 각종 연산자들

 

사칙연산

연산자 의미
+, -, *, / 더하기, 빼기, 곱하기, 나누기
%, MOD 나머지

 

1) 

SELECT 1 + 2;

실행 결과

 

2)

SELECT 5 - 2.5 AS DIFFERENCE;

실행 결과

 

3)

SELECT 3 * (2 + 4) / 2, 'Hello';

실행 결과

 

4)

SELECT 10 % 3;

실행 결과

 

문자열에 사칙연산을 가하면 0으로 인식

5)

SELECT 'ABC' + 3;

실행 결과

 

6)

SELECT 'ABC' * 3;

실행 결과

 

7)

SELECT '1' + '002' * 3;

-- 숫자로 구성된 문자열은 숫자로 자동인식

실행 결과

 

8)

SELECT
  OrderID, ProductID, OrderID + ProductID
FROM OrderDetails;

실행 결과

 

9)

SELECT
  ProductName,
  Price / 2 AS HalfPrice
FROM Products;

실행 결과

 

 

------------------------------

 

 

참 거짓 관련 연산자

연산자 의미
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 '..._...' _의 개수만큼 문자를 가진 패턴

 

MySQL에서는 TRUE를 1, FALSE를 0으로 인식한다.

1)

SELECT TRUE, FALSE;

실행 결과

 

2)

SELECT !TRUE, NOT 1, !FALSE, NOT FALSE;

실행 결과

 

3)

SELECT 0 = TRUE, 1 = TRUE, 0 = FALSE, 1 = FALSE;

실행 결과

 

4) (조건에 만족되는 것) 전부 출력됨.

SELECT * FROM Customers WHERE TRUE;

실행 결과

 

5) 아무것도 출력되지 않음.

SELECT * FROM Customers WHERE FALSE;

실행 결과

 

6)

SELECT TRUE IS TRUE;

실행 결과

 

7)

SELECT TRUE IS NOT FALSE;

실행 결과

 

8)

SELECT (TRUE IS FALSE) IS NOT TRUE;

=> FALSE is NOT TRUE

실행 결과

 

9)

SELECT TRUE AND FALSE, TRUE OR FALSE;

=> 0 , 1

실행 결과

 

10)

SELECT 2 + 3 = 6 OR 2 * 3 = 6;

=> TRUE OR TRUE 

실행 결과

 

11)

SELECT * FROM Orders
WHERE
  CustomerId = 15 AND EmployeeId = 4;

실행 결과

12)

SELECT * FROM Products 
WHERE
  ProductName = 'Tofu' OR CategoryId = 8;

실행 결과

 

 

13)

SELECT * FROM OrderDetails
WHERE
  ProductId = 20
  AND (OrderId = 10514 OR Quantity = 50);

실행 결과

 

 

14)

SELECT 1 = 1, !(1 <> 1), NOT (1 < 2), 1 > 0 IS NOT FALSE;

실행 결과

 

 

15)

SELECT 'A' = 'A', 'A' != 'B', 'A' < 'B', 'A' > 'B';

실행 결과

 

 

16)

SELECT 'Apple' > 'Banana' OR 1 < 2 IS TRUE;

실행 결과

 

 

MySQL의 기본 사칙연산자는 대소문자 구분을 하지 않습니다.

17)

SELECT 'A' = 'a';

실행 결과

 

 

18)

SELECT
  ProductName, Price,
  Price > 20 AS EXPENSIVE 
FROM Products;

실행 결과

 

 

테이블의 값이 아닌 값으로 선택하기

19)

SELECT
  ProductName, Price,
  NOT Price > 20 AS CHEAP 
FROM Products;

실행 결과

 

 

20)

SELECT 5 BETWEEN 1 AND 10;

실행 결과

 

 

21)

SELECT 'banana' NOT BETWEEN 'Apple' AND 'camera';

실행 결과

 

 

22)

SELECT * FROM OrderDetails
WHERE ProductID BETWEEN 1 AND 4;

실행 결과

 

 

23)

SELECT * FROM Customers
WHERE CustomerName BETWEEN 'b' AND 'c';

실행 결과

 

 

24)

SELECT 1 + 2 IN (2, 3, 4)

실행 결과

 

 

25)

SELECT 'Hello' IN (1, TRUE, 'hello')

실행 결과

 

 

26)

SELECT * FROM Customers
WHERE City IN ('Torino', 'Paris', 'Portland', 'Madrid')

실행 결과

 

 

27)

SELECT
  'HELLO' LIKE 'hel%',
  'HELLO' LIKE 'H%',
  'HELLO' LIKE 'H%O',
  'HELLO' LIKE '%O',
  'HELLO' LIKE '%HELLO%',
  'HELLO' LIKE '%H',
  'HELLO' LIKE 'L%'

실행 결과

 

 

28)

SELECT
  'HELLO' LIKE 'HEL__',
  'HELLO' LIKE 'h___O',
  'HELLO' LIKE 'HE_LO',
  'HELLO' LIKE '_____',
  'HELLO' LIKE '_HELLO',
  'HELLO' LIKE 'HEL_',
  'HELLO' LIKE 'H_O'

실행 결과

 

 

29)

SELECT * FROM Employees
WHERE Notes LIKE '%economics%'

실행 결과

 

 

30)

SELECT * FROM OrderDetails
WHERE OrderID LIKE '1025_'

실행 결과

 

 

 

class Solution {
    public int solution(int hp) {

        int a = 0;
        int b = 0;
        int c = 0;
        //hp = 5a + 3b + 1c
        a = hp / 5;
        b = (hp % 5) / 3;
        c = ((hp % 5) % 3) / 1;
        
        return a+b+c;
    }
}
728x90
Comments