[무료 SQLD 문제] 식별자, SELECT 문, JOIN 함수, GROUP BY 절, 서브쿼리 무료 SQLD 예상 문제 11일차
매일매일 푸는 SQLD 예상 문제 11일차
오늘의 SQLD 시험 문제
SQLD(Structured Query Language Developer) 자격증 준비를 위한 오늘의 문제를 풀어보세요.
이 문제들은 데이터 모델링과 SQL의 기본 및 응용에 대한 이해도를 높이는 데 도움이 됩니다.
문제 1: 데이터 모델의 이해 - 정규화
다음 중 제1정규형(1NF)에 대한 설명으로 올바른 것은?
- 테이블의 모든 열이 원자 값을 가져야 한다.
- 모든 비프라이머리 속성이 기본 키에 이행적 함수 종속이 없어야 한다.
- 테이블의 모든 열이 기본 키에 부분 함수 종속이 없어야 한다.
- 모든 비프라이머리 속성이 기본 키에 직접 함수 종속이어야 한다.
문제 2: SQL의 기본 및 응용 - SELECT 문
다음 SQL 문을 실행했을 때 출력되는 결과를 고르세요.
SELECT first_name, last_name, department_id
FROM employees
WHERE salary > 5000 AND department_id IN (10, 20);
- 급여가 5000 이하인 직원의 이름과 성을 출력한다.
- 급여가 5000 이상인 직원의 이름과 성을 출력한다.
- 급여가 5000 초과이며 부서 ID가 10 또는 20인 직원의 이름, 성, 부서 ID를 출력한다.
- 급여가 5000 이하이며 부서 ID가 10 또는 20인 직원의 이름, 성, 부서 ID를 출력한다.
문제 3: SQL의 기본 및 응용 - 조인 함수
다음 SQL 문에 대한 설명으로 올바른 것을 고르세요.
SELECT e.employee_id, e.first_name, d.department_name
FROM employees e
RIGHT JOIN departments d ON e.department_id = d.department_id;
- 직원 테이블과 부서 테이블의 모든 행을 조인한다.
- 부서 테이블의 모든 행이 결과에 포함되고, 조인 조건을 만족하지 않는 경우 직원 ID는 NULL로 표시된다.
- 직원 테이블의 모든 행이 결과에 포함되고, 조인 조건을 만족하지 않는 경우 부서 이름은 NULL로 표시된다.
- 직원 테이블과 부서 테이블의 조인 조건을 만족하는 행만 결과에 포함된다.
문제 4: SQL의 기본 및 응용 - 서브쿼리
다음 SQL 문을 실행했을 때 출력되는 결과를 고르세요.
SELECT first_name, last_name
FROM employees
WHERE employee_id IN (SELECT manager_id FROM employees);
- 모든 직원의 이름과 성을 출력한다.
- 부서 관리자의 이름과 성을 출력한다.
- 부서 ID가 있는 모든 직원의 이름과 성을 출력한다.
- 관리자가 없는 직원의 이름과 성을 출력한다.
문제 5: SQL의 기본 및 응용 - 집합 연산자
다음 중 UNION 연산자와 UNION ALL 연산자의 차이점으로 올바른 것을 고르세요.
- UNION은 중복된 행을 제거하고, UNION ALL은 중복된 행을 포함한다.
- UNION은 중복된 행을 포함하고, UNION ALL은 중복된 행을 제거한다.
- UNION과 UNION ALL은 동일하게 작동한다.
- UNION은 첫 번째 SELECT 문만 반환하고, UNION ALL은 두 번째 SELECT 문만 반환한다.
문제 1: 데이터 모델의 이해 - 정규화 정답
다음 중 제1정규형(1NF)에 대한 설명으로 올바른 것은?
- 테이블의 모든 열이 원자 값을 가져야 한다.
- 모든 비프라이머리 속성이 기본 키에 이행적 함수 종속이 없어야 한다.
- 테이블의 모든 열이 기본 키에 부분 함수 종속이 없어야 한다.
- 모든 비프라이머리 속성이 기본 키에 직접 함수 종속이어야 한다.
정답:
- 테이블의 모든 열이 원자 값을 가져야 한다.
해설: 제1정규형(1NF)은 테이블의 모든 열이 원자 값을 가져야 한다는 것을 의미합니다. 즉, 각 열에는 더 이상 분할할 수 없는 단일 값이 있어야 합니다.
문제 2: SQL의 기본 및 응용 - SELECT 문 정답
다음 SQL 문을 실행했을 때 출력되는 결과를 고르세요.
SELECT first_name, last_name, department_id
FROM employees
WHERE salary > 5000 AND department_id IN (10, 20);
- 급여가 5000 이하인 직원의 이름과 성을 출력한다.
- 급여가 5000 이상인 직원의 이름과 성을 출력한다.
- 급여가 5000 초과이며 부서 ID가 10 또는 20인 직원의 이름, 성, 부서 ID를 출력한다.
- 급여가 5000 이하이며 부서 ID가 10 또는 20인 직원의 이름, 성, 부서 ID를 출력한다.
정답: 3. 급여가 5000 초과이며 부서 ID가 10 또는 20인 직원의 이름, 성, 부서 ID를 출력한다.
해설: 이 쿼리는 급여가 5000을 초과하고 부서 ID가 10 또는 20인 직원의 이름, 성, 부서 ID를 선택합니다.
문제 3: SQL의 기본 및 응용 - 조인 함수 정답
다음 SQL 문에 대한 설명으로 올바른 것을 고르세요.
SELECT e.employee_id, e.first_name, d.department_name
FROM employees e
RIGHT JOIN departments d ON e.department_id = d.department_id;
- 직원 테이블과 부서 테이블의 모든 행을 조인한다.
- 부서 테이블의 모든 행이 결과에 포함되고, 조인 조건을 만족하지 않는 경우 직원 ID는 NULL로 표시된다.
- 직원 테이블의 모든 행이 결과에 포함되고, 조인 조건을 만족하지 않는 경우 부서 이름은 NULL로 표시된다.
- 직원 테이블과 부서 테이블의 조인 조건을 만족하는 행만 결과에 포함된다.
정답: 2. 부서 테이블의 모든 행이 결과에 포함되고, 조인 조건을 만족하지 않는 경우 직원 ID는 NULL로 표시된다.
해설: RIGHT JOIN은 오른쪽 테이블(여기서는 departments)의 모든 행을 포함하며, 조인 조건을 만족하지 않는 경우 왼쪽 테이블(여기서는 employees)의 열은 NULL로 표시됩니다.
문제 4: SQL의 기본 및 응용 - 서브쿼리 정답
다음 SQL 문을 실행했을 때 출력되는 결과를 고르세요.
SELECT first_name, last_name
FROM employees
WHERE employee_id IN (SELECT manager_id FROM employees);
- 모든 직원의 이름과 성을 출력한다.
- 부서 관리자의 이름과 성을 출력한다.
- 부서 ID가 있는 모든 직원의 이름과 성을 출력한다.
- 관리자가 없는 직원의 이름과 성을 출력한다.
정답: 2. 부서 관리자의 이름과 성을 출력한다.
해설: 서브쿼리 (SELECT manager_id FROM employees)는 모든 부서 관리자의 employee_id를 반환합니다. 외부 쿼리는 이 관리자의 employee_id를 가진 직원의 이름과 성을 출력합니다.
문제 5: SQL의 기본 및 응용 - 집합 연산자 정답
다음 중 UNION 연산자와 UNION ALL 연산자의 차이점으로 올바른 것을 고르세요.
- UNION은 중복된 행을 제거하고, UNION ALL은 중복된 행을 포함한다.
- UNION은 중복된 행을 포함하고, UNION ALL은 중복된 행을 제거한다.
- UNION과 UNION ALL은 동일하게 작동한다.
- UNION은 첫 번째 SELECT 문만 반환하고, UNION ALL은 두 번째 SELECT 문만 반환한다.
정답:
- UNION은 중복된 행을 제거하고, UNION ALL은 중복된 행을 포함한다.
해설: UNION 연산자는 두 개 이상의 SELECT 문을 결합하고 중복된 행을 제거합니다. 반면에 UNION ALL 연산자는 중복된 행을 포함하여 모든 행을 반환합니다.
댓글