본문 바로가기
IT/SQLP

SQLP 기출문제 3편

by by디디 2022. 4. 22.
반응형

2022.04.21 - [IT/SQLP] - SQLP 기출문제 2편

 

SQLP 기출문제 2편

2022.04.21 - [IT/SQLP] - SQLP 기출문제 SQLP 기출문제 Q. 어느 회사의 사원들과 이들이 부양하는 가족에 대한 것으로 밑줄 친 칼럼은 기본키(Primary Key)를 표시한 것이다. 다음 중 ‘현재 부양하는 가족들

zaop.tistory.com

 

Q. 다음 중 아래 t_idx 인덱스가 해당하는 것으로 가장 적절한 것은?

create table t ( a number, b char(3), c varchar2(10) )
partition by range(a) (
partition p1 values less than(100)
, partition p2 values less than(200)
, partition p3 values less than(maxvalue)
);
create index t_idx on t( b ) local ;
------------------------------------------------------------------------------------------------------
① Global Prefixed Partition Index         ③ Local Prefixed Partition Index
② Global NonPrefixed Partition Index  ④ Local NonPrefixed Partition Index


Q. 다음 중 아래 데이터 현황을 참고하여 결과가 다르게 나오는 쿼리인 것은?

select  EmployeeID, LastName, HireDate, Country
from    Employees
order by HireDate



①  select  EmployeeID, LastName, HireDate, Country
    from   (select  EmployeeID, LastName, HireDate, Country
                  , rank () over (order by HireDate) as rnum
            from    Employees
           ) a
    where   a.rnum <= 5
    order by EmployeeID

②  select  EmployeeID, LastName, HireDate, Country
    from   (select  EmployeeID, LastName, HireDate, Country
                  , row_number() over (order by HireDate) as rnum
            from    Employees
           ) a
    where   a.rnum <= 5
    order by EmployeeID

③  select  EmployeeID, LastName, HireDate, Country
    from    Employees a
    where   HireDate in (select top 5 HireDate
                         from   Employees
                         order by HireDate ) 
    order by EmployeeID

④ select  EmployeeID, LastName, HireDate, Country
   from   (select  EmployeeID, LastName, HireDate, Country
                 , dense_rank() over (order by HireDate) as rnum
           from    Employees
          ) a
   where   a.rnum <= 5
   order by EmployeeID


Q. 아래 NVL 함수와 ISNULL 함수를 사용한 SQL 문장은 벤더 공통적으로 CASE 문장으로 표현할 수 있다. 아래 CASE SQL 문장의 ㉠안에 들어갈 내용을 작성하시오. 

[Oracle 사례]
 SELECT PLAYER_NAME 선수명, POSITION, NVL(POSITION,'없음') 포지션 
 FROM PLAYER
 WHERE TEAM_ID = 'K08'

 [SQL Server 사례]
 SELECT PLAYER_NAME 선수명, POSITION, ISNULL(POSITION,'없음') 포지션 
 FROM PLAYER
 WHERE TEAM_ID = 'K08'

 [CASE 문장 사례]
 SELECT PLAYER_NAME 선수명, POSITION, 
           CASE WHEN (        ㉠          )

                    THEN '없음'
                    ELSE POSITION
           END AS 포지션
 FROM PLAYER
 WHERE TEAM_ID = 'K08'


Q. 다음 중 아래 두 SQL에 대한 설명으로 가장 적절한 것은?
(단, 국가는 100건, 수출실적은 100만 건. 국가 테이블 PK는 국가코드이다.)

가. SELECT DISTINCT 국가명
    FROM 국가 x, 수출실적 y
    WHERE x.국가코드= y.국가코드
    AND y.수출년월 BETWEEN '200001' AND '201012';
 
나. SELECT 국가명
    FROM 국가 x
    WHERE EXISTS (SELECT 1
                  FROM  수출실적 y
                  WHERE y.국가코드= x.국가코드
                  AND y.수출년월 BETWEEN  '200001' AND '201012');

------------------------------------------------------------------------------------------------------

① ‘가’ SQL은 부분범위 처리가 가능하다.
② ‘나’ SQL이 더 효율적이다.
③ OLTP 환경이냐, DW 환경이냐에 따라 두 SQL의 효율성이 다르다.
④ 두 SQL의 결과가 다르므로 효율성을 판단하는 것은 의미가 없다.

반응형

'IT > SQLP' 카테고리의 다른 글

[SQL 기초강의] 4강. WHERE  (0) 2022.04.25
[SQL 기초강의] 3강. NULL, DISTINCT  (0) 2022.04.22
SQLP 기출문제 2편  (0) 2022.04.21
SQLP 기출문제  (0) 2022.04.21
[SQL 기초강의] 2강. SELECT  (3) 2022.04.14

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

댓글