모두CBT

다음과 같은 [동아리회원] 테이블에서 학과명을 입력받아 일치하는 학과의… | [컴퓨터활용능력 1급 필기] 13년 2회차 기출문제 상세 페이지

1[컴퓨터활용능력 1급 필기] 13년 2회차
다음과 같은 [동아리회원] 테이블에서 학과명을 입력받아 일치하는 학과의 학생만을 조회할 수 있도록 하는 쿼리의 SQL문으로 옳은 것은?
회원ID이름성별학과명
cdpark유용범경영
chaehee은동건컴퓨터과학
hspark문지혁회계
ksjang고민종경영
lesomi강민용컴퓨터과학
shyeo백근일회계
1
select * from 동아리회원 where 학과명 = [학과를 입력하시오]
2
select * from 동아리회원 where 학과명 = "학과를 입력하시오"
3
select * from 동아리회원 where 학과명 in (학과를 입력하시오)
4
select * from 동아리회원 where 학과명 like "학과를 입력하시오"
해설

[동아리회원] 테이블은 회원ID·이름·성별·학과명 네 개의 필드로 이루어져 있고, 학과명 필드에는 경영·컴퓨터과학·회계 값이 들어 있다. 실행할 때마다 사용자에게 학과명을 물어보고 그 학과의 학생만 보여 주려면 매개 변수 쿼리를 만들어야 한다.

매개 변수 쿼리는 조건 자리에 대괄호 [ ]로 묶은 안내 문구를 적는다. 쿼리를 실행하면 대괄호 안의 문구가 그대로 표시되는 [매개 변수 값 입력] 대화 상자가 열리고, 사용자가 입력한 값이 그 자리에 대입되어 조건으로 쓰인다. 따라서 where 학과명 = [학과를 입력하시오] 형태가 옳다.

같은 문구를 큰따옴표로 묶으면 그것은 문자열 상수가 되므로, 학과명 값이 실제로 '학과를 입력하시오'인 레코드를 찾게 되어 아무것도 조회되지 않는다. like로 바꾸어도 와일드카드가 없으면 결과는 마찬가지다. 또 in 뒤 괄호 안에 따옴표도 대괄호도 없이 문구를 쓰면 값이 아니라 이름(식별자)으로 해석되어 오류가 난다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.