입력이 여러 개의 Row이고 출력이 하나의 결과인것을 의미한다.
데이터를 집계하는 것, GROUP BY로 각종 집계함수, 그룹함수와 함께 쓰인다.
두 개 이상의 테이블을 서로 묶어서 하나의 결과를 만들어내는 것을 의미한다.
종류는 아래와 같다.
여러 쿼리문들을 합쳐서 하나의 쿼리문으로 만들어주는 방법이다.
종류는 아래와 같다.
Person 테이블의 모든 행의 개수를 세는 sql문이다.
사용 예시:
SELECT count(*) FROM Person;
Person 테이블의 특정 컬럼에 데이터가 있는 행을 세려면 괄호 안에 컬럼명을 쓴다.
사용 예시:
SELECT count(Height) FROM Person;
최대값을 구한다.
사용 예시:
SELECT max(Height) FROM Person;
최소값을 구한다.
사용 예시:
SELECT min(Height) FROM Person;
숫자 컬럼에 대해 합계를 낼 수 있다.
사용 예시:
SELECT sum(Height) FROM Person;
평균값을 구한다.
사용 예시:
SELECT avg(Height) FROM Person;
사용 예시
SELECT round(Height), count(*)
FROM Person
GROUP BY 1; -- 혹은 GROUP BY round(Height);
위와 같이 사용하며, 1은 첫번째 컬럼을 기준으로 하겠다는 의미이고, 주석에 달아둔 내용 역시 같은 내용이다.
사용 예시
SELECT round(Height), count(*)
FROM Person
GROUP BY round(Height)
HAVING count(*) > 1;
GROUP BY 절의 기준 항목이나 소그룹의 집계 함수를 이용한 조건을 표시할 수 있다.
사용 예시
SELECT 음반.제목 앨범명, 음반.연도 발매년도, 노래.제목 곡명
FROM 수록곡
INNER JOIN 음반 ON 수록곡.음반ID = 음반.ID
INNER JOIN 노래 ON 수록곡.노래ID = 노래.ID
INNER JOIN은 따로 INNER라고 선언하지 않아도 기본적으로 INNER JOIN이 된다.
SELECT 음반.제목 앨범명, 음반.연도 발매년도, 노래.제목 곡명
FROM 노래, 음반, 수록곡
WHERE 음반.ID = 수록곡.음반ID AND 노래.ID = 수록곡.노래ID;
이 구문도 위와 같은 결과를 얻을 수 있다.
사용 예시
SELECT 제목 FROM 음반
UNION ALL
SELECT 제목 FROM 노래
UNION ALL은 중복값을 지우지 않고 가져온다. 위의 코드들과 달리 1열로 나온다.
사용 예시
SELECT 제목 FROM 음반
UNION
SELECT 제목 FROM 노래
UNION ALL과 달리 중복값을 제외한 값을 가져온다.
간단하게만 작성해두었다.