728x90
엑세스(Access) 시험에서 **테이블 조인(Join)**은 두 개 이상의 테이블을 연결해 데이터를 결합하는 매우 중요한 주제입니다. 엑세스에서는 쿼리 디자인 도구를 사용해 시각적으로 조인을 구성하거나 SQL 뷰를 통해 직접 쿼리를 작성할 수 있습니다. 주로 사용되는 조인에는 내부 조인(INNER JOIN), 외부 조인(LEFT/RIGHT JOIN) 등이 있습니다.
아래에 테이블 조인 방법을 예제와 함께 자세히 설명해 드릴게요.
1. INNER JOIN (내부 조인)
- 두 테이블의 공통된 값이 있는 행만 결합합니다.
문제
두 테이블이 있습니다:
- 학생정보 테이블: 학번, 이름, 나이
- 수강정보 테이블: 학번, 과목명, 점수
학번을 기준으로 두 테이블을 조인해, 각 학생의 이름과 수강한 과목을 조회하세요.
풀이 방법
- [만들기] → [쿼리 디자인] 클릭
- **‘학생정보’**와 ‘수강정보’ 테이블을 추가합니다.
- 학생정보의 학번 필드를 수강정보의 학번 필드로 드래그해 연결합니다.
- 그리드에 다음 필드를 추가합니다:
- 학생정보: 이름
- 수강정보: 과목명, 점수
- [실행] 버튼(빨간 느낌표)을 클릭해 결과를 확인합니다.
SELECT 학생정보.이름, 수강정보.과목명, 수강정보.점수
FROM 학생정보
INNER JOIN 수강정보 ON 학생정보.학번 = 수강정보.학번;
2. LEFT JOIN (왼쪽 외부 조인)
- 왼쪽 테이블의 모든 행을 포함하고, 오른쪽 테이블에 일치하지 않는 데이터는 NULL로 표시합니다.
문제
‘학생정보’ 테이블의 모든 학생과 그들이 수강한 과목(있으면 표시)을 조회하세요.
풀이 방법
- 쿼리 디자인에서 학생정보와 수강정보 테이블을 추가합니다.
- 학번 필드를 연결합니다.
- 연결선을 마우스 오른쪽 버튼으로 클릭한 뒤 조인 속성을 선택합니다.
- "학생정보의 모든 레코드를 포함하고, 일치하는 경우 수강정보의 레코드 포함" 옵션을 선택합니다.
- 필요한 필드를 추가하고 쿼리를 실행합니다.
SELECT 학생정보.이름, 수강정보.과목명, 수강정보.점수
FROM 학생정보
LEFT JOIN 수강정보 ON 학생정보.학번 = 수강정보.학번;
3. RIGHT JOIN (오른쪽 외부 조인)
- 오른쪽 테이블의 모든 행을 포함하고, 왼쪽 테이블에 일치하지 않는 데이터는 NULL로 표시합니다.
문제
모든 수강 과목과 해당 과목을 수강하는 학생(없으면 NULL)을 조회하세요.
풀이 방법
- 쿼리 디자인에서 두 테이블을 추가합니다.
- 학번 필드를 연결합니다.
- 연결선을 마우스 오른쪽 버튼으로 클릭하고 조인 속성을 선택합니다.
- "수강정보의 모든 레코드를 포함하고, 일치하는 경우 학생정보의 레코드 포함" 옵션을 선택합니다.
- 필요한 필드를 추가한 뒤 실행합니다.
SELECT 학생정보.이름, 수강정보.과목명
FROM 학생정보
RIGHT JOIN 수강정보 ON 학생정보.학번 = 수강정보.학번;
4. SELF JOIN (자기 조인)
- 같은 테이블 내에서 두 개의 행을 서로 비교할 때 사용합니다.
문제
직원 테이블에서 상사와 부하 직원의 이름을 각각 조회하세요.
- 직원 테이블: 직원ID, 이름, 상사ID
풀이 방법
- 쿼리 디자인에서 같은 테이블을 두 번 추가합니다.
- 테이블 이름 옆에 별칭이 자동으로 부여됩니다(예: 직원정보_1).
- ‘직원정보’의 직원ID와 ‘직원정보_1’의 상사ID를 연결합니다.
- 필요한 필드를 추가하고 쿼리를 실행합니다.
SELECT 직원정보.이름 AS 직원명, 직원정보_1.이름 AS 상사명
FROM 직원정보
INNER JOIN 직원정보 AS 직원정보_1
ON 직원정보.상사ID = 직원정보_1.직원ID;
5. FULL OUTER JOIN (엑세스에서 직접 지원되지 않음)
엑세스는 FULL OUTER JOIN을 직접 지원하지 않습니다. 하지만 LEFT JOIN과 RIGHT JOIN을 사용해 두 결과를 합치는 방식으로 비슷한 기능을 구현할 수 있습니다.
예시
학생과 수강정보 테이블에서 모든 데이터를 조회하려면 LEFT JOIN과 RIGHT JOIN을 조합합니다.
6. 여러 테이블 조인 (다중 조인)
문제
세 개의 테이블이 있습니다:
- 학생정보: 학번, 이름
- 수강정보: 학번, 과목명
- 과목정보: 과목명, 교수명
모든 정보를 조인하여 학생 이름, 과목명, 교수명을 조회하세요.
풀이 방법
- 쿼리 디자인에서 세 개의 테이블을 추가합니다.
- 학생정보.학번을 수강정보.학번과 연결합니다.
- 수강정보.과목명을 과목정보.과목명과 연결합니다.
- 필요한 필드를 추가하고 쿼리를 실행합니다.
SELECT 학생정보.이름, 수강정보.과목명, 과목정보.교수명
FROM (학생정보
INNER JOIN 수강정보 ON 학생정보.학번 = 수강정보.학번)
INNER JOIN 과목정보 ON 수강정보.과목명 = 과목정보.과목명;
7. 조인 결과 필터링 (WHERE 절 사용)
문제
학생과 수강 정보를 조인하고, 점수가 80점 이상인 학생만 조회하세요.
SELECT 학생정보.이름, 수강정보.과목명, 수강정보.점수
FROM 학생정보
INNER JOIN 수강정보 ON 학생정보.학번 = 수강정보.학번
WHERE 수강정보.점수 >= 80;
728x90
'컴퓨터 > 컴퓨터 시험' 카테고리의 다른 글
ITQ 액세스 시험 (폼 작성) (1) | 2024.11.06 |
---|---|
ITQ 액세스 시험 (테이블 조인) 예제 (2) | 2024.11.05 |
ITQ 액세스 시험 (선택 쿼리) 예제 (0) | 2024.11.04 |
ITQ 액세스 시험 (선택 쿼리) (4) | 2024.11.04 |
ITQ 액세스 시험 (테이블 생성 및 관리) 예제 (2) | 2024.11.03 |