sql 표 연결 조회 사용 방법(sql 다 중 표 연결 조회)

실제 항목 에는 여러 장의 표 와 관련 된 관계 가 존재 한다.한 장의 표 에서 모든 데 이 터 를 검색 할 수 는 없다.시계 연결 이 없다 면 우 리 는 매우 많은 조작 이 필요 하 다.예 를 들 어 A 표 에서 제한 적 인 조건 을 찾 아 B 표 에서 데 이 터 를 검색 해 야 한다.여러 표를 나 누 어 조작 해 야 할 뿐만 아니 라 효율 도 높 지 않다.예 를 들 어 책 속 의 예:

SELECT FId
FROM T_Customer
WHERE FName='MIKE'
이 SQL 문 구 는 2 를 되 돌려 줍 니 다.즉,MIKE 라 는 고객 의 FId 값 이 2 입 니 다.그러면 T 에 도착 할 수 있 습 니 다.Order 에서 FCustomerId 를 검색 하면 2 의 기록 입 니 다.

SELECT FNumber,FPrice
FROM T_Order
WHERE FCustomerId=2
다음은 시계 연결 을 자세히 살 펴 보 겠 습 니 다.표 연결 은 교차 연결(CROSS JOIN),내부 연결(INNER JOIN),외부 연결(OUTTER JOIN)등 다양한 유형 이 있다.
(1)내부 연결(INNER JOIN):내부 연결 은 두 장의 표를 조합 하고 두 표 의 연결 조건 을 만족 시 키 는 데이터 만 가 져 옵 니 다.

SELECT o.FId,o.FNumber,o.FPrice,
c.FId,c.FName,c .FAge
FROM T_Order o JOIN T_Customer c
ON o.FCustomerId= c.FId
주:대부분의 데이터베이스 시스템 에서 INNER JOIN 의 INNER 는 선택 할 수 있 습 니 다.INNER JOIN 은 기본 연결 방식 입 니 다.
시 계 를 사용 하여 연결 할 때 두 장의 시 계 를 연결 하 는 데 국한 되 지 않 을 수 있 습 니 다.많은 시 계 를 연결 해 야 하 는 경우 가 많 기 때 문 입 니 다.예 를 들 어 TOrder 표 와 함께 T 연결 이 필요 합 니 다.Customer 와 TOrderType 두 장의 표 에서 필요 한 정 보 를 검색 할 수 있 습 니 다.다음 SQL 문 구 를 작성 하면 됩 니 다.

SELECT o.FId,o.FNumber,o.FPrice,
c.FId,c.FName,c .FAge
FROM T_Order o JOIN T_Customer c
ON o.FCustomerId= c.FId
INNER JOIN T_OrderType
ON T_Order.FTypeId= T_OrderType.FId
(2)교차 연결(CROSS JOIN):교차 연결 과 관련 된 모든 표 의 모든 기록 이 결과 집중 에 포함 되 어 있 습 니 다.두 가지 방식 으로 교차 연결 을 정의 할 수 있 는데 그것 이 바로 암시 적 연결 과 명시 적 연결 이다.
다음은 암시 적 인 예 를 살 펴 보 자.

SELECT T_Customer.FId, T_Customer.FName, T_Customer.FAge,
T_Order.FId, T_Order.FNumber, T_Order.FPrice
FROM T_Customer, T_Order
명시 적 연결 을 사용 하려 면 CROSS JOIN 을 사용 해 야 합 니 다.예 는 다음 과 같 습 니 다.

SELECT T_Customer.FId, T_Customer.FName, T_Customer.FAge,
T_Order.FId, T_Order.FNumber, T_Order.FPrice
FROM T_Customer
CROSS JOIN T_Order
(3)외부 연결(OUTTER JOIN):내부 연결 은 연결 조건 을 만족 시 키 는 데이터 만 얻 고 외부 연결 에 있어 이런 장면 을 해결 하 는 것 이다.조건 을 만족 시 키 는 데 이 터 를 검색 하면 외부 연결 에서 다른 데 이 터 를 검색 할 수 있 습 니 다.그것 은 조건 에 만족 하지 않 는 데 이 터 를 NULL 로 채 우 는 것 입 니 다.먼저 외부 연결 의 분 류 를 살 펴 보 자.왼쪽 외부 연결(LEFT OUTER JOIN),오른쪽 외부 연결(Right OUTER JOIN)과 전체 외부 연결(FULLOUTER JOIN).
I.왼쪽 외부 연결(LEFT OUTER JOIN):앞에서 도 말 했 듯 이 조건 에 만족 하지 않 는 데 이 터 를 NULL 로 채 웁 니 다.그렇다면 구체 적 으로 어떤 것들 을 NULL 로 채 워 야 할 까요?왼쪽 외부 연결 의 경우 연결 조건 에서 조건 을 만족 시 키 는 왼쪽 표 의 데이터 가 오른쪽 표 에 일치 하지 않 을 경우 해당 하 는 오른쪽 표 필드 를 NULL 값 으로 채 워 야 합 니 다.왼쪽 외부 연결 의 주 체 는 왼쪽 표,오른쪽 표 로 맞 춰 진 다 는 것 이다.

SELECT o.FNumber,o.FPrice,o.FCustomerId,
c.FName,c.FAge
FROM T_Order o
LEFT OUTER JOIN T_Customer c
ON o.FCustomerId=c.FId
주:왼쪽 외부 연결 을 사용 하면 where 문 구 를 통 해 일치 하지 않 는 데 이 터 를 걸 러 낼 수 있 습 니 다.

SELECT o.FNumber,o.FPrice,o.FCustomerId,
c.FName,c.FAge
FROM T_Order o
LEFT OUTER JOIN T_Customer c
ON o.FCustomerId=c.FId
WHERE o.FPrice>=150
II,오른쪽 외부 연결(Right OUTER JOIN):오른쪽 외부 연결 은 왼쪽 외부 연결 과 반대로 NULL 값 이 왼쪽 표 의 필드 로 채 워 집 니 다.오른쪽 외부 연결 의 주 체 는 오른쪽 표,왼쪽 표 가 맞 춰 진 다 는 것 이다.

SELECT o.FNumber,o.FPrice,o.FCustomerId,
c.FName,c.FAge
FROM T_Order o
RIGHT OUTER JOIN T_Customer c
ON o.FCustomerId=c.FId
주:왼쪽 외부 연결 과 마찬가지 로 where 문 구 를 사용 하여 여과 할 수 있 습 니 다.
3.전 외부 연결(FULLOUTER JOIN):전 외부 연결 은 왼쪽 외부 연결 과 오른쪽 외부 연결 의 집합 입 니 다.왼쪽 외부 연결 의 결과 집합 도 포함 하고 오른쪽 외부 연결 의 결과 집합 도 포함한다.

SELECT o.FNumber,o.FPrice,o.FCustomerId,
c.FName,c.FAge
FROM T_Order o
FULL OUTER JOIN T_Customer c
ON o.FCustomerId=c.FId
그 결 과 는 다음 과 같다.

SELECT o.FNumber,o.FPrice,o.FCustomerId,
c.FName,c.FAge
FROM T_Order o
LEFT OUTER JOIN T_Customer c
ON o.FCustomerId=c.FId
UNION
SELECT o.FNumber,o.FPrice,o.FCustomerId,
c.FName,c.FAge
FROM T_Order o
RIGHT OUTER JOIN T_Customer c
ON o.FCustomerId=c.FId

좋은 웹페이지 즐겨찾기