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 |
---|