본문 바로가기
IT/SQLP

SQLP 기출문제

by by디디 2022. 4. 21.
반응형
Q. 어느 회사의 사원들과 이들이 부양하는 가족에 대한 것으로 밑줄 친 칼럼은 기본키(Primary Key)를 표시한 것이다. 다음 중 ‘현재 부양하는 가족들이 없는 사원들의 이름을 구하라’는 질의에 대해 아래 SQL 문장의 ㉠, ㉡ 에 들어 갈 내용으로 가장 적절한 것은?

사원 (사번, 이름, 나이)
가족 (이름, 나이, 부양사번)

※ 가족 테이블의 부양사번은 사원 테이블의 사번을 참조하는 외래키(Foreign Key)이다.

[SQL 문장]

SELECT 이름
FROM 사원
WHERE ㉠ (SELECT * FROM 가족 WHERE ㉡ )
------------------------------------------------------------------------------------------------------
① ㉠ : EXISTS        ㉡ : 사번 = 부양사번
② ㉠ : EXISTS        ㉡ : 사번 <> 부양사번
③ ㉠ : NOT EXISTS ㉡ : 사번 = 부양사번
④ ㉠ : NOT EXISTS ㉡ : 사번 <> 부양사번


Q. 다음 중 아래 테이블 정의와 인덱스 현황을 참고하여, 인덱스를 효율적(또는 정상적)으로 액세스할 수 없는 검색조건을 2개 고르시오.


(단, Oracle의 Index Unique Scan, Index Range Scan 또는 SQL Server의 Index Seek 이외의 액세스 방식은 모두 비효율적이라고 가정한다.)

create table 주문 (
    주문번호    int            not null
  , 주문자명    varchar(20)     null
  , 주문금액    money         null
  , 주문일자    varchar(8)      null

 
create unique index 주문_pk on 주문 (주문번호) 
create index 주문_x01 on 주문 (주문자명) 
create index 주문_x02 on 주문 (주문일자 , 주문금액)

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

① where 주문번호 between 1 and 10   
② where 주문자명 like '%홍길동%' 
③ where 주문일자 >= '20100901'
④ where 주문일자 = 20100901


Q. 총 건수가 1,000만 건인 연도별지역별상품매출 테이블에 [출시연도 + 크기],  [색상  + 출시연도] 순으로 구성된 두 개의 B*Tree인덱스가 있었다. 다음 중 이 두 인덱스를 제거하고 아래와 같이 세 개의 비트맵(Bitmap) 인덱스를 생성했을 때, 개별 쿼리의 블록 I/O 측면에서 개선 효과가 가장 미미한 것은? 


create bitmap index 연도별지역별상품매출_bx1 on 연도별지역별상품매출(크기);
create bitmap index 연도별지역별상품매출_bx2 on 연도별지역별상품매출(색상);
create bitmap index 연도별지역별상품매출_bx3 on 연도별지역별상품매출(출시연도);
 
■ Distinct Value
   크기 = { NULL, SMALL, MEDIUM, BIG }
   색상 = { NULL, RED, GREEN, BLUE, BLACK, WHITE }
   출시연도 = { NULL, 2001, 2002, 2003, 2004, 2005 2006, 2007, 2008, 2009, 2010 }
 
■ 데이터 분포는 모두 균일

------------------------------------------------------------------------------------------------------
 
① select count(*) from 연도별지역별상품매출 where 색상 is null;
② select count(*) from 연도별지역별상품매출
      where (크기 = ‘SMALL’ or 크기 is null)
      and   색상 = ‘GREEN’
      and    출시연도 = ‘2010’;
③ select 색상, count(*) from 연도별지역별상품매출 group by 색상;
④ select sum(판매량), sum(판매금액)
      from 연도별지역별상품매출
      where  색상 = ‘BLUE’;

 


Q. 다음 중 Syntax 오류가 있는 SQL문 2개를 고르시오.
① SELECT 부서번호 
   FROM 직원HAVING COUNT(*) > 3;

② SELECT 직원이름
   FROM 직원 JOIN 부서 
   ON (직원.부서번호 = 부서.부서번호)
   WHERE 부서명 = ‘인사과’

③ SELECT 전화번호
   FROM 직원
   WHERE 전화번호 = ‘777’
   GROUP BY 전화번호

④ SELECT 직원이름
   FROM 직원 JOIN 부서 
   USING (부서.부서번호)
   WHERE 부서명 = ‘인사과’

 


Q. 다음 중각 SQL 실행 결과를 가장 올바르게 설명한 것을 2개 고르시오.


① SELECT COL1, COL2 FROM TAB1 WHERE 1 = 2 ;

    → 실행 시 에러가 발생한다.

② SELECT NVL(COL1,'X') FROM TAB1 WHERE 1 = 2 ;

    → 실행 결과로 'X'를 반환한다.

③ SELECT NVL(MIN(COL1), 'X') FROM TAB1 WHERE 1 = 2;

    → 실행 결과로 'X'를 반환한다.

④ SELECT COL1, COL2 FROM TAB1 WHERE 1 = 2 ;

    → 실행 결과가 없다.(공집합)

 

2022.04.13 - [IT/SQLP] - [SQL 기초강의] 1강. SQL의 이해

 

[SQL 기초강의] 1강. SQL의 이해

SQL이란? SQL = Structured Query Language ANSI(미국 표준 협회)에서 제정한 관계형 데이터베이스(Relational DB)를 위한  표준 언어 SQL을 통해서만 RDBMS안에 있는 데이터를 얻을 수 있음 모든 SQL 문은 세미..

zaop.tistory.com

2022.04.05 - [IT/SQLP] - SQLP 실습 문제 (1-2번)

 

SQLP 실습 문제 (1-2번)

1번 실습문제 DROP TABLE 현물종목 PURGE; CREATE TABLE 현물종목 (    종목ID     NUMBER         NOT NULL , 종료일자   VARCHAR2(8)    NOT NULL , 시작일자   VARCHAR2(8)    NOT NUL..

zaop.tistory.com

 

반응형

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

SQLP 기출문제 3편  (0) 2022.04.22
SQLP 기출문제 2편  (0) 2022.04.21
[SQL 기초강의] 2강. SELECT  (3) 2022.04.14
[SQL 기초강의] 1강. SQL의 이해  (2) 2022.04.13
[SQLP] 객관식 문제 (2)  (0) 2022.04.06

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

댓글