😀 Language/- SQL

[SQLD] 21.11.08 공부_39회 최신기출문제 풀기(2) 19~50번

또방91 2021. 11. 8. 17:28
728x90

* 공부 교재   : 영진닷컴 이기적 SQL 개발자

* 공부 범위   : <SQLD 최신기출문제> 최신 기출문제(39회) p304~

* 오늘 Goal   : 유튜브 강의 보면서 풀이제대로 했는지 확인하기

* 추가 자료   : 

 - 2021 SQL개발자 기출문제 39회(1) https://youtu.be/sPR3wa2Jrqo

 - 2021 SQL개발자 기출문제 39회(2) https://youtu.be/zGioqCH_NTs

 

 

 

 

 

SQL 기본 및 활용
p313. <21번> 
*ORDER SIBLING BY
:전체 테이블에 대해서 정렬하는 ORDER BY와는 달리, 특정칼럼 기준으로 정렬된다. 
p314. <24번> 헷갈린다헷갈려😵 / 다음 중 문자에 대한 설명으로 부적절한 것은?

(O) VARCHAR(가변길이 문자형)은 비교 시 서로길이가 다를 경우, 서로 다른 내용으로 판단한다
--> 입력한 만큼 길이가 달라지니까, 당연히 길이가 다르면 입력한 값이 다름
(X) CHAR(고정길이 문자형)은 비교 시 서로 길이가 다를 경우, 서로 다른 내용으로 판단한다
--> ex) CHAR(4)에 a,b 입력한 경우  /  CHAR(2)에 a,b 입력한 경우를 비교한다면
          짧은 쪽에 공간을 추가하여 같은 값으로 판단
(O) 문자형과 숫자형을 비교 시, 문자형을 숫자형으로 묵시적 변환하여 비교한다.
(O) 연산자 실행 순서는 괄호, NOT, 비교연산자, AND, OR 순이다.
 
p319 <37번> 다음 보기 중 서브쿼리에 대한 설명으로 옳지 않은 것은?
(O) 서브쿼리에서는 정렬을 수행하기 위해서 내부에 ORDER BY를 사용하지 못한다.
(X) 메인 쿼리를 작성할 때 서브쿼리에 있는 칼럼을 자유롭게 사용할 수 있으면 편리하다.
(O) 여러 개의 행을 되돌리는 서브쿼리는 다중 행 연산자를 사용해야 한다.
-->다중 행 서브쿼리는 다중 행 연산자(IN, ALL, ANY, EXIST)를 사용
(O) EXIST는 TRUE와 FALSE만 되돌린다.
p320 <38번> 오라클 데이터베이스에서 내일 날짜를 조회하는 방법으로 올바른 것은?
(X) SELECT TO_DATE(SYSDATE+1,'YYYYMMDD')FROM DUAL
(O) SELECT TO_CHAR(SYSDATE+1,'YYYYMMDD')FROM DUAL
(X) SELECT TO_DATE(SYSDATE-1,'YYYYMMDD')FROM DUAL
(X) SELECT TO_CHAR(SYSDATE-1,'YYYYMMDD')FROM DUAL

*SYSDATE : 오늘 날짜를 알수 있는 날짜형
문제 조건1) 내일 날짜 ----> SYSDATE+1
문제 조건2) 날짜 조회 ----> 괄호안에 날짜형을 넣고 원하는 fomat을 쓰는 경우는 TO_CHAR 형변환

<명시적 형변환>
* TO_DATE (문자열, format) -> 날짜형
* TO_CHAR (날짜형or숫자, format) ->문자열
* TO_NUMBER(문자열) -> 문자열을 숫자로 변환
p322 <42번> HASH 조인에 대한 설명으로 옳지 않은 것은?
(O) 두 개의 테이블 중에서 작은 테이블은 HASH 메모리에 로딩하고 두 개 테이블의 조인키를 사용해서 테이블을 생성한다.
(O) HASH 함수를 사용해서 주소를 계산하고 해당주소를 사용해서 테이블을 조인하기 때문에 CPU 연산이 많이 수행된다.
(X) HASH 함수를 사용해서 조인 시 RANDOM ACCESS로 인한 부하로 성능지연이 발생할 수 있다.
---> Nested loop join에 대한 설명이다
(O) HASH 조인 시에는 선행 테이블의 크기가 작아서 충분히 메모리에 로딩되어야 한다.

*Nested loop join에서 Random access를 줄이기 위해서
1) 외부테이블(선행테이블)의 크기가 작은 것을 먼저 찾아 스캔범위를 줄이거나
2) WHERE 조건절을 통해 결과 집합을 제한한다.
p324 <46번> Auto commit 관련 문제
*기본: Commit하기전 Rollback을 시행하면 데이터 날아감
*Auto commit
 - SQL*PLUS 프로그램을 정상적으로 종료하는 경우 Auto commit
 - DDL 및 DCL을 사용하는 경우 Auto commit
  (ex_ CREATE, ALTER,DROP, RENAME, TRUNCATE / GRANT, REVOKE)
 - "set autocommit on;"을 SQL*PLUS에서 실행하면 Auto commit 
p325 <49번> 주어진 데이터에서 아래 SQL문을 실행한 행(ROW)의 건수로 올바른 것은?
[sqld22]
col1 col2 col3
1 1 3
1 2 3
2 1 3
3 1 3
3 2 3
[sqld22_2]
col1 col2 col3
1 1 3
1 2 3
2 1 3
3 1 3
3 2 3
SELECT COUNT(*)
FROM squld22, sqld22_2
WHERE sqld22.col1 = sqld22_2.col1:
답: 9개 (Inner join조건을 만족하는 행만 가져와서 조건 수행)
113-113
113-123
123-113
123-123
213-213

313-313
313-323
323-313
323-323

오늘은 여기까지!!!

🍁NEXT > 최신기출문제 38회(1) 동영상과 함께 풀어보기 

 

 

728x90