다대다 매핑 (N : N)
관계형 데이터베이스는 정규화된 테이블 2개로 다대다 관계를 표현할 수 없다.
그런 이유로 중간에 연결 테이블을 추가해서 다대다 관계를 일대일, 다대일 관계로 풀어낸다
여기서 PruchaseOrder(주문) 테이블이 연결 테이블 역할을 한다
( PruchaseOrder테이블에 두 개의 왜래키(uid, pid) 가 생긴것을 볼 수 있다. )
EDR 코드 DB에서 실행
이전에 만든 테이블들을 DROP시키고 다시 위 사진의 EDR코드를 받아서 실행해보자
(일대일 일대다 EDR을 작성해봤으니 잘 실행했으리라 생각한다!)
각 테이블에 값을 넣어주었다. 이제 어떻게 출력할건지 생각해보자
Equi Join
조건 절에 조인되는 두 테이블의 컬럼을 Equal 연산자(=)로 연결하는 경우이다.
주로 Primary Key와 Foreign Key 컬럼이 서로 조인될 때 이용되는 형태
-- 1. 아래 정보를 모두 하나의 표로 보여주세요
-- 로그인 아이디 | 닉네임 | 휴대폰번호 | 이메일 | 본명
다음과 같은 요구가 들어왔을때 사용해보자
Equi Join으로 userd의 PK 즉 userPrivateInfo 의 FOREIGN KEY인 uid 를 조인해서
아이디 닉네임 휴대폰번호 이메일 이름을 쉽게 출력하였다
여기서 as = alias(별칭) 를 사용하여 출력되는 항목의 이름을 바꿀 수 있다
-- 2. 회원이 주문한 제폼의 이름을 함께 보여주세요
-- 로그인아이디 | 닉네임 | 주문일시 | 제품이름
또다른 요구가 들어왔다 이번에도 Equi Join으로 묶어보자
이번에는 user, purchaseorder, product 세가지 테이블이 필요하다
두 테이블씩 조인하여 and로 묶어서 출력해보자
'수업 & 공부 > 수업 내용' 카테고리의 다른 글
19- SQL ( like ) (0) | 2021.08.23 |
---|---|
18- SQL ( GROUP BY ) (0) | 2021.08.20 |
16- EDR 식별관계 (1 : 1) (0) | 2021.08.19 |
15- EDR 비식별관계(1 : N) (0) | 2021.08.19 |
14- Eclipse EDR 그리기 (0) | 2021.08.19 |