개발/Database

[SQLD] 40회 시험 후기

개발 여행 2021. 3. 22. 14:38
728x90

후기)

 

객관식 (40문제) + 주관식 (10문제)로 총 50문제가 출제되었다.

 

1과목(1번~10번)

생각보다 헷갈리는 개념들이 많이 나와서 시간을 많이 소비했다.

 

2과목(11번~50번)

평이한 문제도 있었고, 쉽지 않은 문제도 있었다. 주관식은 쉽게 나왔던 것 같다.

 

결과는 2021.04.16(금)에 나온다고 한다.

 


기억이 나는 문제들과 카페의 후기를 참고하여 문제 정리

 

1과목

번호 문제
1 다이어그램 그림을 제시하고, 옳은 것을 선택 3번

3) IE표기법은 점선으로 표기
4) baker 표기법은 UID bar
2 관계차수 1:1, M:M 등등 설명 제시 후 옳은 것 관계 차수
3 엔터티 특징으로 옳지 않은 것 1개 이상의 인스턴스로 구성되어 있다.
4 엔터티에 대한 설명 제시 후 옳은 것
( 주식별자만 존재하고 일반속성은 전혀 없는 경우도 마찬가지로 적절한 엔터티라고 할 수 없다. 단, 예외적으로 이 경우는 주식별자 속성만 가지고 있어도 엔터티로 인정한다. 이것은 무엇인가?)
1) 개념 2)기본 3)관계 4)행동
(이렇게 네개가 있었던 것으로 기억)
관계엔터티
5 가, 나, 다, 라 3개 중 옳은 것  가, 다
6 속성의 특징 중 틀린 것 하나의 속성은 여러 값을 가질 수 있음
(확실히 기억이 안 남)
7 건강검진 카페에 보니 인조식별자 생성 보기가 정답이라고 합니다.
(확실히 기억이 안 남)
8 정규화 (정규화에 대한 설명 제시 후 옳은 것) (저는 2정규형으로 답했지만) 제1정규형이라고 합니다
9 정규화를 진행했을 때 서비스계약의 다이어그램으로 옳은 것 3번째 그림으로 기억
10 데이터 모델링의 이해
(상세화는 식별자 확정, 정규화, M:M 관계 해소, 참조 무결성 규칙 정의 등의 설명이 있었던 것으로 기억)
설명에 대해 옳은 것
논리적 모델링(번호는 기억이 안 남)

2과목-객관식

번호 문제
11 LAG, LEAD, 서브쿼리의 구문 중 다른 하나 찾기 4번
LEAD(...) order by ... DESC
(이런 식의 구문이었던 것으로 기억)
12 데이터베이스 관련 설명으로 옳지 않은 것 1번
비정상적으로 종료되면 자동 commit 된다.
13 null 옳은 것 1번
is not null이 포함된 구문
14 쿼리 순서 옳은 것 FROM→ WHERE→GROUP BY→HAVING→SELECT→ORDER BY
15 GROUPING 결과 옳은 것 10005, 100 / 20051, 400
16 GROUP BY 문제
(직급별로 그룹지었을 때 9명 이상을 검색하는 구문 찾기)
GROUP BY 직급 HAVING COUNT(*) >=9
17 트리 계층형 질의 (정확히 기억 안 남)
START WITH ... CONNECT BY PRIOR 구문에서 옳은 것 고르는 문제로 기억
18 정렬 문제
옳은 것은?
(정확히 기억 안 남)
WHERE column1, column2 DESC
19 JOIN 문제 결과로 옳은 것
JOIN 결합이 아래와 같은 것으로 기억
col1 = col2(+) and col2 = col3(+) and col3= col4
1
outer, outer, inner 조인으로 최종 1행만 남음
20 union all 했을 때, sum의 값은? 16 (정확히 기억 안 남)
21 Union 틀린 것 4번
UNION 시 ORDER BY는 각 쿼리별로 사용할 수 있다
22 테이블 두개 제시 후 JOIN count(*)로 옳은 것 100
(Cartesian Product 10*10
--> 조인 조건절을 적지 않게 되면 해당 테이블에 대한 모든 데이터를 전부 가져오게 된다.)
23 오류가 발생하는 것 order by 년 

