1. 답지에 보면 외래키 지정 후에 ( FOREIGN KEY(dept) REFERENCES Department(name)문 ) 콤마가 없는데
외래키랑 참조사항을 적을때는 원래 콤마가 없나요?
그리고 DDL문 작성시 콤마가 필요없는 명령어는 무엇무엇이 있나요?
2. 96페이지 SELECT문 4번 문제에서 답지를 보면 ASC가 생략되어 있는데
생략 없이 ORDER BY name ASC; 라고 전부 써도 정답이 맞나요?
3. 92페이지 5번 그룹검색 예시문에 보면 GROUP BY 부서 ORDER BY 부서 ASC라고 되어있는데
바로 다음 쪽 전문가의 조언 GROUP BY문을 쓸 때 조건을 걸려면 반드시 HAVING문만 쓰라고 되어있는데 어떤게 맞는건가요?
마지막으로 ORDER BY와 HAVING의 차이점이 궁금합니다.
안녕하세요 길벗수험서 운영팀입니다.
[1]
문제 3번의 정답을 말씀하시는 것 같습니다.
해당 문에 쉼표(,)가 없는 것은 아래 하위 조건들이 모두 포함되는 문장이기 때문입니다.
또한 해당 문에서 create table이 종료되기 때문이죠.
만약 기본키를 지정하는 primary key(id)와 순서를 바꾼다면,
FOREIGN KEY(dept) REFERENCES Department(name)
ON DELETE SET NULL
ON UPDATE CASCADE,
PRIMARY KEY(id)
);
요렇게 들어갈 것입니다. 외래키 지정의 마지막은 옵션까지 포함한 on update cascade까지에요.
[2]
예, 아무 문제 없습니다.
오름차순(asc)은 단순히 생략 가능할 뿐 적어도 정답입니다.
[3]
전문가의 조언에서 언급한 조건은 where절을 의미합니다.
시험에 자주 나오는 부분이니 명심하세요.
order by는 정렬을 위한 명령어
where와 having은 조건을 위한 명령어 입니다.
조건이라고 함은 A필드가 100이상, B필드가 'USB'인 것, C필드가 '총무부'가 아닌 것 등이 있겠죠.
이 때 만약 일반 select절이라면 where를 통해
where A>=100, where B='USB', where C<>'총무부' 같이 사용할 것입니다.
다만 select와 조건 사이에 group by절이 있다면 where 대신 having을 사용해야 합니다.
나머지 부분은 where와 동일하죠.
having A>=100, having B='USB', having C<>'총무부' 이렇게요.
행복한 하루되세요 :)
-
관리자2019-04-12 10:27:28
안녕하세요 길벗수험서 운영팀입니다.
[1]
문제 3번의 정답을 말씀하시는 것 같습니다.
해당 문에 쉼표(,)가 없는 것은 아래 하위 조건들이 모두 포함되는 문장이기 때문입니다.
또한 해당 문에서 create table이 종료되기 때문이죠.
만약 기본키를 지정하는 primary key(id)와 순서를 바꾼다면,
FOREIGN KEY(dept) REFERENCES Department(name)
ON DELETE SET NULL
ON UPDATE CASCADE,
PRIMARY KEY(id)
);
요렇게 들어갈 것입니다. 외래키 지정의 마지막은 옵션까지 포함한 on update cascade까지에요.
[2]
예, 아무 문제 없습니다.
오름차순(asc)은 단순히 생략 가능할 뿐 적어도 정답입니다.
[3]
전문가의 조언에서 언급한 조건은 where절을 의미합니다.
시험에 자주 나오는 부분이니 명심하세요.
order by는 정렬을 위한 명령어
where와 having은 조건을 위한 명령어 입니다.
조건이라고 함은 A필드가 100이상, B필드가 'USB'인 것, C필드가 '총무부'가 아닌 것 등이 있겠죠.
이 때 만약 일반 select절이라면 where를 통해
where A>=100, where B='USB', where C<>'총무부' 같이 사용할 것입니다.
다만 select와 조건 사이에 group by절이 있다면 where 대신 having을 사용해야 합니다.
나머지 부분은 where와 동일하죠.
having A>=100, having B='USB', having C<>'총무부' 이렇게요.
행복한 하루되세요 :)