책 내용 질문하기
실기 2권 질문드립니다.
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
93
조회수
95
작성일
2018-10-03
작성자
탈퇴*원
첨부파일

1. 저번에 질문 드렸는데 여전히 하위 질의가 이해가 되지 않습니다.

사용법부터 잘 모르겠습니다. 예제로 알기 쉽게 설명해 주실 수 있나요?

2. 문제 2번에서 테이블하고 밑에 id name shopid는 무엇을 뜻하는 건가요? 왜 나누어져 있는 거죠??

테이블 id name 이랑 1 : N으로 왜 연결되어 있는 건가요???

3. 3번 답에서

SELECT DISTINCT NAME

FROM Shop

WHERER id IN

( SELECT shopid -> 여기서 왜 shopid를 사용하는 건가요? staff 테이블에서 id를 사용하면 되는거 아닌가요?

FROM staff - 직원의 id 를 찾으니까요 = SELECT id

WHERE id = 10);

4.

문제 3번도 마찬가지로 하위질의를 어느것으로 작성 해야 될지 모르겠어요 sale 테이블과 관련된 것을 하위질의로 작성해야될지 아니면 prpduct 와 관련된 것들을 하위질의로 사용해야 될지 어떻게 해야될지 모르겠습니다

[답변]

문제를 읽어봤을 때 구하고자 하는 것이 상위질의(메인질의) 입니다.

해당 문제에서는 결과값으로 출력하고자 하는 것은 "상품의 판매량(psale) 합계"입니다.

그렇다면 sum(psale)을 출력해야함으로 'psale' 속성이 있는 테이블이 상위질의가 되겠네요.

select sum(pslae) from sale

이 때 외래키로 연결되어 있는 것은 pid(제품id)이고, -> 이것이 외래키로 연결되어 있다는 것을 어떻게 알 수 있나요?

where pid in (select id from product

상품명을 USB로 시작한다고 하였으니

where name like 'sub%') -> 이것이 맞나요???

가 됩니다.

답변
2018-10-04 13:55:42

안녕하세요. 길벗 수험서 운영팀입니다.

1. 저번에 질문 드렸는데 여전히 하위 질의가 이해가 되지 않습니다.

사용법부터 잘 모르겠습니다. 예제로 알기 쉽게 설명해 주실 수 있나요?

[답변]

하위 질의에 대한 것은 책 91쪽에서 설명하고 있습니다.

하위 질의는 말 그대로 '속한 것'을 의미합니다.

위와 같은 테이블이 있을 때,

select 이름, 부서

from 사원

where 이름 in (select 이름 from 여가활동);

이라는 SQL문이 있을 때, 하위 질의에 속하는 'in (select 이름 from 여가활동)'에서 조회되는 '이름'과 <사원> 테이블의 '이름'이 동일한 경우에만 조회되는 것을 의미합니다.

2. 문제 2번에서 테이블하고 밑에 id name shopid는 무엇을 뜻하는 건가요? 왜 나누어져 있는 거죠??

테이블 id name 이랑 1 : N으로 왜 연결되어 있는 건가요???

[답변]

테이블에서 'id' / 'name' 'shopid' 는 id가 기본키, 나머지는 일반 속성이라는 것을 의미합니다.

테이블의 'shopid' 속성과 테이블의 'id' 속성이 n:1로 연결되어 있는 선은 테이블의 'shopid' 속성이 테이블의 'id' 속성을 참조하는 외래키라는 의미입니다.

3. 3번 답에서

SELECT DISTINCT NAME

FROM Shop

WHERER id IN

( SELECT shopid -> 여기서 왜 shopid를 사용하는 건가요? staff 테이블에서 id를 사용하면 되는거 아닌가요?

FROM staff - 직원의 id 를 찾으니까요 = SELECT id

WHERE id = 10);

[답변]

찾으려는 값과 비교하려는 값이 무엇인지를 확정하셔야 합니다.

여기 하위질의에서는 직원 id가 10인 직원이 담당하는 상점의 이름을 검색하는 것입니다.

위의 테이블을 봤을 때, 직원 id가 10인 상점의 이름을 한 테이블에서 검색하는 것이 불가능합니다.

직원 id는 테이블에 있는데 반해, 상점의 name은 에 있기 때문입니다.

이를 하위 질의로 풀기 위해서는 아래와 같습니다.

1. 구하려는 것은 상점의 이름이기 때문에, 상위질의에는 shop테이블의 name을 구하는 질의를 입력해야 합니다.

2. 테이블의 id속성과 테이블의 shopid속성이 외래키로 연결되어 있기 때문이 이를 이용해야 한다는 점입니다.

