MySQL은 SELECT 명령문과 조합할 수 있는 집합 연산자를 제공한다.
UNION
UNION ALL
UNION의 조합
모든 중복된 행이 최종결과에서 자동적으로 제거된다.
예제)
mysql> select stu_no
> from attend
> union
> select sut_no
> from fee;
UNION을 사용하기 위한 규칙
관련된 모든 선택 블록의 SELECT 절은 열의 수를 동일하게 가져야 한다.
최종 결과를 만들어내는 수식은 서로 비교할 수 있는 자료형이어야 한다.
ORDER BY 절은 마지막 선택 블록에서만 지정할 수 있다. 순서화는 모든 중간결과가 결합된 후에 전체 최종 결과에서 수행된다.
SELECT 절은 DISTINCT를 가질 수 없다.
UNION의 ALL의 조합
중복된 행을 삭제하는 것을 이러한 연산자의 변형인 ALL을 사용함으로써 막을 수 있다.
집합 연산자와 NULL 값
SQL은 집합 연산자인 UNION, INTERSECT, MINUS가 사용되면 자동적으로 중복된 행을 제거한다.
NULL을 가지고 있다면?
학번은 동일하지만 장학금액은 서로 다르다기 때문에 제거 되지 않고 2개의 행을 출력한다.
UNION
UNION ALL
UNION의 조합
모든 중복된 행이 최종결과에서 자동적으로 제거된다.
예제)
mysql> select stu_no
> from attend
> union
> select sut_no
> from fee;
UNION을 사용하기 위한 규칙
관련된 모든 선택 블록의 SELECT 절은 열의 수를 동일하게 가져야 한다.
최종 결과를 만들어내는 수식은 서로 비교할 수 있는 자료형이어야 한다.
ORDER BY 절은 마지막 선택 블록에서만 지정할 수 있다. 순서화는 모든 중간결과가 결합된 후에 전체 최종 결과에서 수행된다.
SELECT 절은 DISTINCT를 가질 수 없다.
UNION의 ALL의 조합
중복된 행을 삭제하는 것을 이러한 연산자의 변형인 ALL을 사용함으로써 막을 수 있다.
집합 연산자와 NULL 값
SQL은 집합 연산자인 UNION, INTERSECT, MINUS가 사용되면 자동적으로 중복된 행을 제거한다.
NULL을 가지고 있다면?
학번은 동일하지만 장학금액은 서로 다르다기 때문에 제거 되지 않고 2개의 행을 출력한다.
'DB > MySQL' 카테고리의 다른 글
EXISTS 와 IN의 차이 (1) | 2012.03.13 |
---|---|
서브 쿼리 (0) | 2012.03.13 |
ORDER BY 절 (0) | 2012.03.12 |
GROUP BY와 HAVING (0) | 2012.03.12 |
통계 함수 (0) | 2012.03.12 |
댓글