Toby's Study Blog
article thumbnail
Published 2023. 8. 10. 15:32
SQL 활용 database

1. 조건문

  • Oracle의 경우에는 DECODE, CASE WHEN
  • MsSQL의 경우에는 CASE WHEN
  • MySQL의 경우에는 IF, CASE WHEN
  • CASE WHEN 조건 THEN 참일경우_실행구문 ELSE 거짓일경우_실행구문 END
<code />
SELECT CASE WHEN 'GOOD'='JOB' THEN 'HELLO' ELSE 'WORLD' END;
<code />
SELECT CustomerID, City, CASE WHEN CustomerID > 50 THEN '50번을 넘음!' WHEN City='London' THEN '도시가 런던!' ELSE '50번 이하임!' END AS '출력 문구' FROM Customers;

만약 City데이터가 NULL값을 가지고 있다면 정렬 순서를 Country 기준으로, 아니라면 City 기준으로 정렬시키는 쿼리

<code />
SELECT CustomerName, City, Country FROM Customers ORDER BY (CASE WHEN City IS NULL THEN Country ELSE City END);

2. JOIN

기준을 가지고 데이터를 합친다. 여기서는 INNER JOIN만 사용

SQL Tryit Editor v1.6

<code />
-- w3school 기본 예제입니다. -- OrderID는 Orders라는 table에 있습니다. -- CustomerName는 Customers라는 table에 있습니다. -- OrderDate는 Orders라는 table에 있습니다. SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate -- 기준 table은 Orders입니다. FROM Orders -- INNER JOIN을 할 table은 Customers입니다. INNER JOIN Customers -- INNER JOIN의 기준은 두 table 모두 있는 CustomerID입니다. ON Orders.CustomerID=Customers.CustomerID;

<aside> 💡 저는 택배를 배달하는 택배기사입니다. CustomerID와 CustomerName, Address, OrderDate, City, PostalCode를 알아야 합니다. 해당 data를 출력해주세요.

</aside>

W3Schools SQL Exercise

3. UNION

데이터를 결합

<code />
SELECT City FROM Customers UNION SELECT City FROM Suppliers ORDER BY City;

4. GROUP BY

특정 열을 기준으로 그룹화 하여 다른 특정 열에 붙일 때 사용 아래 코드에서 GROUP BY 코드를 삭제하면 작동하지 않는다. 그 이유는 SELECT 절에서 이미 그룹 함수와 기준열이 쓰였기 때문이다.

<code />
SELECT COUNT(CustomerID), Country FROM Customers GROUP BY Country;

5. HAVING

구룹화된 데이터에 조건을 부여

<code />
SELECT COUNT(CustomerID), Country FROM Customers GROUP BY Country HAVING COUNT(CustomerID) > 5;

6. EXIST

서브 쿼리가 참일 경우 참을, 거짓일 경우 거짓을 반환

<code />
SELECT SupplierName FROM Suppliers WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price < 20);

7. ANY

서브 쿼리가 하나라도 참이라면 참을 반환

<code />
SELECT ProductName FROM Products WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity = 10);

8. ALL

서브 쿼리가 모두 참이어야 참을 반환

'database' 카테고리의 다른 글

SQL 함수  (0) 2023.08.10
SQL 이란  (0) 2023.08.10
profile

Toby's Study Blog

@Toby12

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그