항해99 SQL주차 2일차

이동환·2023년 3월 21일
0

항해99

목록 보기
14/27

요약
1. SQL의 JOIN 공부함
2. SUBQUERY와 WITH, SUBSTRING, CASE-WHEN-THEN-ELSE-END

SQL의 꽃이라고 할 수 있는 JOIN을 배웠다.

JOIN에는 INNER JOIN과 LEFT JOIN이 대표적이다.

INNER JOIN의 경우 두 TABLE의 특정 컬럼이 일치하는 데이터들만 출력해주고
LEFT JOIN은 FROM 뒤에 나오는 TABLE을 기준으로 컬럼만 합쳐서 출력한다.

개인적인 생각으로 LEFT JOIN이 많이 사용될 것 같다.
왜냐하면 INNER JOIN은 두 테이블 혹은 확인하려는 데이터가 1대1로 매치되는 경우에서 사용될 것 같고,
현실적인 개발 상황에서는 하나를 출력하려는데 다른 것이 붙어 있거나 없을 수도 있는 경우가 많을 것 같다.

INNER JOIN을 사용하는 경우로 XX와 XX_DETAIL을 합치는 경우
LEFT JOIN을 사용하는 경우로 게시글에 좋아요, 댓글 수를 가져오는 경우 등이 있을 것 같다.

서브 쿼리 (SUB-QUERY)

서브 쿼리는 쿼리문 안에 또 다른 쿼리문을 사용하는 것을 말한다.

SELECT column1, column2, ...
FROM table1
WHERE column1 operator (
    SELECT column2 
    FROM table2 
    WHERE condition
)

WITH

WITH절은 SQL에서 임시로 사용할 수 있는 테이블 혹은 서브쿼리를 정의하는 문법이다. WITH 절을 사용하면 복잡한 쿼리를 단순화하고 가독성을 높일 수 있다.

WITH 절의 구조는 다음과 같다.

WITH name (column1, column2, ...) AS (
  SELECT column1, column2, ...
  FROM table_name
  WHERE condition
)
SELECT column1, column2, ...
FROM name

위의 구문에서, name은 임시로 생성될 테이블의 이름이며, column1, column2 등은 임시로 생성될 테이블의 컬럼 이름이다. 이후 SELECT 절에서는 생성된 테이블을 사용하여 데이터를 가져온다.

WITH 절을 사용하면 같은 서브쿼리를 반복적으로 사용하는 경우에도 코드의 중복을 줄일 수 있다.

WITH 절은 복잡한 쿼리를 작성할 때 유용하다.

SUBSTRING_INDEX

SUBSTRING_INDEX 함수는 SQL에서 문자열을 분리하는 함수 중 하나이다. 문자열에서 특정 구분자(delimiter)를 기준으로 일부 문자열을 추출할 때 사용된다.

SUBSTRING_INDEX 함수의 구문은 다음과 같다.

SUBSTRING_INDEX(str, delimiter, count)

str: 추출할 문자열이다.
delimiter: 문자열에서 구분자이다.
count: 추출할 구분자의 수이다.

SUBSTRING_INDEX 함수는 delimiter 기준으로 count 개수만큼 문자열을 추출한다. count가 양수인 경우, 문자열의 앞에서부터 delimiter를 기준으로 추출한다. count가 음수인 경우, 문자열의 뒤에서부터 delimiter를 기준으로 추출한다.

CASE

SQL의 CASE 문은 조건부 논리식을 사용하여 값을 계산하거나 반환하는 방법이다.

CASE 
  WHEN condition1 THEN result1
  WHEN condition2 THEN result2
  ...
  WHEN conditionN THEN resultN
  ELSE default_result
END

위의 구문에서 condition1, condition2, ..., conditionN은 각각 조건을 나타내며, result1, result2, ..., resultN은 각 조건에 대한 결괏값이다. ELSE 절은 모든 조건이 만족되지 않았을 경우 반환할 값을 지정한다.

profile
개발을 즐기고 싶다.

0개의 댓글