1.2 각종 연산자들 (Operator)

박재현·2022년 2월 26일
0
post-custom-banner

1. 사칙연산

  • +, -, *, / : 더하기, 빼기, 곱하기, 나누기
  • %, MOD : 나머지
SELECT 5 - 2.5 AS DIFFERENCE;

📌 5 - 2.5 결과를 DIFFRENCE 컬럼명으로 가지고 오겠다.

SELECT 5 * (5 - 2.5) AS Number, 'Hello' AS Text;

📌 column명 Number로 5 * ( 5 - 2.5 ) 연산 결과, column명 Text로 hello를 가지고 오겠다.

SELECT OrderID, ProductID, OrderID + ProductID AS SUM 
	FROM OrderDetails;

📌 OrderDetails 테이블에서 OrderID와 ProductID 값을 합치겠다

SELECT
	ProductName,
    Price,
    Price / 2 AS HalfPrice,
    Price * 2 AS DoublePrice,
    Price * 0.75 AS SalePrice
FROM Products;

📌 Product 테이블에서 ProductName, Price Column 과 Price를 2로 나눈 값을 HalfPrice,... 라는 Column으로 가지고 오겠다.


2. 참/거짓 관련 연산자

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

📌 Orders 테이블에서 CustomerID = 15 이고 EmployeeID = 4인 데이터

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

📌 Products 테이블에서 ProductName = 'Tofu' 이거나 CategoryId = 8인 데이터

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

📌 OrderDetails 테이블에서 ProudctId = 20 이고 OrderId = 20 이거나 Quantity = 50인 데이터

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

📌 Products 테이블에서 ProductName, Price 행을 출력하고, EXPENSIVE라는 칼럼으로 Price가 20보다 큰지 여부를 True/False(1,0) 로 출력하겠다.

SELECT에 쓰이는 조건문은 데이터들을 원하는 형태로 추가하고 싶을 때 사용!

SELECT * FROM OrderDetails
	WHERE ProductID
    BETWEEN 1 AND 4;

📌 OrderDetails 테이블에서 ProductID 가 1~4 인 데이터 전체 ( 반대를 뽑고 싶을 때는 NOT BETWEEN)

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

📌 OrderDetails 테이블에서 CustomerName이 b로 시작하는 데이터

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

📌 Customers 테이블에서 City가 IN 안에 있는 데이터 ( 반대의 경우 NOT IN)

  • % 연산자: 문자열 앞, 뒤에 붙어 해당 문자열로 시작하거나 끝나는 문자열 찾고 싶을 때 사용
  • ㅡ연산자: 문자열 앞, 뒤에 붙어 해당 문자열에서 해당 _ 갯수만큼 문자열이 포함되어 있는 데이터 찾고 싶을 때 사용
SELECT * FROM Employees
	WHERE Notes
    LIKE '%economics%'

📌 Employess 테이블에서 Notes에 economics가 포함된 데이터를 찾고 싶다

SELECT * FROM OrderDetails
	WHERE OrderId LIKE '1025_'

📌 OrderDetails 테이블에서 OrderId가 1025로 시작하는 (1개 문자열이 더 있는) 데이터를 찾고 싶다 ( 10250, 10251, 10253, ...)


연산자 의미

  • +, -, *, / : 각각 더하기, 빼기, 곱하기, 나누기
  • %, 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 '... _ ...' : _ 갯수만큼의 문자를 가진 패턴

post-custom-banner

0개의 댓글