문제
R1(학번, 이름, 학과)과 R2(학번, 과목번호, 과목이름) 테이블에서 학과가 '전자공학'이고 이름이 '강남길'인 학생이 수강한 과목번호와 과목이름을 검색하기 위한 SQL문은?
<그림>
① SELECT 과목번호, 과목이름 FROM R1, R2 WHERE R1.학번 = R2.학번 AND R1.학과 = '전자공학' AND R1.이름 = '강남길'; ② SELECT 과목번호, 과목이름 FROM R1, R2 WHERE R1.학번 = R2.학번 OR R1.학과 = '전자공학' OR R1.이름 = '홍길동'; ③ SELECT 과목번호, 과목이름 FROM R1, R2 WHERE R1.학번 = R2.학번 AND R1.학과 = '컴퓨터공학' AND R1.이름 = '강남길'; ④ SELECT 과목번호, 과목이름 FROM R1, R2 WHERE R1.학번 = R2.학번 OR R1.학과 = '컴퓨터공학' OR R1.이름 = '홍길동';
정답
1번
해설
정답: 1. 두 테이블을 학번으로 조인하고, 학과가 '전자공학'이며 이름이 '강남길'인 조건을 AND로 연결한 ①번이 옳다.
오답 풀이
- 1번: 조인 조건과 검색 조건을 모두 AND로 올바르게 연결하여 정답이다.
- 2번: OR로 연결되어 조건을 만족하지 못하고 이름도 다르다.
- 3번: 학과가 '컴퓨터공학'으로 잘못되었다.
- 4번: OR 연결과 잘못된 조건으로 틀리다.
보충 개념 조인 조건(학번 일치)과 선택 조건은 AND로 결합해야 정확한 결과를 얻는다.