ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SQLD] SQL 개발자 공부하기 Day 16 : 과목별 핵심 150제 오답노트 (3/3)
    Study/SQL 2024. 3. 3. 14:40
    728x90
    반응형
    목차
    1. 과목별 핵심 150제 오답노트 (3/3)

    1. 과목별 핵심 150제 오답노트 (3/3)

     

     

    이기적 SQL 개발자 이론서 + 기출문제 문제집을 풀었고,
    SQLD 과목별 핵심 150제 중 50문제를 풀었다.
    SQL 기본 및 활용 50문제 중 25문제를 틀렸다.

     

    오답 풀이

    SQL 기본 및 활용

    101. 날짜형 데이터 타입을 오름차순으로 정렬하면 날짜 값이 가장 이른 날짜가 먼저 출력된다.

    날짜형 데이터를 출력하기 위해서 sysdate를 사용하고 어제 날짜를 구하기 위해서 sysdate-1을 해야 한다.
    이것을 합집합 한 후에 order by로 정렬해야 한다.

     

     

     

    102. CASE문에서 ELSE를 생략하면 NULL이 되돌려진다.

    CASE문에서 ELSE 조건이 만족되어도 NULL이 되돌려진다.

     

     

     

    104. 윈도우 함수에서 동일한 우선순위가 나와도 고유의 값을 부여하는 함수는 ROW_NUMBER( )이다.

    ‣ RANK( ) : 동일한 순위는 동일한 값.
    ‣ DENSE_RANK( ) : 동일한 순위는 하나의 건 수.
    ‣ ROW_NUMBER ( ) : 동일한 순위는 고유의 순위.

     

     

     

    106. ROWNUM는 SELECT문에서 행이 인출될 때 행에 부여되는 일렬번호이다.

    SELECT ENAME FROM EMP 
    WHERE ROWNUM = 2; 는 오류가 발생한다.
    SELECT ENAME FROM EMP 
    WHERE ROWNUM = 1;
    또는 
    SELECT ENAME FROM EMP 
    WHERE ROWNUM < 10;
    은 사용 가능하다. 
    반응형

     

    107. Subquery가 Mainquery의 제공자 역할을 하고 Mainquery의 값이 Subquery에 주입되지 않는 유형은 Access Subquery이다.

    ‣ Access Subquery : 쿼리의 변형이 없고 제공자의 역할을 하는 서브쿼리.
    ‣ Filter Subquery : 쿼리의 변형이 없고 확인자 역할을 하는 서브쿼리.
    ‣ Ealry Filter Subquery : 쿼리의 변형이 없고 서브쿼리가 먼저 실행하여 데이터를 걸러낸다.

     

     

     

    109. ANSI/ISO 표준 SQL에서 두 테이블 간에 동일한 칼럼 이름을 가지는 것을 모두 출력하는 조인 방식은 NATURAL JOIN이다.

    NATURAL JOIN
    ‣ Alias를 사용할 수 없다.
    ‣ 두 테이블에서 동일한 칼럼 이름을 가지는 칼럼은 모두 조인된다.

     

     

     

    110. 차수는 결과 릴레이션의 칼럼 수이다. 

    카디널리티는 선택된 행들의 개수이다.

     

     

     

    111. 다음 표에서 SELECT count (*) FROM Student Group by department HAVING count(*) > 2; 의 결과는?

    group이 먼저 만들어진다. computer / physics / math 
    이 그룹 중 개수가 2개 초과인 것을 조회한다. math
    math의 총 개수를 구한다. 3

     

     

     

    112. SQL 문장이 성공적으로 수행되었을 때,

     

    세 개의

    Select count(학번) from 학생;

    Delete from 학과 where 학과번호 = '2';

    Select count(학번) from 학생;

    SQL 문장이 실행 후 각 각의 결과는?

    [3,1]
    첫 문장에서는 3개의 학번이 나온다.
    두 번째 문장에서 학과번호가 2인 데이터를 지운다.
    세 번째 문장에서 3개의 학번 중 학과번호가 2인 데이터를 제외하고 나타내면 1이다.

     

     

     

    113. Create table 사원(번호 char(10) primary key, 월급 integer);로 테이블을 생성한 후 다음의 결과는?

    SQL A: select count(번호) from 사원 where 월급 >= 100000 or 월급 < 100000;
    SQL B: select count(번호) from 사원;

     

    SQL A와 B는 Null 값 유무에 따라 값이 같을 수도 다를 수도 있다.
    PK 칼럼은 값이 무조건 들어있다.

     

     

     

    124. where절에 rownum을 사용하여 직접 행의 수를 제한하려고 하면 예상치 못한 결괏값을 얻을 수도 있다.

     

     

     

    125. Any(subquery)는 main query의 비교조건이 Subquery의 결과 중 하나 이상 동일하면 참이 된다.

    < ANY : 하나라도 크게 되면 참이 된다.
    > ANY : 하나라도 작게 되면 참이 된다.

     

     

     

    126. 인덱스는 변형이 일어나면 실행되지 않는다.

    728x90

     

     

    129. NTILE 함수는 데이터를 N등분하는 함수이다.

    ‣ CUME_DIST : 현재 행보다 작거나 같은 건수에 대한 누적 백분율 조회
    ‣ PERCENT_RANK : 제일 먼저 나온 것을 0, 제일 나중에 나온 것을 1로 하여 백분율 조회
    ‣ RATIO_TO_PERCENT : 전체 SUM(칼럼)에 대한 행 별 칼럼값의 백분율을 소수점까지 조회

     

     

     

    130. LAG 함수는 이전 행을 가지고 올 수 있다.

    LEAD 함수는 특정 위치의 행을 가지고 온다.

     

     

     

    132. PK 칼럼에 중복값이 입력되면 무결성 제약 조건(PK중복)에 위배된다.

    참조 무결성 제약 조건은 외래 키 관계를 통해 유지된다.

     

     

     

    136. NOT EXISTS는 OUTER JOIN으로 변경할 경우 NOT NULL 칼럼에 대해서 IS NULL로 검사한다.

     

     

     

    140. ROLLUP 함수는 GROUP BY의 칼럼에 대한 subtotal과 전체합계를 조회한다.

     

     

     

    141. UNION ALL 함수는 두 개의 테이블의 칼럼 수 칼럼의 데이터 형식 모두 일치해야 한다.

    일치하지 않으면, 오류발생으로 실행되지 않는다.

     

     

     

    143. DISTINCT는 중복되면 한 번만 출력한다.

     

     

     

    145. PERCENT_RANK 함수는 윈도우에서 제일 먼저 나오는 값을 0으로 하고 제일 늦게 나오는 것을 1로 해서 행 순서별 백분율을 구한다.

    CUME_DIST 함수는 인수로 지정한 값의 그룹 내 누적분포를 계산한다.

     

     

     

     


    해설을 봐도 이해가 잘 안 가는 부분이 있다.

    유튜브로 요약정리 강의를 한 번 보던지, 다른 방법으로 한 번 정리해야겠다.

     

     

    728x90
    반응형

    댓글

Designed by Tistory.