WorkHard/자격증

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

코딩공대 2023. 2. 23. 23:27
728x90

1. 인덱스의 특징

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

2. SubQuery

 - SubQuery의 특징

  • SELECT 스칼라 서브쿼리 : 스칼라 서브쿼리는 한 행, 한 컬럼만을 반환하는 서브쿼리를 말한다.
  • FROM 인라인 *뷰 : 서브쿼리가 FROM절에 사용되면 동적으로 생성된 테이블인 것처럼 사용할 수 있다. 인라인 뷰는 SQL문이 실행될 때만 임시적으로 생성되는 동적인 뷰이기 때문에 데이터베이스에 해당 정보가 저장되지 않는다.
  • WHERE / HAVING 서브쿼리 : 그룹함수와 함께 사용될 때 그룹핑된 결과에 대해 부가적인 조건을 주기 위해 사용한다.

 - 뷰 개념

  • 뷰 개념 VIEW : 테이블은 실제로 데이터를 가지고 있는 반면, 뷰는 실제 데이터를 가지고 있지 않다. 징의에서 뷰가 사용되면 뷰 정의를 참조해서 DBMS 내부적으로 질의를 재작성하여 질의를 수행한다. 뷰는 실제 데이터를 가지고 있지 않지만 테이블이 수행하는 역할을 수행하기 때문에 가상 테이블이라고도 한다.
  • 독립성 : 테이블 구조가 변경되어도 뷰를 사용하는 응용프로그램은 변경하지 않아도 된다.
  • 편리성 : 복잡한 질의를 뷰로 생성함으로써 관련 질의를 단순하게 작성할 수 있다.
  • 보안성 : 숨기고 싶은 정보가 존재하는 경우, 뷰를 생성할 때 해당 컬럼을 빼고 생성하여 정보를 숨길 수 있다.

3. PL/SQL

  • 변수와 상수 등을 사용하여 일반 SQL 문장을 실행할 때 WHERE절의 조건 등으로 대입할 수 있다.
  • Procedure, User Defined Funtion, Trigger 객체를 PL/SQL으로 작성 할 수 있다.
  • Procedure, 내부에 작성된 절차적 코드는 PL/SQL 엔진이 처리하고 일반적인 SQL문장은 SQL실행기가 처리한다.
  • PL/SQL문은 예외처리가 필수가 아니다.

4. 데이터 무결성(데이터 임의 갱신으로 부터 보호하는 것)을 보장하기 위한 방법?

  • 애플리케이션 : 개발자의 코딩에서 로직을 넣는다.
  • Trigger : 로직안에 검사기능을 넣는다.
  • 제약조건 : 제약조건을 넣어서 무결성을 보장한다.

5. 문자열이 입력될 때 빈 공간으로 채우는 형태의 데이터 타입은?

 - CHAR : CHAR(10)으로 컬럼을 생성하고 8개의 문자를 입력하면 나머지 2개는 공백으로 입력된다.

 - VARCHAR2 : VARCHAR2는 가변길이 문자열 타입으로 입력한 크기만큼 할당된다.


6. SQL문 설명

  • UPPER : 대문자로 변환
  • RTRIM : 오른쪽 공백 제거
  • SUBSTR (1, 1) : 첫번째에서 첫번째 까지 
  • CONCAT : 문자열 결합

7. 빈칸에 올 함수?

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