*Youtube Link - https://www.youtube.com/watch?v=gZ42zHGUFdQ&list=PL6i7rGeEmTvpLoDkB-kECcuD1zDt_gaPn&index=19
21. CUBE 문제
정답은 1번이다.
22. CUBE
정답은 1번이다.
ROLLUP은 전체와 소계를 구한다.
ROLLUP, CUBE, GROUPING SETS는 여러 컬럼에 대해서도 사용할 수 있다.
ROLLUP 보다 CUBE가 더 시스템 부하를 많이 시킨다.
23. COUNT()
정답은 3번이다.
24. 트랜잭션
원자성은 모두 성공하거나 전혀 실행되지 않아야 한다. 성공하면 커밋 실패하면 롤백이 되는 것이다.
일관성은 트랜잭션 실행 전 DB 내용이 정상이라면 트랜잭션 이후에도 DB 내용이 정상이어야 한다. 제약 조건을 통해서 db 내용이 정상일 수 있도록 지킬 수 있다.
고립성/격리성은 트랜잭셩 실행 도중 다른 트랜잭션이 영향을 주면 안된다.
지속성은 트랜잭션이 성공적으로 수행되면 영구적으로 DB에 저장되어야 한다. 커밋을 했으면 db에 영구반영이 되어야 한다는 의미이다.
고립성/격리성의 예이다.
sqldeveloper 창을 두개를 열었다.
두 명의 사용자가 사용을 하는 것이다.
한 명은 데이터를 update하고 아직 commit은 하지 않았다.
다른 한명은 똑같은 데이터를 update를 하고 있다. 그러면 계속 기다리고 있다.
왼쪽 사용자가 롤백을 하면
오른쪽에서 바로 처리가 되는 것을 볼 수 있다.
고립성/격리성이 지켜져야 동시에 데이터를 바꿀 때 이상해지지 않는다.
25. COUNT() 및 DISTINCT
정답은 4번이다.
26. LEFT OUTER JOIN
정답은 1번이다.
27. 윈도우 함수 - 순위
정답은 2번이다.
파티션에 대해서 순위를 계산한다.
파티션에는 ORDER BY가 들어간다.
또한 WINDOWING 절이 들어간다.
WINDOWING 절의 DEFAULT는 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW가 들어간다.
-> 정렬된 결과의 처음부터 현재 행까지
- WINDOWING 절의 구조
RANK() 함수는 동일한 순위는 동일한 값이 부여된다.
DENSE_RANK() 함수는 동일한 순위를 하나의 건수로 보아 다음 순위는 +1이 온다.
ROW_NUMBER() 함수는 고유한 순위가 부여된다.
29. 트랜잭션
똑같은 이름으로 T1이라는 SAVEPOINT에 저장을 했기 때문에
T1이 두번째 T1으로 변경된다.
답은 2번이 된다.
30. AUTO COMMIT
오라클의 경우 DEFAULT로 AUTO COMMIT = FALSE 이고 DML은 직접 커밋 그리고 DDL은 자동 커밋이 된다.
그러나 SQL SERVER의 경우 DEFAULT로 AUTO COMMIT = TRUE이다. 그래서 DML도 자동 커밋 그리고 DDL도 자동 커밋이다.
SQL SERVER를 AUTO COMMIT = FALSE로 바꾸면 DML 직접 커밋 그리고 DDL도 직접 커밋이 된다.
1. SQL SERVER의 경우 AUTO COMMIT이 FALSE인데 ROLLBACK을 하면 UPDATE구 뿐만 아니라 그 위의 CREATE구도 롤백된다.
2. 오라클의 경우 ROLLBACK을 하면 UPDATE구가 취소된다.
3. 오라클에서 ROLLBACK을 하면 테이블 생성은 롤백되지 않고 UPDATE구만 롤백된다. 마지막 커밋 시점은 CREATE 구까지가 된다.
4. AUTO COMMIT이 FALSE인 경우에 해당한다.
답은 3번이다.
감사합니다.
'SQLD' 카테고리의 다른 글
[SQLD] 최신 기출문제 3회 (41~50) (2) | 2024.11.15 |
---|---|
[SQLD] 최신 기출문제 3회 (31~40) (2) | 2024.11.15 |
[SQLD] 최신 기출문제 3회차 (11~20) (4) | 2024.11.14 |
[SQLD] 최신 기출문제 3회 (1~10) (2) | 2024.11.14 |
[SQLD] 최신 기출문제 2회 (21~30) (0) | 2024.11.06 |