WorkHard/자격증

[SQLD 개발자] 기출문제 공부(35회)

코딩공대 2023. 3. 7. 22:38
728x90

1.  아래의 결과값이 들어가 있는 것은?

  • LIKE 연산으로 %나 _가 들어간 문자를 검색하기 위해서는 ESCAPE 명령어를 사용할 수 있다. 사용 방법은 _나 %앞에 ESCAPE로 특수 문자를 지정하면 검색할 수 있다.

2. SQL문의 결과값?

  • ROWNUM = 1은 사용가능 하지만 ROWNUM = 2인 경우 데이터가 추출되지 않는다.

3. 집합 연산자?

  • UNION : 중복된 행을 제거하고 정렬한다.
  • UNION ALL : 합집합이다. 
  • EXCEPT : SQL SERVER에서 사용한다. / ORACLE에서는 MINUS 차집합이다.
  • INTERSECT : 교집합이다.

4. WINDOW FUNCTION

  • UNBOUNDED PRECEDING은 End Point에서 사용할 수 없다.
  • RANGE BETWEEN Start_Point AND End_Point이다.
  • Start_Point값은 End_Point값과 같거나 작은 값이 들어간다.
  • Default값은 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW가 된다.
  • UNBOUNDED PRECEDING : Start_Point만 들어갈 수 있으며 파티션의 First Row가 된다.
  • UNBOUNDED FOLLOWING : End_Point만 들어갈 수 있으며 파티션의 Last Row가 된다.
  • CURRENT ROW : Start_Point, End_Point 둘 다 가능하다. 윈도우는 CURRENT ROW에서 Start 하거나 End 한다.

5. 인덱스의 특징?

  • 원하는 데이터를 쉽게 찾을 수 있도록 돕는다.
  • 테이블을 기반으로 선택적으로 생성할 수 있다.
  • 기본적인 목적은 검색 성능의 최적화이다.
  • 검색 조건을 만족하는 데이터를 인덱스를 통해 효과적으로 찾을 수 있게 돕는다.
  • DML작업은 테이블과 인덱스를 함께 변경하므로 느려지는 단점이 존재한다.
  • 인덱스 데이터는 인덱스를 구성하는 컬럼의 값으로 정렬을 수행한다.
  • 인덱스 중 B-TREE 인덱스는 Equal 조건뿐 아니라 BETWEEN, > 와 같은 연산자로 검색하는 범위 검색에도 사용될 수 있다.

6. Subquery? View?

  • Subquery
    • SELECT 스칼라 서브쿼리 : 스칼라 서브쿼리는 한 행, 한 컬럼만을 반환하는 서브쿼리를 말한다. 
    • FROM 인라인 뷰 : 서브쿼리가 FROM절에 사용되면 동적으로 생성된 테이블인 것처럼 사용할 수 있다. 인라인 뷰는 SQL문이 실행될 때만 임시적으로 생성되는 동적인 뷰이기 때문에 데이터베이스에 해당 정보가 저장되지 않는다.
    • WHERE / HAVING 서브쿼리 : 그룹함수와 함께 사용될 때 그룹핑된 결과에 대해 부가적인 조건을 주기 위해 사용한다.
  • View
    • 뷰의 개념 : 테이블은 실제로 데이터를 가지고 있는 반면, 뷰는 실제 데이터를 가지고 있지 않다. 질의에서 뷰가 사용되면 뷰 정의를 참조해서 DBMS 내부적으로 질의를 재작성하여 질의를 수행한다. 뷰는 실제 데이터를 가지고 있지 않지만 테이블이 수행하는 역할을 수행하기 때문에 가상 테이블이라고도 한다.
    • 독립성 : 테이블 구조가 변경되어도 뷰를 사용하는 응용프로그램은 변경하지 않아도 된다.
    • 편리성 : 복잡한 질의를 뷰로 생성함으로써 관련 질의를 단순하게 작성할 수 있다.
    • 보안성 : 숨기고 싶은 정보가 존재하는 경우, 뷰를 생성할 때 해당 컬럼을 빼고 생성하여 정보를 숨길 수 있다.

7. 

  • SUBSTR : 문자열 슬라이싱(Example. ('20190504'), 5, 2 -> 5번째 글자부터 2개 출력)
  • EXTRACT(TEAR / MONTH / DAY FROM SYSDATE) : 연, 월, 일을 뽑아서 출력
  • CONCAT : 문자열 결합
  • TRIM : 공백 제거

8. 빈칸에 올 수 없는 함수는?

  • 단일행 서브쿼리
    • 서브쿼리의 실행 결과가 항상 1건 이하인 서브쿼리
    • 항상 비교연산자와 함께 사용된다.
    • 비교연산자 뒤에는 단일행이 와야 하는데 뒤에 GROUP BY DEPT는 다중행 함수로 에러가 발생한다.
  • 다중행 서브쿼리
    • 서브쿼리의 실행 결과가 여러 건인 서브쿼리
    • 메인 쿼리의 조건절에 여러 컬럼을 동시에 비교할 수 있다.
    • 서브쿼리와 메인쿼리의 컬럼 수와 컬럼 순서가 동일해야 한다.

9.  SQL결과?

  • FROM절에서 DISTINCT로 중복 값이 지워지고 (1, A), (1, B)두개가 남는다.
  • SELECT절에서 COUNT하면 2, 2가 된다.

10. SQL결과?

  • ROLLUP(COL1), COL1은 (A), A / (), A  / (B), B / (), B / (C), C / (), C 총 6개이다.

11. SQL의 빈칸완성하기

  1. RANK() : 중복값은 중복등수, 등수를 건너뛴다.
  2. ROW_NUMBER() : 중복값이 있어도 고유 등수를 부여한다.
  • DENSE_RANK() : 중복값은 중복등수, 등수를 건너뛰지 않는다.