JOIN
SQL에서 JOIN은 여러 테이블에서 데이터를 검색하고 조인하는 데 사용되는 기능입니다.
1. INNER JOIN 두 테이블의 공통 값만 반환합니다.
즉, 두 테이블에서 동일한 값을 가진 행만 반환합니다.
2. LEFT JOIN 왼쪽 테이블의 모든 행을 반환하고 오른쪽 테이블에서 일치하는 행을 반환합니다.
오른쪽 테이블과 일치하는 행이 없으면 NULL 값으로 반환합니다.
3. RIGHT JOIN 오른쪽 테이블의 모든 행을 반환하고 왼쪽 테이블에서 일치하는 행을 반환합니다.
왼쪽 테이블과 일치하는 행이 없으면 NULL 값으로 반환됩니다.
4. FULL OUTER JOIN 두 테이블의 모든 행을 리턴합니다.
일치하지 않으면 NULL 값으로 반환됩니다.
5. SELF JOIN 단일 테이블에서 사용되며 테이블을 자체적으로 조인합니다.
자체 조인을 사용하여 테이블에서 관계를 작성할 수 있습니다.
UNION
UNION은 SQL에서 둘 이상의 SELECT 문의 결과를 결합하는 데 사용되는 연산자입니다.
UNION은 중복되지 않는 고유 결과만 반환하고 UNION ALL은 중복 결과를 모두 반환합니다.
다음은 UNION의 사용 예입니다.
SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;
UNION는 데이터를 결합하는 데 유용한 기능입니다.
그러나 이를 사용하면 결과 집합이 매우 커지므로 성능 문제가 발생할 수 있습니다.
SUBQUERY
하위 쿼리는 쿼리 문 내에서 다른 쿼리 문을 사용하는 것을 의미합니다.
하위 쿼리는 WHERE, SELECT, FROM 절에서 사용됩니다.
1. WHERE 절에서 사용되는 하위 쿼리
WHERE 절에서 사용되는 하위 쿼리는 주로 하위 집합을 필터링하는 데 사용됩니다.
WHERE 절에서 사용되는 하위 쿼리는 다음 형식을 사용합니다.
SELECT column1, column2, ...
FROM table1
WHERE column1 operator (
SELECT column2
FROM table2
WHERE condition
)
2. SELECT 절에서 사용되는 하위 쿼리
SELECT 절에서 사용되는 하위 쿼리는 주로 쿼리의 쿼리 문에서 하위 쿼리의 결과 값을 사용하는 데 사용됩니다.
SELECT 절에서 사용되는 하위 쿼리는 다음 형식을 사용합니다.
SELECT column1, column2, ..., (
SELECT column2
FROM table2
WHERE condition
) AS subquery_alias
FROM table1
3. FROM 절에서 사용되는 하위 쿼리
FROM 절에서 사용되는 하위 쿼리는 주로 하위 쿼리의 결과 값을 가진 새 테이블을 만드는 데 사용됩니다.
FROM 절에서 사용되는 하위 쿼리는 다음 형식을 사용합니다.
SELECT column1, column2, ...
FROM (
SELECT column1, column2, ...
FROM table1
WHERE condition
) AS subquery_alias
하위 쿼리는 쿼리 문의 복잡성을 높이기 때문에 적절하게 사용하는 것이 중요합니다.
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에서 문자열을 분리하는 함수 중 하나입니다.
문자열에서 특정 구분 기호를 기반으로 여러 문자열을 추출하는 데 사용됩니다.
SUBSTRING_INDEX 함수의 구문은 다음과 같습니다.
SUBSTRING_INDEX(str, delimiter, count)
str: 추출할 문자열입니다.
delimiter: 문자열의 구분 기호입니다.
count: 추출할 구분자의 수.
SUBSTRING_INDEX 함수는 구분 기호를 기반으로 카운트 수만큼 문자열을 추출합니다.
count가 양수이면 문자열의 시작 부분에서 구분 기호를 기준으로 추출합니다.
count가 부의 경우는, 캐릭터 라인의 뒤로부터 구분자에 근거해 추출합니다.
SUBSTRING
SQL에서 SUBSTRING 함수는 문자열에서 여러 문자열을 추출하는 데 사용되는 함수입니다.
SUBSTRING 함수에는 다음 구문이 있습니다.
SUBSTRING(string, start, length)
string: 추출할 문자열입니다.
start: 추출을 시작할 위치입니다.
0부터 시작합니다.
length: 추출할 문자열의 길이입니다.
생략하면 문자열의 끝까지 추출됩니다.
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 절은 모든 조건이 충족되지 않은 경우 리턴되는 값을 지정합니다.