작동 중지
관계형 모델의 관계형은 수학 집합론의 관계형 이론에서 파생됩니다.
- 데이터베이스의 데이터를 하나의 집합으로 처리하고 처리를 단순화하는 역할을 합니다.
- SQL 및 세트
원에 적힌 숫자는 요소에 해당합니다.
- 데이터베이스에서 테이블의 행은 항목에 해당합니다.
- 라인은 여러 개의 열로 구성될 수 있으므로 여러 개의 숫자 값이 있습니다.
- 집합 요소의 관점에서 행은 요소가 됩니다.
- 라인은 여러 개의 열로 구성될 수 있으므로 여러 개의 숫자 값이 있습니다.
SELECT 명령을 실행하면 데이터베이스에 질의하며 그 결과 몇 개의 행이 반환된다.
반환된 결과 전체를 하나의 집합이라고 생각하면 된다.
UNION으로 유니온 찾기
두 세트 A와 B에 세 개의 요소가 있는 경우 A = {1, 2, 3} 및 B = {2, 10, 11}
요소 2는 세트 A와 B 모두에 존재합니다.
→ 건널목
A와 B의 합집합은 {1, 2, 3, 10, 11}입니다.
- 단순 덧셈은 {1, 2, 3, 2, 10, 11}과 같은 6개의 요소를 제공하지만 통합은 그렇지 않습니다.
노동 조합
SQL에서 행을 계산하기 위한 구문
SELECT 명령의 실행 결과를 문장으로 처리할 수 있습니다.
- 합집합을 계산할 때 수학에서 사용되는 U 기호 대신 UNION 키워드를 사용하십시오.
- “AU B”는 SQL에서 “A UNION B”로 표현됩니다.
(나는 A, B라고 말했지만 실제로는 SELECT 명령입니다)
- “AU B”는 SQL에서 “A UNION B”로 표현됩니다.
SELECT 명령의 결과를 집합으로 생각하고 UNION으로 합집합을 구하면,
SELECT * FROM a
UNION
SELECT * FROM b;
ㅏ |
하나 |
2 |
삼 |
10 |
11 |
두 개의 SELECT 명령이 하나의 명령으로 결합되는 것처럼 마지막에 semi-lon을 추가해야 합니다.
- a 뒤에 세미콜론을 넣으면 명령이 중간에서 끝나서 제대로 실행되지 않습니다.
쿼리를 실행할 때 내부적으로 두 개의 SELECT 명령이 실행됩니다.
- 이때 각 SELECT 명령의 실행 결과(set)는 합집합으로 계산되어 최종 결과가 반환된다.
- 두 개의 SELECT 문을 하나로 UNIONing하여 쿼리 결과를 얻을 수 있습니다.
- 두 개의 SELECT 문을 하나로 UNIONing하여 쿼리 결과를 얻을 수 있습니다.
- UNION을 사용하면 여러 SELECT 명령을 하나로 결합할 수 있습니다.
예를 들어 1+2+3..- 각 SELECT 문의 열 내용이 일치해야 합니다.
- 컬럼의 이름이 달라도 컬럼의 개수와 데이터 타입이 같아야 동일하다.
- 컬럼의 이름이 달라도 컬럼의 개수와 데이터 타입이 같아야 동일하다.
- 각 SELECT 문의 열 내용이 일치해야 합니다.
- SELECT 문에서 집합 일치의 구성원이 될 데이터가 있으면 UNION을 수행할 수 있습니다.
- SLECT * FORM 테이블; 별표
사용하지 않고 컬럼을 별도로 지정
UNION으로 그룹화할 때 나열 순서는 결합 결과에 영향을 주지 않습니다.
(결과는 모두 동일합니다.
)– 단, 결과가 나열되는 순서는 다를 수 있습니다.
ORDER BY를 지정하지 않고 SELECT 명령을 실행한 결과는 내부 처리 상황에 따라 달라지기 때문이다.
UNION을 사용할 때 ORDER BY를 지정하는 방법에 주의하십시오.
UNION을 사용할 때 ORDER BY
- SELECT 명령을 UNION과 결합하여 합집합을 얻으면 각 SELECT 명령에 ORDER BY를 지정하여 정렬할 수 없습니다.
- ORDER BY를 지정하면 마지막 SELECT 문에만 지정할 수 있습니다.
- 그렇다고 ORDER BY로 정렬할 수 없다는 의미는 아닙니다.
- 그렇다고 ORDER BY로 정렬할 수 없다는 의미는 아닙니다.
- 통합 결과가 정렬되어 있으므로 마지막 SELECT 문에 ORDER BY를 지정해야 합니다.
- 실제로 아래에 ORDER BY를 지정해도 쿼리에서 오류가 발생한다.
- 실제로 아래에 ORDER BY를 지정해도 쿼리에서 오류가 발생한다.
통합 결과를 정렬해야 하므로 두 SELECT 문의 열 이름이 일치해야 합니다.
- SELECT 문을 UNION으로 조인할 때 ORDER BY 절은 마지막 SELECT 문에만 지정할 수 있습니다.
ORDER BY 절에 지정된 열은 별칭을 지정하고 이름으로 일치해야 합니다.
유니온 올
- UNION은 두 세트의 겹치는 부분이 공통 요소가 되도록 합집합을 찾도록 설계되었습니다.
- 실행 결과에 DISTINCT를 적용하여 중복을 제거하는 것과 같습니다.
- 많은 수학에서는 중복 값이 없다고 가정합니다.
- 많은 수학에서는 중복 값이 없다고 가정합니다.
UNION 결과에서 중복 값도 제거됩니다.
- 중복을 제거하지 않고 두 SELECT 문의 결과를 결합하려는 경우가 있습니다.
이 경우 UNION ALL을 사용하십시오.
- SELECT 명령에서 DISTINCT는 중복을 제거하도록 지정되고 ALL(기본값)은 중복을 제거하지 않고 모두 반환하도록 지정됩니다.
- UNION의 기본 연산은 DISTINCT이므로 모든 결과를 원하는 경우 ALL을 지정해야 합니다.
- UNION DISTINCT 구문은 허용되지 않습니다.
- UNION ALL은 프로세서가 이미 UNION에 값이 있는지 확인해야 하므로 성능 면에서 더 유리할 수 있습니다.
- UNION ALL은 프로세서가 이미 UNION에 값이 있는지 확인해야 하므로 성능 면에서 더 유리할 수 있습니다.
중복 값이 없으면 UNION ALL을 사용하는 것이 더 좋은 성능을 보입니다.
교집합과 차이
- MySQL에서는 지원되지 않습니다.
- SQL을 사용하여 교차점과 차이점을 찾을 수도 있습니다.
- SQL을 사용하여 교차점과 차이점을 찾을 수도 있습니다.
- 교차에는 INTERSECT를 사용하고 차이에는 EXCEPT를 사용합니다(Oracle의 경우 MINUS).
- 동일한 집합 간의 차이를 계산하면 요소가 없는 빈 집합이 됩니다.
- 차이 집합의 결과가 비어 있는지 여부에 따라 두 집합이 같은지 여부를 결정할 수 있습니다.
- 동일한 집합 간의 차이를 계산하면 요소가 없는 빈 집합이 됩니다.
- 유사점이 없다면 차이점을 찾는 것이 결과를 바꾸지 않습니다.
교집합은 두 문장이 겹치는 부분을 “공통 부분”이라고 합니다.