본문 바로가기

SQLD

47회 <2과목 : 36문제 (객관식) + 4문제 (단답형) >

1. 아래의 데이터 결과를 출력하는 SQL 로 올바른 것은? CUBE 문제

<지문>

Grouping 함수가 쓰여서 null 출력이 문자열로 되어 있는 문제. ONLINE, OFFLINE 이 있던 문제

첫번째 컬럼의 집계, 두번째 컬럼의 집계, 두개 컬럼의 집계, 전체 집계가 모두 있는 상태

<답> CUBE (주문일자, 주문방법) 이런 식의 CUBE

2. 아래의 데이터 결과를 출력하는 SQL 로 올바른 것은? -> ROLLUP 문제

<지문>

첫번째 컬럼의 집계, 첫번째+두번째 컬럼의 집계, 전체 집계가 있는 상태

<답> ROLLUP (평가항목, 평가...)

3. 트랜잭션의 특징에 대한 설명으로 가장 적절한 것은?

<보기>

1) 트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신 데이터베이스의 내용은 영구적으로 저장된다. 이를 고립성이라 한다.

2) ...

3) ROLLBACK 후에는 데이터의 변경 사항은 변경되지 않는다.

4) COMMIT 과 ROLLBACK 을 사용함으로서 데이터 무결성을 보장할 수 있다.

<답> 4번 : 데이터 무결성을 보장함

4. 저장 프로시저의 대한 설명으로 가장 적절하지 않은 것은?

<보기>

1) 응용프로그램의 성능을 개선한다.

2) ..

3) 프로시저와 트리거에서 COMMIT, ROLLBACK 을 모두 사용 할 수 있다.

4) 유저 정의 함수는 반드시 리턴이 있어야 한다.

<답> 3번 : 트리거는 COMMIT, RLLBOACK 을 사용 할 수 없다.

5. 아래의 SQL 분류에 대한 설명으로 적절하지 않은 것은?

<답> DCL : 데이터베이스의 구동 및 종료를 수행한다.

6. 테이블의 조인 시 조인 대상이 없는 ROW 도 가지고 오고, 조인 값이 NULL 인 경우도 가져오는 조인은?

<답> 4) OUTER JOIN

--> 애매함. 조인 값이 null 인 경우도 가져온다는 말이 이해가 안되는 문제

7. 신규번호를 채번하고, 번호가 없을 경우 1로 시작하는 형태의 SQL 이다. 아래 SQL 과 동일한 결과를 나타내는 것은?

<지문>

SELECT NVL (MAX(번호), 1) + 1 FROM ...

<답> SELECT COALESCE( MAX(번호) +1 , 1) FROM ..

8. 아래의 테이블 데이터에 대한 결과를 출력하는 SQL 로 가장 알맞은 것은?

-> WINDOW FUNCATION 이 SUM, ROW_NUMBER, LAG, LEAD 나오는 문제

<답> 3,4번 중 하나

<추가>

LAG : 이전행을 가져옴

LEAD : 다음행을 가져옴

9. 아래의 JOIN 결과와 다른 SQL 은?

<지문>

A : SRN_NO ... / B: SRN_NO ....

<보기>

1) FROM A NATURAL JOIN B

2) FROM A JOIN B USING (SRN_NO)

3) FROM A INNER JOIN B

4) FROM A ,B WHERE A.SRN_NO = B.SRN_NO

<답> 3번 INNER JOIN 에 ON 절이 없으면 CROSS JOIN 과 결과가 같음

10. 아래의 테이블에 대한 JOIN 의 결과가 잘못된 것은?

<지문>

테이블

<보기>

1) INNER JOIN 결과

2) LEFT OUTER JOIN 결과

3) RIGHT OUTER JOIN 결과

4) FULL OUTER JOIN 결과

<답> 4번: FULL OUTER JOIN = LEFT UNION RIGHT OUTER JOIN

11. 계층형 쿼리에 대한 설명으로 적절하지 않은 것은?

<답> WHERE 절의 조건을 제외하고 계층형 쿼리가 수행된다.

-> 모든 전개를 수행한 후에 지정된 조건을 만족하는 데이터만 추출한다

<참고> 교재 p355

12. TEAM, PLAYER 테이블에서 아래의 SQL 과 다른 결과를 출력하는 SQL 은?

<지문>

SELECT ..

FROM ...

WHERE (TEAM_ID, HEIGHT) in (SELECT TEAM_ID ,MIN(HEIGHT) FROM )...

<보기>

...

<답> SELECT .. FROM .. WHERE EXISTS (SELECT ...) --> EXISTS 가 바로 쓰이면 결과가 다름

13. 아래의 SQL 이 의미하는 바를 가장 잘 설명한 것은?

<지문>

SELECT 팀명

FROM 팀,

(SELECT 팀명, SUM(연봉) AS 총급여) FROM ...)

WHERE 팀....

<답> 팀의 사원 총연봉이 가장 높은 팀명

