WorkHard/자격증

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

코딩공대 2023. 2. 27. 17:59
728x90

1. 데이터베이스 테이블의 제약조건(Constraint)?

  • Check 제약조건은 데이터베이스에서 데이터의 무결성을 유지하기 위해 테이블의 특정 칼럼에 설정하는 제약이다.
  • 기본키(Primary Key)는 반드시 테이블 당 하나의 제약만을 정의할 수 있다.
  • 고유키(Unique Key)로 지정된 모든 칼럼들은 Null값을 가질 수 있다.
  • 외래키(Foreign Key)는 테이블 간의 관계를 정의하기 위해 기본키(Primary Key)를 다른 테이블의 외래키가 참조하도록 생성한다.

2. T1, T2, T3에 들어갈 값은?

  • 다중행 입력 쿼리문으로 Case문과 동일하게 수행되며 WHEN을 만족하면 종료한다.
  • 그래서 T1행에는 2, 3 T2행에는 NULL, T3행에는 1이 입력된다.

3. 문자열 중 m위치에서 n개의 문자 길이에 해당하는 문자를 리턴하는 함수?

SUBSTR(STR, M, N) / SUBSTRING(STR, M, N)
  • STRING_SPLIT : 조회된 skills 컬럼의 쉼표(',') 구분자를 잘라서 해당 개수만큼 행으로 변환한다. FROM절에서 해당 함수를 사용할 수 있다.

4. SQL 결과?

  • FROM절에서 DISTINCT 명령어로 중복된 COL1, COL2값은 제외되어 COL1, COL2가 (1, A), (1, B)인 2개의 행만 반환되고 각각 COUNT값 2를 반환한다.

5. SQL 결과?

  • ROLLUP은 총계가 나온다, 괄호 안의 항목들을 오른쪽부터 하나씩 지워가며 집계한다.
  • 예를들어 ROLLUP(a, b)는 1. (a, b)의 합계, 2. (a)의 합계, 3. ()합계 이렇게 3가지가 나오고
  • ROLLUP(a), a는 1. (a), a, 2.(), a 2가지가 나온다.

6. SQL 빈칸채우기?

  • 1번 : RANK(), 2번 : ROW_NUMBER()
  • 그룹 내 순위함수
  • RANK() : 중복값은 중복등수, 등수를 건너 뛴다.(1위, 1위, 3위, 4위)
  • DENSE_RANK() : 중복값은 중복등수, 등수를 안 건너뛴다.(1위, 1위, 2위, 2위)
  • ROW_NUMBER() : 중복값이 있어도 고유 등수를 부여한다,(1위, 2위, 3위, 4위)

7. SQL 수행결과?

  • ROUND 함수의 첫 번째 인자값을 소수점 첫째 자리까지 반올림해라.
  • 따라서 3.5가된다.

8. Hash Join?

  • 조인 컬럼의 인덱스가 존재하지 않을 경우에도 사용할 수 있다.
  • 해시 함수를 이용하여 조인을 수행하기 때문에 '='로 수행하는 조인으로 동등 조건에만 사용가능하다.
  • 해시 함수가 적용될 때 동일한 값을 항상 같은 값으로 해싱됨이 보장된다.
  • HASH JOIN 작업을 수행하기 위해 해시 테이블을 메모리에 생성해야 한다.
  • 메모리에 적재할 수 있는 영역의 크기보다 커지면 임시 영역(디스크)에 해시 테이블을 저장한다.
  • HASH JOIN을 할 때에는 결과 행의 수가 적은 테이블을 선행 테이블로 사용하는 것이 좋다.
  • 선행 테이블을 Build Input이라 하며, 후행 테이블을 Prove Input이라 한다.

9. ROLLBACK?

  • 데이터의 입력 / 삭제 / 수정 등의 DML 수행 후 원상 복구를 위한 명령어는 "ROLLBACK"명령어를 사용한다.

10. SQL에 대한 Column Header는?

  • EMPLOYEE_ID, DEPARTMENT_ID, salary
  • 별칭이 없는 칼럼은 대문자로 바꾸로, 별칭이 있는 칼럼은 그래도 사용한다.(SQL Server의 경우는 별칭이 없는 칼럼도 그대로 사용한다.)

11. SQL 결과?

  • 테이블에서 계층형 쿼리 결과로 총 5건(1, 3, 7, 4, 8)이 조회되면 여기서 WHERE 조건절인 COL1<>인 4번째 행이 제외되어 총 4건이 나온다.