728x90
1. INNER JOIN (내부 조인) 예제
문제
두 개의 테이블이 있습니다.
- 고객 테이블: 고객ID, 이름, 연락처
- 주문 테이블: 주문ID, 고객ID, 상품명, 주문일
각 고객이 주문한 상품 목록을 조회하세요.
풀이
- 쿼리 디자인에서 고객 테이블과 주문 테이블을 추가합니다.
- 고객 테이블의 고객ID와 주문 테이블의 고객ID를 연결합니다.
- 다음 필드를 그리드에 추가합니다:
- 고객 테이블: 이름
- 주문 테이블: 상품명, 주문일
- 실행 버튼을 눌러 결과를 확인합니다.
SELECT 고객.이름, 주문.상품명, 주문.주문일
FROM 고객
INNER JOIN 주문 ON 고객.고객ID = 주문.고객ID;
2. LEFT JOIN (왼쪽 외부 조인) 예제
문제
고객 테이블에는 모든 고객의 정보가 있고, 주문 테이블에는 주문한 고객만 기록되어 있습니다.
모든 고객의 정보와 주문 여부를 함께 조회하세요. 주문을 하지 않은 고객의 경우 주문 정보는 NULL로 표시합니다.
풀이
- 쿼리 디자인에서 두 테이블을 추가합니다.
- 고객ID 필드를 연결한 후 조인 속성에서 "고객의 모든 레코드를 포함" 옵션을 선택합니다.
- 필요한 필드를 추가하고 실행합니다.
SELECT 고객.이름, 주문.상품명, 주문.주문일
FROM 고객
LEFT JOIN 주문 ON 고객.고객ID = 주문.고객ID;
3. 여러 테이블 조인 예제 (다중 INNER JOIN)
문제
세 개의 테이블이 있습니다.
- 학생 테이블: 학번, 이름
- 수강 테이블: 학번, 과목ID
- 과목 테이블: 과목ID, 과목명
각 학생이 수강한 과목명을 조회하세요.
풀이
- 쿼리 디자인에서 학생, 수강, 과목 테이블을 추가합니다.
- 학생 테이블의 학번과 수강 테이블의 학번을 연결합니다.
- 수강 테이블의 과목ID와 과목 테이블의 과목ID를 연결합니다.
- 다음 필드를 추가하고 실행합니다:
- 학생: 이름
- 과목: 과목명
SELECT 학생.이름, 과목.과목명
FROM (학생
INNER JOIN 수강 ON 학생.학번 = 수강.학번)
INNER JOIN 과목 ON 수강.과목ID = 과목.과목ID;
4. 조건이 있는 조인 (WHERE 조건 사용)
문제
고객이 주문한 상품 중 2024년 1월 1일 이후 주문된 내역만 조회하세요.
풀이
- 쿼리 디자인에서 고객과 주문 테이블을 추가하고 고객ID를 연결합니다.
- 필드에 고객 이름, 상품명, 주문일을 추가합니다.
- 조건행에 다음 조건을 입력합니다:
- 주문일: >= #2024-01-01#
SELECT 고객.이름, 주문.상품명, 주문.주문일
FROM 고객
INNER JOIN 주문 ON 고객.고객ID = 주문.고객ID
WHERE 주문.주문일 >= #2024-01-01#;
5. SELF JOIN (자기 조인) 예제
문제
직원 테이블에서 상사와 부하 직원의 이름을 조회하세요.
- 직원 테이블: 직원ID, 이름, 상사ID
풀이
- 쿼리 디자인에서 직원 테이블을 두 번 추가합니다.
- 첫 번째 테이블의 상사ID를 두 번째 테이블의 직원ID와 연결합니다.
- 다음 필드를 추가하고 실행합니다:
- 첫 번째 테이블: 이름 (부하 직원)
- 두 번째 테이블: 이름 (상사)
SELECT 부하.이름 AS 부하직원, 상사.이름 AS 상사
FROM 직원 AS 부하
INNER JOIN 직원 AS 상사
ON 부하.상사ID = 상사.직원ID;
6. NULL 값 처리 (IS NULL 사용)
문제
고객 중 주문을 하지 않은 고객의 이름을 조회하세요.
풀이
- 쿼리 디자인에서 고객과 주문 테이블을 추가합니다.
- 고객ID 필드를 연결하고 LEFT JOIN을 사용합니다.
- 조건행에 주문ID가 NULL인 경우를 필터링합니다:
- 주문ID: Is Null
SELECT 고객.이름
FROM 고객
LEFT JOIN 주문 ON 고객.고객ID = 주문.고객ID
WHERE 주문.주문ID IS NULL;
7. 조인 후 집계 쿼리 사용 (GROUP BY)
문제
학생별로 수강한 과목 수를 조회하세요.
풀이
- 쿼리 디자인에서 학생과 수강 테이블을 추가합니다.
- 학번을 연결한 후, 그리드에 학번과 과목ID를 추가합니다.
- 상단 메뉴에서 **"합계(Totals)"**를 클릭합니다.
- 과목ID 필드에 **"개수(Count)"**를 설정합니다.
SELECT 학생.이름, COUNT(수강.과목ID) AS 과목수
FROM 학생
INNER JOIN 수강 ON 학생.학번 = 수강.학번
GROUP BY 학생.이름;
8. 두 개 이상의 조건이 있는 조인 (AND 사용)
문제
고객이 주문한 상품 중에서 특정 상품(‘노트북’)을 2024년 이후에 주문한 내역을 조회하세요.
풀이
- 쿼리 디자인에서 고객과 주문 테이블을 추가하고 고객ID를 연결합니다.
- 상품명과 주문일에 다음 조건을 입력합니다:
- 상품명: "노트북"
- 주문일: >= #2024-01-01#
SELECT 고객.이름, 주문.상품명, 주문.주문일
FROM 고객
INNER JOIN 주문 ON 고객.고객ID = 주문.고객ID
WHERE 주문.상품명 = '노트북' AND 주문.주문일 >= #2024-01-01#;
728x90
'컴퓨터 > 컴퓨터 시험' 카테고리의 다른 글
ITQ 액세스 시험 (폼 작성) 예제 (4) | 2024.11.06 |
---|---|
ITQ 액세스 시험 (폼 작성) (1) | 2024.11.06 |
ITQ 액세스 시험 (테이블 조인) (2) | 2024.11.05 |
ITQ 액세스 시험 (선택 쿼리) 예제 (0) | 2024.11.04 |
ITQ 액세스 시험 (선택 쿼리) (4) | 2024.11.04 |