3. 즉, 테이블에서 id가 10인 직원이 담당하는 shopid를 조회하여, 테이블의 id와 연결하여 구하게 되는 것이지요.

위와 같이 예시를 두고, 파악하면 조금 더 이해가 잘 될 수 있을 것 같습니다.

4. 이 때 외래키로 연결되어 있는 것은 pid(제품id)이고, -> 이것이 외래키로 연결되어 있다는 것을 어떻게 알 수 있나요?

where pid in (select id from product

[답변]

문제에서 테이블의 'pid' 속성과 테이블의 'id' 속성이 N:1로 연결되어 있다는 것에서 알 수 있습니다.

상품명을 USB로 시작한다고 하였으니

where name like 'sub%') -> 이것이 맞나요???

[답변]

'usb'로 시작한다고 하였으니, 'usb%'가 맞습니다. sub는 오타입니다.

행복한 하루되세요.^^

  • *
    2018-10-04 13:55:42

    안녕하세요. 길벗 수험서 운영팀입니다.

    1. 저번에 질문 드렸는데 여전히 하위 질의가 이해가 되지 않습니다.

    사용법부터 잘 모르겠습니다. 예제로 알기 쉽게 설명해 주실 수 있나요?

    [답변]

    하위 질의에 대한 것은 책 91쪽에서 설명하고 있습니다.

    하위 질의는 말 그대로 '속한 것'을 의미합니다.

    위와 같은 테이블이 있을 때,

    select 이름, 부서

    from 사원

    where 이름 in (select 이름 from 여가활동);

    이라는 SQL문이 있을 때, 하위 질의에 속하는 'in (select 이름 from 여가활동)'에서 조회되는 '이름'과 <사원> 테이블의 '이름'이 동일한 경우에만 조회되는 것을 의미합니다.

    2. 문제 2번에서 테이블하고 밑에 id name shopid는 무엇을 뜻하는 건가요? 왜 나누어져 있는 거죠??

    테이블 id name 이랑 1 : N으로 왜 연결되어 있는 건가요???

    [답변]

    테이블에서 'id' / 'name' 'shopid' 는 id가 기본키, 나머지는 일반 속성이라는 것을 의미합니다.

    테이블의 'shopid' 속성과 테이블의 'id' 속성이 n:1로 연결되어 있는 선은 테이블의 'shopid' 속성이 테이블의 'id' 속성을 참조하는 외래키라는 의미입니다.

    3. 3번 답에서

    SELECT DISTINCT NAME

    FROM Shop

    WHERER id IN

    ( SELECT shopid -> 여기서 왜 shopid를 사용하는 건가요? staff 테이블에서 id를 사용하면 되는거 아닌가요?

    FROM staff - 직원의 id 를 찾으니까요 = SELECT id

    WHERE id = 10);

    [답변]

    찾으려는 값과 비교하려는 값이 무엇인지를 확정하셔야 합니다.

    여기 하위질의에서는 직원 id가 10인 직원이 담당하는 상점의 이름을 검색하는 것입니다.

    위의 테이블을 봤을 때, 직원 id가 10인 상점의 이름을 한 테이블에서 검색하는 것이 불가능합니다.

    직원 id는 테이블에 있는데 반해, 상점의 name은 에 있기 때문입니다.

    이를 하위 질의로 풀기 위해서는 아래와 같습니다.

    1. 구하려는 것은 상점의 이름이기 때문에, 상위질의에는 shop테이블의 name을 구하는 질의를 입력해야 합니다.

    2. 테이블의 id속성과 테이블의 shopid속성이 외래키로 연결되어 있기 때문이 이를 이용해야 한다는 점입니다.

    3. 즉, 테이블에서 id가 10인 직원이 담당하는 shopid를 조회하여, 테이블의 id와 연결하여 구하게 되는 것이지요.

    위와 같이 예시를 두고, 파악하면 조금 더 이해가 잘 될 수 있을 것 같습니다.

    4. 이 때 외래키로 연결되어 있는 것은 pid(제품id)이고, -> 이것이 외래키로 연결되어 있다는 것을 어떻게 알 수 있나요?

    where pid in (select id from product

    [답변]

    문제에서 테이블의 'pid' 속성과 테이블의 'id' 속성이 N:1로 연결되어 있다는 것에서 알 수 있습니다.

    상품명을 USB로 시작한다고 하였으니

    where name like 'sub%') -> 이것이 맞나요???

    [답변]

    'usb'로 시작한다고 하였으니, 'usb%'가 맞습니다. sub는 오타입니다.

    행복한 하루되세요.^^

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.