안녕하세요.
한꺼번에 여러개 여쭤봐도 될지 모르겠습니다.. 부디 잘 부탁드립니다.
우선, SQL문 작성할 때 명령어에 대해서 대소문자 구분 해야 하나요?
책에는 명령어를 전부 대문자로 표기되어 있는데
실제 프로그램에선 대소문자 구분이 없기 때문에, 제가 손으로 쓸 때 소문자로 쓰는 게 더 편해서요..
혹시 시험장에서 대문자로 쓰는 게 더 좋은건지 여쭙습니다.
아래 문의드리는 사항은 데이터베이스 본문내용 관련 질문입니다.
(1) p.83 문제1번
CHECK (sex='f' or sex='m') 대신
CHECK (value in ('f','m')) 도 가능한가요?
(2) p.101 예제1번
"SELECT 학생.학과코드 as 학과코드" 라고 안 쓰고 그냥 학생.학과코드 만 써도 되나요?
출력값을 '학과코드'만 나오게 하려면 위와 같이 as 학과코드 라고 명시해야 하는 게 아닌지 해서요. 상관 없나요?
또한, NATURAL JOIN 은 공통된 속성이 반드시 존재해야 한다고 하는데,
만약에 공통된 속성이 두개 이상인 경우에는 NATURAL JOIN 은 사용을 못하는 건가요?
예제1번은 공통된 속성이 '학과코드' 하나밖에 없어서 NATURAL JOIN 이 가능한 걸로 이해해도 될까요?
(3) p.102 예제2번
WHERE 절에서 테이블명을 왜 써야 하는지요?
'성적, 최저, 최고' 속성은 두 테이블에 서로 겹치는 항목이 아닌데
혹시 테이블명 생략하고 속성명만 바로 써도 답으로 인정되나요?
(4) p.105 SELF JOIN 예제
예제에는 '학번' 속성을 출력하라는 언급이 없는데, 결과에는 '학번, 이름, 선배'가 출력되어 있어서요.
학번을 출력할지 판단하는 근거가 무엇인지 궁금합니다.
(5) p.129 문제8번 아래의 답도 인정되는지 궁금합니다.
SELECT 학교명, 지역
FROM 학교
WHERE 학교명 not in (
SELECT 학교명
FROM 학과);
(6) p.130 문제9번-② 답으로
주문날짜 like '05%' 도 혹시... 인정되는지 궁금합니다.
감사합니다.
안녕하세요 길벗수험서 운영팀입니다.
명령어 대소문자 관련
[답변]
SQL 코드에서 사용하는 예약어들은 대소문자를 가리지 않습니다.
따옴표''로 들어가는 값(value)의 경우 대소문자를 구분하셔야 하나, 이것 외의 명령어와 같은 예약어는 대소문자 구분 없이 작성하셔도 정답입니다.
CHECK (value in ('f','m')) 도 가능한가요?
[답변]
예, 가능합니다.
value in 자체가 or로 반복되는 여러 문장을 축약하기 위한 예약어로, or로 반복되는 문장은 value in으로 쓰셔도 무관합니다.
"SELECT 학생.학과코드 as 학과코드" 라고 안 쓰고 그냥 학생.학과코드 만 써도 되나요?
[답변]
속성명에 대한 언급이 없다면 어떤 방식을 사용하여 출력해도 정답입니다.
만약 as를 이용하여 출력해야하는 경우 별도로 언급이 있는 경우가 많습니다.
WHERE 절에서 테이블명을 왜 써야 하는지요?
'성적, 최저, 최고' 속성은 두 테이블에 서로 겹치는 항목이 아닌데
혹시 테이블명 생략하고 속성명만 바로 써도 답으로 인정되나요?
[답변]
단순히 select문에 익숙하지 않은 수험자분들의 이해를 돕기 위해서 적어 놓은 테이블명입니다.
말씀하신대로 각 테이블에서 필드명이 겹치지 않으니 테이블명은 생략하고 적어도 무관합니다.
예제에는 '학번' 속성을 출력하라는 언급이 없는데, 결과에는 '학번, 이름, 선배'가 출력되어 있어서요.
학번을 출력할지 판단하는 근거가 무엇인지 궁금합니다.
[답변]
예제는 위에서 말씀드린 대로 SQL에 익숙치 않은 분들에게 익숙해지시라는 의미에서 첨가되어있는 문제입니다.
해당 예제에서 '학번' 속성을 출력하라는 언급은 없었으나 학번까지 출력하여 보여드리는 것이 출력 결과를 이해하는데 도움이 될까싶어 추가하였습니다.
p.129 문제8번 아래의 답도 인정되는지 궁금합니다.
SELECT 학교명, 지역 FROM 학교 WHERE 학교명 not in (SELECT 학교명 FROM 학과);
[답변]
예, 정답입니다.
해당 sql문 또한 동일한 결과를 나타냅니다.
주문날짜 like '05%' 도 혹시... 인정되는지 궁금합니다.
[답변]
해당 문제는 많은 논란을 일으킬 수 있는 문제입니다.
'주문 날짜'라는 필드가 단순 문자 자료형인지, 'date' 타입 자료형인지에 따라 다양한 답안이 나올 수 있기 때문이죠.
만약 '주문 날짜' 필드가 단순 문자 자료형인 경우 회원님이 적으신 답은 정답입니다.
left(주문날짜,2)='05' 와 같은 답도 존재할 수 있게되죠.
다만 'date' 타입인 경우 기본 형식자가 yyyy-mm-dd로 저장되고, 출력만을 mm-dd로 한 경우 위의 답은 모두 오답이 되죠.
실제 시험에 출제된다면 위의 사항들이 명확하게 <처리 조건> 등으로 언급될 것으로 여겨집니다. 해당 <처리 조건>에 유의하여 문제를 풀어주세요.
행복한 하루되세요 :)
-
관리자2019-09-30 14:23:09
안녕하세요 길벗수험서 운영팀입니다.
명령어 대소문자 관련
[답변]
SQL 코드에서 사용하는 예약어들은 대소문자를 가리지 않습니다.
따옴표''로 들어가는 값(value)의 경우 대소문자를 구분하셔야 하나, 이것 외의 명령어와 같은 예약어는 대소문자 구분 없이 작성하셔도 정답입니다.
CHECK (value in ('f','m')) 도 가능한가요?
[답변]
예, 가능합니다.
value in 자체가 or로 반복되는 여러 문장을 축약하기 위한 예약어로, or로 반복되는 문장은 value in으로 쓰셔도 무관합니다.
"SELECT 학생.학과코드 as 학과코드" 라고 안 쓰고 그냥 학생.학과코드 만 써도 되나요?
[답변]
속성명에 대한 언급이 없다면 어떤 방식을 사용하여 출력해도 정답입니다.
만약 as를 이용하여 출력해야하는 경우 별도로 언급이 있는 경우가 많습니다.
WHERE 절에서 테이블명을 왜 써야 하는지요?
'성적, 최저, 최고' 속성은 두 테이블에 서로 겹치는 항목이 아닌데
혹시 테이블명 생략하고 속성명만 바로 써도 답으로 인정되나요?
[답변]
단순히 select문에 익숙하지 않은 수험자분들의 이해를 돕기 위해서 적어 놓은 테이블명입니다.
말씀하신대로 각 테이블에서 필드명이 겹치지 않으니 테이블명은 생략하고 적어도 무관합니다.
예제에는 '학번' 속성을 출력하라는 언급이 없는데, 결과에는 '학번, 이름, 선배'가 출력되어 있어서요.
학번을 출력할지 판단하는 근거가 무엇인지 궁금합니다.
[답변]
예제는 위에서 말씀드린 대로 SQL에 익숙치 않은 분들에게 익숙해지시라는 의미에서 첨가되어있는 문제입니다.
해당 예제에서 '학번' 속성을 출력하라는 언급은 없었으나 학번까지 출력하여 보여드리는 것이 출력 결과를 이해하는데 도움이 될까싶어 추가하였습니다.
p.129 문제8번 아래의 답도 인정되는지 궁금합니다.
SELECT 학교명, 지역 FROM 학교 WHERE 학교명 not in (SELECT 학교명 FROM 학과);
[답변]
예, 정답입니다.
해당 sql문 또한 동일한 결과를 나타냅니다.
주문날짜 like '05%' 도 혹시... 인정되는지 궁금합니다.
[답변]
해당 문제는 많은 논란을 일으킬 수 있는 문제입니다.
'주문 날짜'라는 필드가 단순 문자 자료형인지, 'date' 타입 자료형인지에 따라 다양한 답안이 나올 수 있기 때문이죠.
만약 '주문 날짜' 필드가 단순 문자 자료형인 경우 회원님이 적으신 답은 정답입니다.
left(주문날짜,2)='05' 와 같은 답도 존재할 수 있게되죠.
다만 'date' 타입인 경우 기본 형식자가 yyyy-mm-dd로 저장되고, 출력만을 mm-dd로 한 경우 위의 답은 모두 오답이 되죠.
실제 시험에 출제된다면 위의 사항들이 명확하게 <처리 조건> 등으로 언급될 것으로 여겨집니다. 해당 <처리 조건>에 유의하여 문제를 풀어주세요.
행복한 하루되세요 :)