50. 다음 R1과 R2의 테이블에서 아래의 실행 결과를 얻기 위한 SQL문은?
❶ SELECT 과목번호, 과목이름 FROM RI, R2 WHERE R1.학번 = R2. 학번 AND R1.학과='전자공학' AND R1.이름 = '강남길’;
② SELECT 과목번호, 과목이름 FROM RI, 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.이름 = '홍길동';
- 문제 분석[실행결과]👉 즉, 중복 없이 R2 테이블에서 "과목번호"와 "과목이름"을 가져와야 함!
테이블 분석학번이름학년학과주소[R2] 수강 정보1000 홍길동 1 컴퓨터공학 서울 2000 김철수 1 전기공학 경기 3000 강남길 2 전자공학 경기 4000 오만자 2 컴퓨터공학 경기 5000 장미화 3 전자공학 서울
1번 SQL 코드 분석조건 분석- R1.학번 = R2.학번 → 학생과 수강 정보를 학번을 기준으로 조인
- R1.학과 = '전자공학' → 학과가 전자공학인 학생만 선택
- R1.이름 = '강남길' → 이름이 강남길인 학생만 선택
다른 선택지 분석sql복사편집SELECT 과목번호, 과목이름 FROM R1, R2 WHERE R1.학번 = R2.학번 OR R1.학과 = '전자공학' OR R1.이름 = '홍길동';- OR을 사용하여 조건이 너무 넓어짐
- 관계없는 학생들의 과목까지 포함될 가능성이 높음 ❌
- 강남길은 전자공학과인데 컴퓨터공학으로 잘못 지정 ❌
- OR 연산으로 인해 불필요한 데이터 포함 가능성 ❌
정답: ✅ ①- 학번을 기준으로 조인
- 전자공학과 & 강남길인 학생만 조회
- 결과값이 "C100(컴퓨터구조)", "C200(데이터베이스)"와 정확히 일치! 🎯
- 🎯 핵심 정리
-
sql복사편집SELECT 과목번호, 과목이름 FROM R1, R2 WHERE R1.학번 = R2.학번 OR R1.학과 = '컴퓨터공학' OR R1.이름 = '홍길동';
-
sql복사편집SELECT 과목번호, 과목이름 FROM R1, R2 WHERE R1.학번 = R2.학번 AND R1.학과 = '컴퓨터공학' AND R1.이름 = '강남길';
- ②
- 학번과목번호과목이름학점점수
3000 C100 컴퓨터구조 B+ 89 3000 C200 데이터베이스 B 85 -
sql복사편집SELECT 과목번호, 과목이름 FROM R1, R2 WHERE R1.학번 = R2.학번 AND R1.학과 = '전자공학' AND R1.이름 = '강남길';
- 학번과목번호과목이름학점점수
1000 C100 컴퓨터구조 A 91 1000 C200 데이터베이스 A+ 99 3000 C100 컴퓨터구조 B+ 89 3000 C200 데이터베이스 B 85 4000 C200 데이터베이스 A 93 5000 C300 운영체제 B+ 88 5000 C300 운영체제 B 82 - [R1] 학생 정보
- 과목번호과목이름
C100 컴퓨터구조 C200 데이터베이스 - 주어진 R1(학생) 테이블과 R2(수강) 테이블을 이용하여 [실행결과] 테이블을 출력하는 SQL문을 찾는 문제입니다.
반응형
'기출문제 > 정보처리기사' 카테고리의 다른 글
2021년 2회 정보처리기사 기출문제 52번 (0) | 2025.03.23 |
---|---|
2021년 2회 정보처리기사 기출문제 51번 (0) | 2025.03.23 |
2021년 2회 정보처리기사 기출문제 49번 (0) | 2025.03.22 |
2021년 2회 정보처리기사 기출문제 48번 (0) | 2025.03.22 |
2021년 2회 정보처리기사 기출문제 47번 (0) | 2025.03.22 |