책 내용 질문하기
2권 35p,36P,p40,P47,P52
도서
2022 시나공 정보처리기사 실기
페이지
35
조회수
343
작성일
2022-04-17
작성자
탈퇴*원
첨부파일

P35 하위질의에서

1) SELECT * FROM 사원 WHERE 이름 NOT IN(SELECT 이름 FROM 여가활동);을

SELECT * FROM 사원 WHERE 이름 <>(SELECT 이름 FROM 여가활동);이렇게 바꿔도 되나요?? 

 

P36복수 테이블 검색에서

2) SELECT 사원.이름, 사원.부서,여가활동.취미, 여가활동.경력 FROM 여가활동, 취미 WHERE 이름=(SELECT 이름 FROM 여가활동 WHERE 경력>=10);이렇게 바꿔도 되나요?

그리고 교재에서는

3) SELECT 사원.이름, 사원.부서,여가활동.취미, 여가활동.경력 FROM 여가활동, 취미 WHERE 여가활동.경력>=10AND사원.이름=여가활동.이름 ;이렇게 나와있던데 

여가활동 이름은 사원 이름을 참조하고 있으니까

사원.이름=여가활동.이름 -->이부분은 없어도 되는 거 아닌가요?? 

 

p40 8번문제

4) 정답에서 FROM절의 신청정보는 빠져도 되지 않나요??

 

P47

5) 예제 3번문제에서

GROUP BY 부서 HAVING COUNT(*)>=2AND 상여금>=100;

으로는 못 바꾸나요??

 

P52

6) 정답에서

-HAVING 전공='컴퓨터공학'AND 신청과목='JAVA'and 학생정보.학번=신청정보.학번이나

-where  전공='컴퓨터공학'AND 신청과목='JAVA'and 학생정보.학번=신청정보.학번이나

이렇게 바꾸면 안되나요??

한마디로 having 절에 그룹함수를 쓰지 않는 다면 where절에서도 사용할 수 있고 where절꺼도 having절에서 사용할수 있나요??

7) P35 예제 1번

 SELECT 이름,주소

FROM 사원

WHERE 여가활동.이름=사원.이름 AND 여가활동.취미=나이트 덴스;

이렇게 바꿔도 되나요??

 

8)P59

예제 2번을 보면

학생.성적 성적등급.최저 이런식으로 되어있는 데

중복되는 속성이 아니니까

WHERE 성적 BETWEEN 최저 AND 최고

이렇게 해도 되는 건가요??

 

9) create domain 테이블 명 데이터 타입

constraint 제약조건 명 check(value>=30);

이런식으로 교재에는 되어있던 데 

도메인 만들 때는 꼭 values라는 말을 써야 하나요??

아니면 그냥 check(age>=30)이런식으로는 안되나요??

답변
2022-04-20 23:43:06

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

 

[1]

하위 질의의 결과가 단일값이므로 사용 가능합니다.

 

[2] [3]

먼저, 하위 질의의 결과가 2개 이상이므로 = 대신 IN을 사용해야 합니다.

from으로 2개 이상의 테이블을 호출하게 되면 JOIN을 수행해줘야 합니다.

123섹션에서 학습하신 것과 같이 두 테이블을 연결시켜주지 않으면 카티션곱을 수행한 것에서 조건만 적용된 결과가 출력되므로 정답과 완전히 달라집니다.

때문에 반드시 사원.이름=여가활동.이름  이 AND로 연결되어야 합니다.

 

[4]

문제를 확인해보시면 3개의 테이블인 조인된 상태에서 조건을 적용한 결과를 출력하기를 요구하고 있습니다.

만약 하나의 조인이 빠지는 경우 필요 이상의 결과가 나타날 수 있습니다.

또한 결과가 같더라도 문제에서 제시한 조건을 모두 SQL문으로 작성하지 않으면 점수를 받지 못하는 경우도 있으니 주의하세요.

 

[5] [6]

having은 그룹함수와 함께 그룹에 조건을

where는 모든 튜플에 조건을 건다고 기억해두세요.

조건 적용 순서도 where -> having 이기 때문에 결과가 달라집니다.

 

[7]

조인으로 만드시려면 다음과 같이 작성하셔야 합니다.

select 사원.이름, 주소

from 사원, 여가활동

where 사원.이름=여가활동.이름 and 취미='나이트댄스';

조인되는 테이블은 모두 from으로 호출되어야 하며, 이 때 중복되는 속성은 반드시 테이블명을 적어줘야 합니다. 

 

[8]

예, 그와 같이 적어도 아무 문제 없습니다.

말씀처럼 중복되는 경우에만 테이블명이 필수이고, 그 외에는 적어도 안적어도 무관합니다.

 

[9]

도메인 생성문은 이후에 속성에 적용될 일종의 제약조건입니다.

즉 도메인 자체는 속성이 아니기 때문에 일반적인 check 문법인 'check(속성명 in( ...'이나 'check (속성='값')' 과 같은 방식에서 [속성]이 value로 대체되는 것입니다.

 

행복한 하루되세요 :)

  • 관리자
    2022-04-20 23:43:06

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

     

    [1]

    하위 질의의 결과가 단일값이므로 사용 가능합니다.

     

    [2] [3]

    먼저, 하위 질의의 결과가 2개 이상이므로 = 대신 IN을 사용해야 합니다.

    from으로 2개 이상의 테이블을 호출하게 되면 JOIN을 수행해줘야 합니다.

    123섹션에서 학습하신 것과 같이 두 테이블을 연결시켜주지 않으면 카티션곱을 수행한 것에서 조건만 적용된 결과가 출력되므로 정답과 완전히 달라집니다.

    때문에 반드시 사원.이름=여가활동.이름  이 AND로 연결되어야 합니다.

     

    [4]

    문제를 확인해보시면 3개의 테이블인 조인된 상태에서 조건을 적용한 결과를 출력하기를 요구하고 있습니다.

    만약 하나의 조인이 빠지는 경우 필요 이상의 결과가 나타날 수 있습니다.

    또한 결과가 같더라도 문제에서 제시한 조건을 모두 SQL문으로 작성하지 않으면 점수를 받지 못하는 경우도 있으니 주의하세요.

     

    [5] [6]

    having은 그룹함수와 함께 그룹에 조건을

    where는 모든 튜플에 조건을 건다고 기억해두세요.

    조건 적용 순서도 where -> having 이기 때문에 결과가 달라집니다.

     

    [7]

    조인으로 만드시려면 다음과 같이 작성하셔야 합니다.

    select 사원.이름, 주소

    from 사원, 여가활동

    where 사원.이름=여가활동.이름 and 취미='나이트댄스';

    조인되는 테이블은 모두 from으로 호출되어야 하며, 이 때 중복되는 속성은 반드시 테이블명을 적어줘야 합니다. 

     

    [8]

    예, 그와 같이 적어도 아무 문제 없습니다.

    말씀처럼 중복되는 경우에만 테이블명이 필수이고, 그 외에는 적어도 안적어도 무관합니다.

     

    [9]

    도메인 생성문은 이후에 속성에 적용될 일종의 제약조건입니다.

    즉 도메인 자체는 속성이 아니기 때문에 일반적인 check 문법인 'check(속성명 in( ...'이나 'check (속성='값')' 과 같은 방식에서 [속성]이 value로 대체되는 것입니다.

     

    행복한 하루되세요 :)

  • 관리자
    2022-04-28 09:39:20

     

  • *
    2022-04-27 11:00:12

     

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