때로는 일치하는 데이터가 있는 하나 이상의 필드를 포함하는 해당 레코드가 다른 Access 테이블에 있는 경우에만 Access 테이블의 레코드를 검토하려고 할 수도 있습니다. 예를 들어 보너스를 받을 직원을 확인하기 위해 주문을 하나 이상 처리한 직원의 직원 레코드를 검토할 수 있습니다. 또는 대면 모임을 위해 직원을 고객과 일치시킬 수 있도록 직원과 동일한 도시에 거주하는 고객의 연락처 정보를 검토할 수 있습니다.
두 개의 Access 테이블을 비교하고 일치하는 데이터를 찾으려는 경우 다음 중 하나를 수행할 수 있습니다.
-
기존 관계를 사용하거나 쿼리 목적으로 만든 조인을 사용하여 필드에 해당 정보가 포함된 각 테이블의 필드를 조인하는 쿼리를 만듭니다. 이 방법은 최적의 성능(쿼리에서 결과가 반환되는 속도)을 제공하지만 데이터 형식이 서로 다른 필드를 조인할 수 없습니다.
-
한 필드를 다른 필드의 기준으로 사용하여 필드를 비교하는 쿼리를 만듭니다. 다른 필드에 대한 조건으로 필드를 사용하는 것은 일반적으로 조인을 사용하는 것보다 느립니다. 조인은 기본 테이블을 읽기 전에 쿼리 결과에서 행을 제거하는 반면 기준은 기본 테이블을 읽은 후 쿼리 결과에 적용되기 때문입니다. 그러나 필드를 필드 기준으로 사용하여 서로 다른 데이터 형식이 있는 필드를 비교할 수 있으며 조인을 사용하여 수행할 수 없습니다.
이 문서에서는 두 테이블을 비교하여 일치하는 데이터를 식별하고 예제 절차와 함께 사용할 수 있는 샘플 데이터를 제공합니다.
실행할 작업
조인을 사용하여 두 테이블 비교
조인을 사용하여 두 테이블을 비교하려면 두 테이블을 모두 포함하는 선택 쿼리를 만듭니다. 테이블 간에 해당 데이터를 포함하는 필드에 대한 기존 관계가 아직 없는 경우 일치 항목을 검사할 필드에 대한 조인을 만듭니다. 원하는 개수만큼 조인을 만들 수 있지만 조인된 필드의 각 쌍은 같거나 호환되는 데이터 형식이어야 합니다.
대학의 교육 기관 연구원으로, 수학 학부의 최근 교과 과정 변경이 학생들의 성적에 어떤 영향을 주었는지 확인하려 한다고 가정합니다. 특히 수학 전공 학생들의 성적에 관심이 있습니다. 학생들의 전공 데이터를 저장하는 테이블과 수강 등록 데이터를 저장하는 테이블은 이미 있습니다. 성적 데이터는 Class Enrollments 테이블에 저장되어 있고 학생 전공 데이터는 Student Majors 테이블에 저장되어 있습니다. 최근 교과 과정 변경 이후 수학 전공 학생들의 성적이 어떻게 변경되었는지 확인하려면 Majors 테이블에 해당 레코드가 있는 Enrollments 테이블의 레코드를 검토해야 합니다.
샘플 데이터 준비
이 예제에서는 수학 학부의 최근 교과 과정 변경이 수학 전공 학생들의 성적에 어떤 영향을 주었는지 확인하는 쿼리를 작성합니다. 두 샘플 테이블 Student Majors 및 Class Enrollments를 사용합니다. 이러한 두 샘플 테이블 Student Majors 및 Class Enrollments를 데이터베이스에 추가합니다.
Access 이러한 샘플 테이블을 데이터베이스에 추가하는 여러 가지 방법을 제공합니다. 데이터를 수동으로 입력하거나, 각 테이블을 스프레드시트 프로그램에 복사한 다음 워크시트를 Access 가져오거나, 데이터를 메모장과 같은 텍스트 편집기에 붙여넣은 다음, 결과 텍스트 파일에서 데이터를 가져올 수 있습니다.
이 섹션의 단계에서는 빈 데이터 시트에 데이터를 수동으로 입력하는 방법 및 샘플 테이블을 Excel에 복사한 다음 해당 테이블을 Access로 가져오는 방법을 설명합니다.
Student Majors
Student ID |
Year |
Major |
---|---|---|
123456789 |
2005 |
MATH |
223334444 |
2005 |
ENGL |
987654321 |
2005 |
MATH |
135791357 |
2005 |
HIST |
147025836 |
2005 |
BIOL |
707070707 |
2005 |
MATH |
123456789 |
2006 |
MATH |
223334444 |
2006 |
ENGL |
987654321 |
2006 |
PSYC |
135791357 |
2006 |
ARTH |
147025836 |
2006 |
BIOL |
707070707 |
2006 |
MATH |
Class Enrollments
Student ID |
Year |
Term |
Curriculum |
Course No. |
Grade |
---|---|---|---|---|---|
123456789 |
2005 |
3 |
MATH |
221 |
A |
123456789 |
2005 |
3 |
ENGL |
101 |
B |
123456789 |
2006 |
1 |
MATH |
242 |
C |
123456789 |
2006 |
1 |
MATH |
224 |
C |
223334444 |
2005 |
3 |
ENGL |
112 |
A |
223334444 |
2005 |
3 |
MATH |
120 |
C |
223334444 |
2006 |
1 |
POSC |
110 |
A |
223334444 |
2006 |
1 |
ENGL |
201 |
B |
987654321 |
2005 |
3 |
MATH |
120 |
A |
987654321 |
2005 |
3 |
PSYC |
101 |
A |
987654321 |
2006 |
1 |
MATH |
221 |
B |
987654321 |
2006 |
1 |
MATH |
242 |
C |
135791357 |
2005 |
3 |
HIST |
102 |
A |
135791357 |
2005 |
3 |
ARTH |
112 |
A |
135791357 |
2006 |
1 |
MATH |
120 |
B |
135791357 |
2006 |
1 |
MATH |
141 |
C |
147025836 |
2005 |
3 |
BIOL |
113 |
B |
147025836 |
2005 |
3 |
CHEM |
113 |
B |
147025836 |
2006 |
1 |
MATH |
120 |
D |
147025836 |
2006 |
1 |
STAT |
114 |
B |
707070707 |
2005 |
3 |
MATH |
221 |
B |
707070707 |
2005 |
3 |
STAT |
114 |
A |
707070707 |
2006 |
1 |
MATH |
242 |
D |
707070707 |
2006 |
1 |
MATH |
224 |
C |
스프레드시트 프로그램을 사용하여 샘플 데이터를 입력하려는 경우 다음 섹션을 건너뛸 수 있습니다.
수동으로 샘플 데이터 입력
-
새 데이터베이스나 기존 데이터베이스를 엽니다.
-
만들기 탭의 테이블 그룹에서 테이블을 클릭합니다.
새로운 빈 테이블이 데이터베이스에 추가됩니다.
참고: 새로운 빈 데이터베이스를 여는 경우에는 이 단계를 따르지 않아도 되지만, 데이터베이스에 테이블을 추가해야 할 때마다 이 단계를 따라야 합니다.
-
머리글 행의 첫 번째 셀을 두 번 클릭한 다음 샘플 테이블의 필드 이름을 입력합니다.
기본적으로 머리글 행의 빈 필드는 다음과 같이 새 필드 추가 텍스트로 표시됩니다.
-
화살표 키를 사용하여 다음 빈 머리글 셀로 이동한 후 두 번째 필드 이름을 입력합니다. 새로운 셀을 두 번 클릭할 수도 있습니다. 각 필드 이름에 대해 이 단계를 반복합니다.
-
샘플 테이블의 데이터를 입력합니다.
데이터를 입력하면 각 필드의 데이터 형식이 자동으로 유추됩니다. 각 필드에 숫자, 텍스트, 날짜/시간 등의 특정 데이터 형식이 있습니다. 데이터 형식을 설정하면 정확한 데이터 입력에 도움이 되며, 계산에 전화 번호를 사용하는 등의 실수를 방지할 수도 있습니다. 이 샘플 테이블에 대해 Access에서 데이터 형식을 유추할 수 있게 하되, Access에서 각 필드에 대해 유추한 데이터 형식을 검토해야 합니다.
-
데이터 입력을 마쳤으면 저장을 클릭하거나 Ctrl+S를 누릅니다.
다른 이름으로 저장 대화 상자가 나타납니다.
-
테이블 이름 상자에 샘플 테이블의 이름을 입력한 다음 확인을 클릭합니다.
이 문서의 절차 섹션에 있는 쿼리에서도 해당 이름이 사용되므로 각 샘플 테이블의 이름(예: Student Majors)을 사용합니다.
샘플 데이터 입력을 마쳤으면 두 테이블을 비교할 준비가 되었습니다.
앞의 섹션에서 설명한 테이블의 샘플 데이터를 기반으로 하는 워크시트를 만드는 방법을 확인하지 않으려는 경우 다음 섹션(샘플 워크시트 만들기)을 건너뜁니다.
샘플 워크시트 만들기
-
스프레드시트 프로그램을 시작하고 새로운 빈 파일을 만듭니다. Excel을 사용하는 경우 프로그램을 시작할 때 기본적으로 새로운 빈 통합 문서가 만들어집니다.
-
앞의 섹션에서 첫 번째 샘플 테이블을 복사한 다음 첫 번째 셀부터 첫 번째 워크시트에 붙여넣습니다. 샘플 테이블의 필드 이름이 포함되어 있으므로 머리글 행을 복사해야 합니다.
-
스프레드시트 프로그램에서 제공하는 방법을 사용하여 워크시트에 샘플 테이블과 동일한 이름을 지정합니다. 예를 들어 Class Enrollments 샘플 데이터를 붙여넣는 경우 워크시트 이름을 Class Enrollments로 지정합니다.
-
두 번째 샘플 테이블을 빈 워크시트에 복사하고 워크시트 이름을 바꾸어 2단계와 3단계를 반복합니다.
참고: 스프레드시트 파일에 워크시트를 추가해야 할 수도 있습니다. 스프레드시트 파일에 워크시트를 추가하는 방법에 대한 자세한 내용은 스프레드시트 프로그램에 대한 도움말을 참조하세요.
-
컴퓨터나 네트워크의 원하는 위치에 통합 문서를 저장하고 일련의 다음 단계로 이동합니다.
워크시트에서 데이터베이스 테이블 만들기
-
새 데이터베이스나 기존 데이터베이스에서 다음을 수행합니다.
외부 데이터 탭의 가져오기 그룹에서 Excel을 클릭합니다.
또는
자세히를 클릭한 다음 목록에서 스프레드시트 프로그램을 선택합니다.
외부 데이터 가져오기 - 프로그램 이름 스프레드시트 대화 상자가 나타납니다.
-
찾아보기를 클릭하고 이전 단계에서 만든 스프레드시트 파일을 찾아서 연 다음 확인을 클릭합니다.
스프레드시트 가져오기 마법사가 시작됩니다.
기본적으로 통합 문서의 첫 번째 워크시트(이전 섹션의 단계를 따른 경우 Student Majors)가 선택되고 해당 워크시트의 데이터가 마법사 페이지의 아래쪽 구역에 표시됩니다.
-
다음을 클릭합니다.
-
마법사의 다음 페이지에서 첫 행에 열 머리글이 있음 확인란을 선택하고 다음을 클릭합니다.
-
다음 페이지에서 필드 옵션 아래의 텍스트 상자 및 목록을 사용하여 필드 이름과 데이터 형식을 변경하거나 가져오기 작업에서 필드를 생략할 수 있습니다. 이 예제에서는 아무 것도 변경할 필요가 없습니다. 다음을 클릭합니다.
-
다음 페이지에서 기본 키 없음 옵션을 선택하고 다음을 클릭합니다.
-
기본적으로 워크시트의 이름이 새 테이블에 적용됩니다. 테이블로 가져오기 상자에 있는 이름을 적용하고 마침을 클릭합니다.
-
가져오기 단계 저장 페이지에서 닫기를 클릭하여 마법사를 완료합니다.
-
스프레드시트 파일에 있는 각 워크시트에서 테이블을 만들 때까지 1-7단계를 반복합니다.
샘플 테이블을 비교하고 조인을 사용하여 일치하는 레코드 찾기
이제 Class Enrollments 테이블과 Student Majors 테이블을 비교할 준비가 되었습니다. 두 테이블 간의 관계를 정의하지 않았으므로 쿼리에서 적절한 필드 간에 조인을 만들어야 합니다. 테이블에서 여러 필드가 공통으로 사용되므로 Student ID, Year 및 Curriculum(Class Enrollments 테이블)과 Major(Student Majors 테이블) 등 공통 필드의 각 쌍에 대해 조인을 만들어야 합니다. 이 예제에서는 수학 전공에만 관심이 있으므로 필드 조건을 사용하여 쿼리 결과를 제한합니다.
-
샘플 테이블을 저장한 데이터베이스를 엽니다.
-
만들기 탭에서 쿼리 디자인을 클릭합니다.
-
표시할 레코드가 포함된 테이블을 두 번 클릭합니다. 이 예제에서는 클래스 등록 테이블과 비교하려는 테이블을 두 번 클릭합니다. 이 예제에서는 Student Majors 테이블입니다.
-
Class Enrollments 테이블의 Student ID 필드를 Student Majors 테이블의 Student ID 필드로 끕니다. 디자인 눈금에서 두 테이블 간에 선이 표시되어 조인을 만들었음을 나타냅니다. 선을 두 번 클릭하여 조인 속성 대화 상자를 엽니다.
-
조인 속성 대화 상자의 세 가지 옵션을 검토합니다. 기본적으로 옵션 1이 선택되어 있습니다. 한 테이블의 추가 행을 포함하도록 조인 속성을 조정해야 하는 경우도 있습니다. 일치하는 데이터만 찾으려고 하므로 조인을 옵션 1로 설정된 상태로 둡니다. 취소를 클릭하여 조인 속성 대화 상자를 닫습니다.
-
다른 두 조인을 만들어야 합니다. Class Enrollments 테이블의 Year 필드를 Student Majors 테이블의 Year 필드로 끈 다음 Class Enrollments 테이블의 Curriculum 필드를 Student Majors 테이블의 Major 필드로 끌어 해당 조인을 만듭니다.
-
Class Enrollments 테이블에서 별표(*)를 두 번 클릭하여 테이블의 모든 필드를 쿼리 디자인 눈금에 추가합니다.
참고: 별표로 모든 필드를 추가하면 디자인 표에 하나의 열만 표시됩니다. 표시되는 열에는 테이블 이름, 마침표(.) 및 별표(*). 이 예제에서 열의 이름은 클래스 등록입니다.*.
-
Student Majors 테이블에서 Major 필드를 두 번 클릭하여 눈금에 추가합니다.
-
쿼리 디자인 눈금에서 Major 열의 표시 행에 있는 확인란의 선택을 취소합니다.
-
Major 열의 조건 행에 MATH를 입력합니다.
-
디자인 탭의 결과 그룹에서 실행을 클릭합니다.
쿼리가 실행되고 수학 전공 학생들의 수학 성적만 표시됩니다.
필드를 조건으로 사용하여 두 테이블 비교
데이터는 일치하지만 데이터 형식이 서로 다른 필드를 기준으로 테이블을 비교하려는 경우도 있습니다. 예를 들어 숫자 데이터 형식인 한 테이블의 필드를 텍스트 데이터 형식인 다른 테이블의 필드와 비교하려고 합니다. 유사한 데이터를 포함하지만 필드 형식이 서로 다른 필드에서는 의도적으로 또는 다른 프로그램에서 데이터를 가져오는 등의 다른 이유로 숫자가 텍스트로 저장되는 경우가 발생할 수 있습니다. 데이터 형식이 서로 다른 필드 간에는 조인을 만들 수 없으므로, 다른 방법으로 필드를 비교해야 합니다. 한 필드를 다른 필드의 조건으로 사용하여 데이터 형식이 서로 다른 두 필드를 비교할 수 있습니다.
대학의 교육 기관 연구원으로, 수학 학부의 최근 교과 과정 변경이 학생들의 성적에 어떤 영향을 주었는지 확인하려 한다고 가정합니다. 특히 수학 전공 학생들의 성적에 관심이 있습니다. 이미 Student Majors 테이블과 Class Enrollments 테이블이 있습니다. 성적 데이터는 Class Enrollments 테이블에 저장되어 있고 학생 전공 데이터는 Student Majors 테이블에 저장되어 있습니다. 수학 전공 학생들의 성적이 어떻게 변경되었는지 확인하려면 Majors 테이블에 해당 레코드가 있는 Enrollments 테이블의 레코드를 검토해야 합니다. 그러나 테이블 비교에 사용하려는 필드 중 하나의 데이터 형식이 서로 다릅니다.
필드를 조건으로 사용하여 두 테이블을 비교하려면 두 테이블을 모두 포함하는 선택 쿼리를 만듭니다. 표시하려는 필드를 포함하고, 조건으로 사용할 필드에 해당하는 필드도 포함합니다. 그런 다음 테이블을 비교하는 조건을 만듭니다. 필드를 비교하는 조건을 원하는 개수만큼 만들 수 있습니다.
이 방법을 설명하기 위해 이전 섹션의 샘플 테이블을 사용하되, 샘플 Student Majors 테이블에 있는 Student ID 필드의 데이터 형식을 숫자에서 텍스트로 변경합니다. 데이터 형식이 서로 다른 두 필드 간에 조인을 만들 수 없으므로 한 필드를 다른 필드의 조건으로 사용하여 두 Student ID 필드를 비교해야 합니다.
Student Majors Student ID 필드의 데이터 형식 변경
-
샘플 테이블을 저장한 데이터베이스를 엽니다.
-
탐색 창에서 Student Majors 테이블을 마우스 오른쪽 단추로 클릭하고 바로 가기 메뉴에서 디자인 보기를 클릭합니다.
Student Majors 테이블이 디자인 보기에서 열립니다.
-
데이터 형식 열에서 Student ID의 설정을 숫자에서 텍스트로 변경합니다.
-
Student Majors 테이블을 닫습니다. 변경 내용을 저장하라는 메시지가 표시되면 예를 클릭합니다.
샘플 테이블을 비교하고 필드 조건을 사용하여 일치하는 레코드 찾기
다음 절차에서는 Class Enrollments의 필드를 Student Majors의 필드에 대한 조건으로 사용하여 두 Student ID 필드를 비교하는 방법을 보여 줍니다. Like 키워드를 사용하면 데이터 형식이 서로 다른 경우에도 필드를 비교할 수 있습니다.
-
만들기 탭의 쿼리 그룹에서 쿼리 디자인을 클릭합니다.
-
수업 등록을 두 번 클릭한 다음 학생 전공을 두 번 클릭합니다.
-
Class Enrollments 테이블의 Year 필드를 Student Majors 테이블의 Year 필드로 끈 다음 Class Enrollments 테이블의 Curriculum 필드를 Student Majors 테이블의 Major 필드로 끕니다. 이러한 필드는 데이터 형식이 같으므로 조인을 사용하여 비교할 수 있습니다. 조인은 데이터 형식이 같은 필드를 비교할 때 권장되는 방법입니다.
-
Class Enrollments 테이블에서 별표(*)를 두 번 클릭하여 테이블의 모든 필드를 쿼리 디자인 눈금에 추가합니다.
참고: 별표로 모든 필드를 추가하면 디자인 표에 하나의 열만 표시됩니다. 표시되는 열에는 테이블 이름, 마침표(.) 및 별표(*). 이 예제에서 열의 이름은 클래스 등록입니다.*.
-
Student Majors 테이블에서 Student ID 필드를 두 번 클릭하여 눈금에 추가합니다.
-
디자인 눈금에서 Student ID 열의 표시 행에 있는 확인란의 선택을 취소합니다. Student ID 열의 조건 행에 Like [Class Enrollments].[Student ID]를 입력합니다.
-
Student Majors 테이블에서 Major 필드를 두 번 클릭하여 눈금에 추가합니다.
-
디자인 눈금에서 Major 열의 표시 행에 있는 확인란의 선택을 취소합니다. 조건 행에 MATH를 입력합니다.
-
디자인 탭의 결과 그룹에서 실행을 클릭합니다.
쿼리가 실행되고 수학 전공 학생들의 수학 성적만 표시됩니다.