프로그래머스 SQL 고득점 Kit를 풀면서 몰랐던 부분들을 정리한 내용입니다.
해당 컬럼의 값이 NULL을 반환할 때, 다른 값으로 출력
SELECT IFNULL(컬럼명, "Null일 경우 대체 값") FROM 테이블명
해당 컬럼의 값을 조건식을 통해 True, False를 판단하여 조건에 맞게 컬럼의 값을 변환
CASE
WHEN 조건식1 THEN 식1
WHEN 조건식2 THEN 식2
...
ELSE 조건에 맞는경우가 없는 경우 실행할 식
END
CASE 컬럼명
WHEN 비교값 THEN 식1
WHEN 비교값 THEN 식2
...
ELSE 조건에 맞는경우가 없는 경우 실행할 식
END
GROUP BY절과 함께 사용되는 조건절
SELECT 컬럼, 그룹 함수(컬럼)
FROM 테이블명
GROUP BY Group대상
HAVING 그룹 함수 포함 조건
날짜를 지정한 형식으로 출력
SELECT DATE_FORMAT(날짜시간값, 원하는포맷) FROM 테이블명
두 개 이상의 테이블을 묶는 방법
SELECT name FROM my_table1
UNION
SELECT name FROM my_table2
UNION
SELECT name FROM my_table3;
가상테이블(데이터베이스에 저장되는 테이블은 아님) 생성
WITH 가상테이블명 (컬럼명1, 컬럼명2) AS
SELECT 쿼리
서브쿼리에서 스스로를 참조하는 가상테이블 생성
WITH RECURSIVE 가상테이블명 (n) AS
(
SELECT 1 - 최초 행 반환
UNION ALL
SELECT n + 1 FROM 가상테이블명 WHERE n < 5 - 추가 행 반환
)
SELECT * FROM 가상테이블명;
형 변환
CAST(변환하고싶은 데이터 AS 데이터형식[(길이)])
CONVERT(변환하고싶은 데이터, 데이터형식[(길이)])
ex.
SELECT CAST(20211014 AS DATE);
> 2021-10-14
SELECT CONVERT(20211014, DATE);
> 2021-10-14
내부 조인
SELECT 컬럼명
FROM 테이블명1
INNER JOIN 테이블명2
ON 조인 조건
WHERE 검색조건
교집합
SELECT 컬럼명 FROM 테이블명1
INTERSECT
SELECT 컬럼명 FROM 테이블명2
참고자료