본문 바로가기

컴퓨터/컴퓨터 시험

ITQ 액세스 시험 (테이블 조인)

728x90

엑세스(Access) 시험에서 **테이블 조인(Join)**은 두 개 이상의 테이블을 연결해 데이터를 결합하는 매우 중요한 주제입니다. 엑세스에서는 쿼리 디자인 도구를 사용해 시각적으로 조인을 구성하거나 SQL 뷰를 통해 직접 쿼리를 작성할 수 있습니다. 주로 사용되는 조인에는 내부 조인(INNER JOIN), 외부 조인(LEFT/RIGHT JOIN) 등이 있습니다.

아래에 테이블 조인 방법을 예제와 함께 자세히 설명해 드릴게요.


1. INNER JOIN (내부 조인)

  • 두 테이블의 공통된 값이 있는 행만 결합합니다.

문제

두 테이블이 있습니다:

  • 학생정보 테이블: 학번, 이름, 나이
  • 수강정보 테이블: 학번, 과목명, 점수

학번을 기준으로 두 테이블을 조인해, 각 학생의 이름과 수강한 과목을 조회하세요.

풀이 방법

  1. [만들기] → [쿼리 디자인] 클릭
  2. **‘학생정보’**와 ‘수강정보’ 테이블을 추가합니다.
  3. 학생정보의 학번 필드수강정보의 학번 필드로 드래그해 연결합니다.
  4. 그리드에 다음 필드를 추가합니다:
    • 학생정보: 이름
    • 수강정보: 과목명, 점수
  5. [실행] 버튼(빨간 느낌표)을 클릭해 결과를 확인합니다.
 
SELECT 학생정보.이름, 수강정보.과목명, 수강정보.점수
FROM 학생정보
INNER JOIN 수강정보 ON 학생정보.학번 = 수강정보.학번;

2. LEFT JOIN (왼쪽 외부 조인)

  • 왼쪽 테이블의 모든 행을 포함하고, 오른쪽 테이블에 일치하지 않는 데이터는 NULL로 표시합니다.

문제

‘학생정보’ 테이블의 모든 학생과 그들이 수강한 과목(있으면 표시)을 조회하세요.

풀이 방법

  1. 쿼리 디자인에서 학생정보수강정보 테이블을 추가합니다.
  2. 학번 필드를 연결합니다.
  3. 연결선을 마우스 오른쪽 버튼으로 클릭한 뒤 조인 속성을 선택합니다.
  4. "학생정보의 모든 레코드를 포함하고, 일치하는 경우 수강정보의 레코드 포함" 옵션을 선택합니다.
  5. 필요한 필드를 추가하고 쿼리를 실행합니다.
 
SELECT 학생정보.이름, 수강정보.과목명, 수강정보.점수
FROM 학생정보
LEFT JOIN 수강정보 ON 학생정보.학번 = 수강정보.학번;

3. RIGHT JOIN (오른쪽 외부 조인)

  • 오른쪽 테이블의 모든 행을 포함하고, 왼쪽 테이블에 일치하지 않는 데이터는 NULL로 표시합니다.

문제

모든 수강 과목과 해당 과목을 수강하는 학생(없으면 NULL)을 조회하세요.

풀이 방법

  1. 쿼리 디자인에서 두 테이블을 추가합니다.
  2. 학번 필드를 연결합니다.
  3. 연결선을 마우스 오른쪽 버튼으로 클릭하고 조인 속성을 선택합니다.
  4. "수강정보의 모든 레코드를 포함하고, 일치하는 경우 학생정보의 레코드 포함" 옵션을 선택합니다.
  5. 필요한 필드를 추가한 뒤 실행합니다.
 
SELECT 학생정보.이름, 수강정보.과목명
FROM 학생정보
RIGHT JOIN 수강정보 ON 학생정보.학번 = 수강정보.학번;

4. SELF JOIN (자기 조인)

  • 같은 테이블 내에서 두 개의 행을 서로 비교할 때 사용합니다.

문제

직원 테이블에서 상사와 부하 직원의 이름을 각각 조회하세요.

  • 직원 테이블: 직원ID, 이름, 상사ID

풀이 방법

  1. 쿼리 디자인에서 같은 테이블을 두 번 추가합니다.
    • 테이블 이름 옆에 별칭이 자동으로 부여됩니다(예: 직원정보_1).
  2. ‘직원정보’의 직원ID‘직원정보_1’의 상사ID를 연결합니다.
  3. 필요한 필드를 추가하고 쿼리를 실행합니다.
 
SELECT 직원정보.이름 AS 직원명, 직원정보_1.이름 AS 상사명
FROM 직원정보
INNER JOIN 직원정보 AS 직원정보_1
ON 직원정보.상사ID = 직원정보_1.직원ID;

5. FULL OUTER JOIN (엑세스에서 직접 지원되지 않음)

엑세스는 FULL OUTER JOIN을 직접 지원하지 않습니다. 하지만 LEFT JOINRIGHT JOIN을 사용해 두 결과를 합치는 방식으로 비슷한 기능을 구현할 수 있습니다.

예시

학생과 수강정보 테이블에서 모든 데이터를 조회하려면 LEFT JOINRIGHT JOIN을 조합합니다.


6. 여러 테이블 조인 (다중 조인)

문제

세 개의 테이블이 있습니다:

  • 학생정보: 학번, 이름
  • 수강정보: 학번, 과목명
  • 과목정보: 과목명, 교수명

모든 정보를 조인하여 학생 이름, 과목명, 교수명을 조회하세요.

풀이 방법

  1. 쿼리 디자인에서 세 개의 테이블을 추가합니다.
  2. 학생정보.학번수강정보.학번과 연결합니다.
  3. 수강정보.과목명과목정보.과목명과 연결합니다.
  4. 필요한 필드를 추가하고 쿼리를 실행합니다.
 
SELECT 학생정보.이름, 수강정보.과목명, 과목정보.교수명
FROM (학생정보
INNER JOIN 수강정보 ON 학생정보.학번 = 수강정보.학번)
INNER JOIN 과목정보 ON 수강정보.과목명 = 과목정보.과목명;

 


7. 조인 결과 필터링 (WHERE 절 사용)

문제

학생과 수강 정보를 조인하고, 점수가 80점 이상인 학생만 조회하세요.

 
SELECT 학생정보.이름, 수강정보.과목명, 수강정보.점수
FROM 학생정보
INNER JOIN 수강정보 ON 학생정보.학번 = 수강정보.학번
WHERE 수강정보.점수 >= 80;
728x90