14. 아래와 같이 1~100 까지의 데이터가 있을 때 10~50 까지의 데이터 결과를 뽑기 위한 SQL 로 알맞은 것은?

<답> ... WHERE COL BETWEEN 10 AND 50

15. 아래의 설명을 만족하는 SQL 에 대해서 틀린 부분은 어디인가?

<지문>

... 내림 차순으로 정렬 한다.

<보기>

1) SELECT

2) FROM

3) WHERE

4) ORDER BY A

<답> 4번 DESC 를 적어줘야 함

16. 아래의 SQL 결과로 적절한 것은? ( CASE, SUM, NULL 문제)

<지문>

테이블 데이터 내용

SELECT ... CASE WHEN SUM(GRADE + RANK) IS NULL THEN 0

ELSE SUM(GRADE + RANK)

....

<답> 25 ( 12 + 13)

17. 아래의 테이블 데이터가 있을 때 SQL 결과로 알맞은 것은? (GRADE, CROSS JOIN 결과)

<지문>

SELECT GRADE

FROM A,

(SELECT MAX(...) FROM )

WHERE ...

<답> GRADE : SILVER

18. 아래의 테이블 데이터가 있을 때 다음의 SQL 결과로 알맞은 것은? ( UNION ALL - MINUS 결과)

<지문>

SELECT COL1 FROM A

UNION ALL

SELECT COL1 FROM B

MINUS

SELECT COL1 FROM C

<답> 1,3,5 ( MINUS 전 두개 집합의 결과를 DISTINCT 후에 MINUS 수행됨)

19. 아래의 SQL (MREGE INTO ) 에 대한 결과로 알맞은 것은?

<지문>

MERGE INTO A

MATCHED ... UPDATE

NOT MACHED ... INSERT

<답> 1,2,3 / 100,100,100

20. 최대값을 가지고 오는 SQL로 알맞은 것은? ( ORDER BY 와 ROWNUM 의 위치)

<답> SELECT ...

FROM ( SELECT ..

FROM

ORDER BY DESC )

WHERE ROWNUM <= 1

21. MAX(COL1) KEEP (DENSE_RANK .... FIRST .... ORDER BY DESC) SQL 에 대한 결과로 올바른 것은?

<답> 1,1 / 10, 20 에서 20 (DESC 였으므로)

22. 아래의 데이터 결과가 나오는 SQL 로 올바른 것은? (순위가 동일 순위가 있고 연속된 순위)

<지문>

순위 1,1,2,3,3,4,5

<답> DENSE_RANK 가 있는 SQL

23. 아래의 데이터 결과가 나오는 SQL 로 올바른 것은? (소수점과 순위가 있는 결과)

(커피사왔니, 오마티티님 감사합니다)

<지문>

col1 : ...

col2 : 0.2, 0.2, 0.1, 0.1 ~ : 총합계 1

col3 : 1,1,2,2,3,3,4,4,5,5

<답> SELECT RATIO_TO_REPORT(COL1)

NTILE(N) ...

<추가 설명>

PERCENT_RANK() OVER (PARTITION BY .. ORDER BY ..)

-> 파티션별 윈도우에서 제일 먼저 나오는 것을 0으로, 제일 늦게 나오는 것을 1로 하여

값이 아닌 행의 순서별 백분율을 구한다.

-> 0, 0, 0.5, 0.75, 1 이런식의 0과 1이 나타남

RATIO_TO_REPORT(COL1) OVER(PARTITION BY .. ORDER BY ..)

-> 파티션 내 전체 SUM 값에 대한 행별 컬럼 값의 백분율을 소수점으로 구함

-> 0.29, 0.22, 0.22 0.27 ---> 합이 1 임

NTILE(N) OVER (PARTITION BY ... ORDER BY ... )

-> 파티션별 전체 건수를 N 등분한 결과를 구함

-> 14 ROWS 를 NTILE(4) 로 할 경우 14를 4등분 한 후 나머지를 앞에서부터 채움. 4,4,3,3 으로 나눔

24. SET OPERATION 에서 교집합과 동일한 역할을 하는 OPERATION 은?

<답> INTERSECT

25. 테이블의 데이터에서 NOT NULL 인 데이터만 가지고 오는 SQL로 올바른 것은?

<답> SELECT ...FROM ... WHERE ... IS NOT NULL

26. 아래의 테이블 데이터가 있을 경우 다음의 SQL 에서 오류가 발생하는 것은? (평가항목, 상품 있던 문제)

-> 26번이 확실하고, 문제가 잘못되었음.

-> ERROR 가 두개 발생됨

<보기>

1)...

2) SELECT ...

(SELECT COL1 FROM 상품 B WHERE A.상품ID = B.상품 ID)

FROM ...

 

3) SELECT ..

FROM ...

... (SELECT 상품ID

FROM 평가항목 ...

)

<답> 2번의 경우 스칼라 서브쿼리에서 다중ROW 가 발생하여 에러