GROUP BY 절이 있는 경우는 GROUP BY 대상 컬럼과 집계함수만 ORDER BY절에서 참조 가능. GROUP BY를 통해 원천 집합을 집계했기 때문에
24 User2가  User1의 table SELECT시 오류가 발생했을 때 오류 해결 방법 GRANT SELECT ON tableA TO user2
25 MINUS 관련 구문 제시 후 옳은 것 4번
1, 2, 3 모두 옳다
26 sql 제시 후 결과가 다른 것
(IN, AND, OR 조건이 섞여있는 보기 - 각각 where절 조건이 조금씩 달랐음)
WHERE id=123 AND A OR B OR C
27 그룹 함수 문제
결과 테이블 그림 제시 후 맞는 sql 고르는 문제
GROUP BY 회원번호, ROLLUP(B)
28 NTILE 문제
NTILE(2)로 기억
4번
-----------
1  | 1 |  2
2  | 3 |  4
-----------
29 옳은 것 500에 대한 key A 는 10이다.
30 윈도우 함수 ROWS, RANGE 문제
결과 제시 후, 이 결과가 나오는 조건 선택
4번 (보기는 정확히 기억 안남)
1) SELECT COUNT(*) OVER( ) ROW 1 PRECEDING 1 FOLLOWING
2) SELECT COUNT(*) OVER( ) ROW 50 PRECEDING 150 FOLLOWING
3) SELECT COUNT(*) OVER( ) RANGE 1 PRECEDING 1 FOLLOWING
4) SELECT COUNT(*) OVER( ) RANGE 50 PRECEDING 150 FOLLOWING
31 쿼리에 대한 결과 옳은 것
(SELECT --- ROW_NUMBER() OVER (PARTITION BY 추천?? ORDER BY 추천점수 DESC) AS RNUM FROM 추천내역) WHERE RNUM = 1;
3번
-------------
이순신 | 80
홍길동 | 88
강감찬 | 98
--------------
3건의 partition으로 분리했을 때 각 partition별로 max값을 구하는 문제였음
32 합산 문제였는데 정확히 기억이 안 남 CUBE
33 트랜잭션의 설명으로 옳은 것 4번 (정답이 정확하지 않음)
COMMIT, ROLLBACK은 무결성을 위함이다.
34 정렬 문제 - 옳은 것은?
(날짜, 주문 번호 등등 컬럼이 존재했고 쿼리에 대한 결과 제시)
(정확히 기억 안 남)
WHERE 날짜 DESC, 주문번호 ASC
35 오류가 나지 않는 것 3번 INSERT INTO --- VALUES..  ( 'a','b',NULL,'c')

1) pk 자리에 null 입력
2) not null 컬럼에 null 입력
3) unique 컬럼에 null 입력
4) not null 컬럼에 null 입력

unique 속성이 설정되어 있을 경우 null 입력이 가능하다.
36 char vs varchar 
(자료형 char(4), varchar(4)로 creation 한 것으로 기억)
SELECT SUM(col1)은?
3번) 6 

1) char 'AA' varchar 'AA'
2) char 'BB' varchar 'BB  '
3) char 'CC' varchar '  CC' 
4) char' DD' varchar ' DD '

char는 할당된 변수 값의 길이가 4보다 작을 경우에는 그 차이만큼 공백으로 채워지기 때문에 2번과 4번의 경우에만 같다. 따라서 2+4 = 6
37 INSERT CREATE ROLLBACK에 관한 문제 (정확히 기억 안 남)
38 모든 사원에 대한 상사를 검색하는 sql 옳은 것 LEFT OUTER JOIN A.mgrno = B.empno
39 null인 것 null ('a','a')
40 null이 아닌 것 coalespe( NULL, '1','2')

1) decode( 'a','b','c') 
2. case when - then - end (else 없는 경우)  
3) nullif('a','a')
4) colease (NULL,'1','2')  

2과목-단답

번호 문제
1 SQL 결과보고 빈칸 ROLLUP
2 RANK 함수
(SQL 실행 결과 1,2,2,3,4,5...로 표시되는 그림 제시)
DENSE_RANK
3 VIEW에 대한 설명 제시 후 이것은 무엇인가? VIEW
4 권한 부여 SQL 빈칸 채우기  GRANT
5 SQL MERGE 구문 제시 후 빈칸 MERGE INTO
6 USER가 생성한 것 까지 삭제하는 것은? 빈칸 CASECADE
7 계층형 질의 저는 틀린 문제이지만 카페에 보면 KING이라고 하네요
8 오라클 아우터 조인으로 되어있는 구문을 ANSI로  RIGHT OUTER JOIN
9 SQL 결과 3, 200
10 COLEASE(NULLIF('a','a'),2,3)의 결과는? 2

 

728x90