SQL 에서 JOIN 과 UNION 의 차이 점, 용법 및 예시 소개

1. 조인 과 유 니 온 의 차이 
join 은 두 장의 표를 연결 한 후 조건 이 같은 부분 기록 으로 기록 집 을 만 듭 니 다.  유 니 온 은 두 개의 기록 집 (필드 가 같 아야 함) 을 함께 만들어 새로운 기록 집 이 되 었 다. 
JOIN 은 ON 조건 에 따라 두 개의 표를 연결 하 는데 주로 네 가지 가 있 습 니 다. 
INNER JOIN: 내부 연결 두 표 의 기록 은 적어도 두 표 에 속 하 는 줄 이 연결 조건 에 부합 할 때 만 내부 연결 이 되 돌아 갑 니 다.내 가 이해 하 는 것 은 기록 이 ON 조건 에 부합 되 지 않 으 면 결과 집합 에 나타 나 지 않 는 다 는 것 이다. 
LEFT JOIN / LEFT OUTER JOIN: 외부 연결 두 표 의 기록 과 왼쪽 표 의 모든 기록 을 포함 합 니 다.왼쪽 표 의 한 기록 이 오른쪽 표 에 일치 하 는 기록 이 없 으 면 관련 결과 에 오른쪽 표 의 모든 선택 목록 열 이 빈 값 으로 집 중 됩 니 다.ON 조건 에 부합 되 지 않 더 라 도 왼쪽 표 의 기록 이 모두 표시 되 고 그 결 과 는 이러한 기록 의 오른쪽 표 필드 가 빈 값 으로 집중 되 는 것 으로 이해 된다. 
Right JOIN / Right OUTER JOIN: 외부 연결 두 표 의 기록 과 오른쪽 표 의 모든 기록 을 포함 합 니 다.쉽게 말 하면 LEFT JOIN 과 는 반대로 
FULL JOIN / FULL OUTER JOIN: 전체 외부 연결 은 왼쪽 표 와 오른쪽 표 의 모든 줄 을 되 돌려 줍 니 다.바로 LEFT JOIN 과 RIGHT JOIN 이 합 쳐 져 좌우 두 표 의 데이터 가 모두 표 시 됩 니 다. 
JOIN 의 기본 문법: 
Select table1.* FROM table1 JOIN table2 ON table1.id=table2.id 
sql 쓰기 
내부 연결 inner join: 
 
  
SELECT msp.name, party.name 
FROM msp JOIN party ON party=code 

혹시 
 
  
SELECT msp.name, party.name 
FROM msp inner JOIN party ON party=code 

왼쪽 연결 left join: 
 
  
SELECT msp.name, party.name 
FROM msp LEFT JOIN party ON party=code 

오른쪽 연결 right join: 
 
  
SELECT msp.name, party.name 
FROM msp RIGHT JOIN party ON msp.party=party.code 

전체 연결 (full join): 
 
  
SELECT msp.name, party.name 
FROM msp FULL JOIN party ON msp.party=party.code 

UNION 연산 자
 
두 개 이상 의 조회 결과 집합 을 하나의 결과 집합 으로 조합 합 니 다. 이 결과 집합 은 공동 조회 의 모든 줄 을 포함 합 니 다.UNION 의 결과 집합 이름 은 UNION 연산 자 중 첫 번 째 Select 문장의 결과 집합 이름과 같 습 니 다.다른 Select 문장의 결과 집합 이름 은 무 시 됩 니 다. 
그 중 두 가지 다른 용법 은 UNION 과 UNION ALL 로 UNION 이 결과 에서 중 복 된 줄 을 집중 적 으로 삭제 하 는 것 과 구별 된다.UNION ALL 을 사용 하면 모든 줄 을 포함 하고 중복 되 는 줄 을 삭제 하지 않 습 니 다. 
UNION 과 UNION ALL 의 차이 점:
 
union 검사 중복 
유 니 온 은 모두 검 사 를 하지 않 습 니 다. 
예 를 들 어 select 'a' union select 'a' 출력 은 한 줄 a 입 니 다. 
예 를 들 어 select 'a' union all select 'a' 출력 은 두 줄 a 입 니 다. 
2. 아래 의 예 를 통 해 두 사람의 차 이 를 뚜렷하게 볼 수 있 고 이해 할 수 있다. 
실례 1 전형 적 인 2 표 연결 시범 
두 개의 표 Table 1 과 Table 2 가 있다 고 가정 하면 그 안에 포 함 된 열 과 데 이 터 는 각각 표 1.1 과 표 1.2 와 같다. 
표 1.1 표 1 데이터베이스 시트 
ColumnA
ColumnB
ColumnC
X1
Y1
Z1
X2
Y2
Z2
X3
Y3
Z3
 
표 1.2 표 2 데이터베이스 시트
 
ColumnA
ColumnD
ColumnE
X1
D1
E1
X2
D2
E2
X3
D3
E3
 
Table 1 과 Table 2 표 에 모두 있 는 열 은 Columna 입 니 다. Columna 열 값 으로 Table 1 과 Table 2 두 개의 표를 연결 하면 연결 조건 은 Table 1. Columna = Table 2. Columna 입 니 다. 이때 얻 은 연결 결 과 는 표 1.3 과 같 습 니 다.
표 1.3 Table 1 과 Table 2 표 연결
ColumnA
ColumnB
ColumnC
ColumnD
ColumnE
X1
Y1
Z1
D1
E1
X2
Y2
Z2
D2
E2
X3
Y3
Z3
D3
E3
상기 연결 과정의 실현 코드 는 다음 과 같다. SELECT * FROM Table 1 JOIN Table 2 ON Table 1. Columna = Table 2. columna
인 스 턴 스 2 전형 적 인 이 표 기록 의 UNION 연산
두 개의 표 Table 3 과 Table 4 가 있다 고 가정 하면 그 안에 포 함 된 열 과 데 이 터 는 각각 표 2.1 과 표 2.2 와 같다.
표 2.1 표 3 데이터베이스 시트
 
ColumnA
ColumnB
ColumnC
X1
Y1
Z1
X2
Y2
Z2
X3
Y3
Z3
 
표 2.2 표 4 데이터베이스 시트,
 
ColumnA
ColumnD
ColumnE
X4
Y4
Z4
X5
Y5
Z5
X6
Y6
Z6
 
Table 3 표 와 Table 4 표 는 같은 열 구 조 를 가지 고 있 으 며, 열 수도 같 아야 하 며, 열 이름 은 다 를 수 있 으 며, 첫 번 째 표 의 열 이름 을 새 표 의 열 이름 으로 하기 때문에 UNION 연산 자 를 사용 하여 두 표 의 기록 집 을 연결 할 수 있 으 며, 얻 은 연결 결 과 는 표 2.3 과 같다.
표 2.3 UNION 으로 Table 3 표 와 Table 4 표를 연결 하 는 기록
 
ColumnA
ColumnB
ColumnC
X1
Y1
Z1
X2
Y2
Z2
X3
Y3
Z3
X4
Y4
Z4
X5
Y5
Z5
X6
Y6
Z6
상기 연결 과정의 실현 코드 는 다음 과 같다. SELECT * FROM Table3 UNION SELECT *FROM Table4
실례 1 과 실례 2 를 비교 하면 양자 의 차 이 를 발견 하기 어렵 지 않다.

좋은 웹페이지 즐겨찾기