3번의 경우 평가항목 테이블에 상품ID 컬럼 자체가 없어서 에러

27. CROSS JOIN 에 대한 설명으로 바른것은?

<답> 테이블의 하나의 로우에 대해서 다른 테이블의 모든 로우와 조인되는 결과

28. 사원 정보를 출력하는 SQL 에서 사원 정보와 차상위 메니저 정보를 출력해주는 SQL 로 올바른 것은?

<답> 3번: EMP A LEFT OUTER JOIN EMP B ON A.MGR_NO = B.EMP_NO

29. TAB A , TAB B, TAB C 가 식별자 관계로 이뤄진 형태.아래의 설명으로 적절하지 않은 것은?

<답> 조인 조건은 최소 3개이다 -> 테이블 3개이면 최소 2개임

--> 나머지 보기도 좀 애매함..

30. 아래의 SQL 중 결과가 다른 것은? ( LTRIM, RTRIM 등에 대한 문제)

(오마티티, 데이터자격님 감사합니다)

<보기>

1) LPAD('BCD','A',3)

2) RTRIM('EBCDE','E')

3) SUBSTR('ABCDE',2,3)

4) CONCAT ( CONCAT (NULL, 'BC'), 'E')

<답> 2번. RTRIM 은 오른쪽 부터 지정된 문자를 삭제함. 다른 문자가 나오면 멈춤

31.아래의 SQL 에 대한 결과로 올바른 것은? ( AVG, SUM/COUNT 의 비교)

<설명>

데이터

-> NULL 이 하나 있는 컬럼

<지문>

SELECT ROUND( AVG(COL) ) , ROUND ( SUM(COL)/COUNT(*) ) FROM ..

<답> AVG 에서 NULL 은 모수에서 제외됨. 100,110 ,NULL 에서 210 /2 =105, 210/3= 70

105, 70

32. 아래의 조건으로 수행된 SQL 에서 보기의 순서대로 SQL 이 수행될 때 에러가 발생하는 곳은?

<지문>

고객 테이블

주문 테이블 : 주문.고객ID REFERENCE 고객.고객ID

<답> 고객 테이블에 없는 고객 ID 로 주문의 고객ID 를 업데이트하여 결과를 바꾸는 보기 (4번)

33. 아래의 SQL 에 대한 결과로 올바른 것은?

<지문>

SELECT ..

FROM..

GROUP BY ..

HAVING COUNT(*) >= 2

<답> 미정

문제 설명 (데이터자격님)

-> having count(*)>=2 조건 걸어서 300인 행 하나 출력하는것도 있었던 것 같습니다. 보기4번에 공집합도 있었던 것 같고.

34. 아래의 데이터 테이블이 있을 때 아래 SQL 의 수행 결과로 올바른 것은?

<지문>

COL1 COL2

---- ----

10 20

0 NULL

10 0

SELECT AVG(COL1), AVG(COL2)

FROM ..

WHERE COL2 IS NOT NULL;

<답> ??? COL1 , COL2 이 저런 비슷한 형태임. NULL 을 제외하고 한개 컬럼엔 0 이 있는 형태

10+10/2= 10 ,20+0 /2 = 10

35. UNION 에 대한 설명으로 가장 적절한 것은?

<보기>

1) UNION ALL 에 비해 성능이 좋다

2) 상호 배타적인 조건일 때는 UNION 이 사용된다.

3) 합집합이며 중복행은 하나로 취급한다.

4) ...

<답> 합집합이며 중복행은 하나로 취급한다.

36.

<단답형>

37. USER 를 삭제할 때 USER 에 속한 모든 OBJECT 를 같이 삭제하는 명령어이다. 빈칸을 작성하시오

<지문>

ALTER DROP USER user_name ( )

<답> CASCADE

38. 아래의 SQL 를 완성하시오.

<답> GROUP BY , DESC

39. 아래의 SQL 에 대한 결과를 적으시오

<지문>

SELECT COL1

FROM ( SELECT ROW_NUMBER() OVER(PARTITION BY ... ORDER BY DESC )

FROM ..

WHERE ..

)

WHERE RN =1

<답> 5,4

40. 아래의 계층형 쿼리의 결과를 작성하시오

<지문>

데이터

<SQL>

SELECT COUNT(*)

FROM ...

WHERE COL1 <> 4

START WITH COL1= 1

CONNECT BY PRIOR COL1 = COL2;

COL1 COL2

----------

1 NULL

2 NULL

3 1

4 1

5 2

6 2

7 3

8 4

9 5

<답> 2 null 은 제외된 상태에서 수행되며, 그 결과에서 4 인 row 를 젣외

위의 샘플 예제로 1 에서 시작된 결과는 1,3,4,7,8 5 의 5 rows 에서 4를 제외한 4개

'SQLD' 카테고리의 다른 글

47회 <1과목 : 8문제 (객관식) + 2문제 (단답형) >  (0) 2022.12.04