[무료 SQLD 문제] 정규화, SELECT문, 조인 함수, 집합 연산자, 그룹 함수 무료 SQLD 예상 문제 2일차
매일매일 푸는 SQLD 예상 문제 2일차
데이터 모델의 이해
1. 다음 중 제3정규형(3NF)에 해당하는 조건을 모두 고르시오. (2개)
- 모든 비프라이머리 속성이 기본 키에 이행적 함수 종속을 가지지 않는다.
- 모든 비프라이머리 속성이 기본 키에 부분 함수 종속을 가지지 않는다.
- 모든 비프라이머리 속성이 기본 키에 직함수 종속을 가진다.
- 모든 속성이 원자값을 가진다.
SQL의 기본 및 응용
2. 다음 중 주어진 SQL 쿼리 결과에 대한 설명으로 옳지 않은 것은?
SELECT name, salary
FROM employees
WHERE salary > 5000
ORDER BY name DESC;
- salary가 5000보다 큰 직원들의 이름과 급여를 조회한다.
- 결과는 이름의 내림차순으로 정렬된다.
- salary가 5000 이하인 직원들도 결과에 포함된다.
- 쿼리는 employees 테이블에서 데이터를 조회한다.
3. 다음 SQL 쿼리의 결과를 설명하는 것으로 옳은 것은?
SELECT a.name, b.department_name
FROM employees a
JOIN departments b ON a.department_id = b.department_id;
- employees 테이블과 departments 테이블의 교집합을 조회한다.
- employees 테이블과 departments 테이블의 카테시안 곱을 조회한다.
- employees 테이블과 departments 테이블의 조인을 조회한다.
- employees 테이블의 모든 행과 departments 테이블의 일부 행을 조회한다.
4. 다음 SQL 쿼리에서 UNION 연산자를 사용할 때, 주의해야 할 점으로 옳지 않은 것은?
- 두 쿼리의 열 개수와 데이터 타입이 동일해야 한다.
- 결과 집합에서 중복 행이 제거된다.
- UNION ALL을 사용하면 중복 행이 제거되지 않는다.
- 결과 집합의 열 순서는 임의로 지정할 수 있다.
5. 다음 SQL 쿼리의 결과로 반환되는 값은?
SELECT COUNT(*), AVG(salary)
FROM employees
WHERE department_id = 10;
- department_id가 10인 직원의 수와 평균 급여를 반환한다.
- department_id가 10이 아닌 직원의 수와 평균 급여를 반환한다.
- department_id가 10인 직원의 수와 최대 급여를 반환한다.
- department_id가 10인 직원의 수와 총 급여를 반환한다.
데이터 모델의 이해 정답
1. 다음 중 제3정규형(3NF)에 해당하는 조건을 모두 고르시오. (2개)
- 모든 비프라이머리 속성이 기본 키에 이행적 함수 종속을 가지지 않는다.
- 모든 비프라이머리 속성이 기본 키에 부분 함수 종속을 가지지 않는다.
- 모든 비프라이머리 속성이 기본 키에 직함수 종속을 가진다.
- 모든 속성이 원자값을 가진다.
=====
정답: 1, 3
설명: 제3정규형(3NF)은 모든 비프라이머리 속성이 기본 키에 직함수 종속을 가져야 하며, 이행적 함수 종속을 가지지 않아야 합니다. 1번과 3번이 이에 해당합니다.
1번: 제3정규형의 조건 중 하나로, 모든 비프라이머리 속성이 기본 키에 이행적 함수 종속을 가지지 않아야 합니다. 3번: 제3정규형의 또 다른 조건으로, 모든 비프라이머리 속성이 기본 키에 직함수 종속을 가져야 합니다.
SQL의 기본 및 응용 정답
2. 다음 중 주어진 SQL 쿼리 결과에 대한 설명으로 옳지 않은 것은?
SELECT name, salary
FROM employees
WHERE salary > 5000
ORDER BY name DESC;
- salary가 5000보다 큰 직원들의 이름과 급여를 조회한다.
- 결과는 이름의 내림차순으로 정렬된다.
- salary가 5000 이하인 직원들도 결과에 포함된다.
- 쿼리는 employees 테이블에서 데이터를 조회한다.
=====
정답: 3
설명: 3번이 옳지 않은 설명입니다. 쿼리에서 WHERE salary > 5000 조건에 의해 salary가 5000보다 큰 직원들만 조회되므로, salary가 5000 이하인 직원들은 결과에 포함되지 않습니다. 2번은 옳은 설명입니다. 쿼리의 ORDER BY name DESC 부분이 이름을 내림차순으로 정렬합니다.
3. 다음 SQL 쿼리의 결과를 설명하는 것으로 옳은 것은?
SELECT a.name, b.department_name
FROM employees a
JOIN departments b ON a.department_id = b.department_id;
- employees 테이블과 departments 테이블의 교집합을 조회한다.
- employees 테이블과 departments 테이블의 카테시안 곱을 조회한다.
- employees 테이블과 departments 테이블의 조인을 조회한다.
- employees 테이블의 모든 행과 departments 테이블의 일부 행을 조회한다.
=====
정답: 3
설명: 이 쿼리는 JOIN을 사용하여 employees 테이블과 departments 테이블을 조인합니다. 따라서 3번이 정답입니다. 교집합은 조인의 결과와 다릅니다. 조인은 두 테이블 간의 관계를 기반으로 데이터를 결합하는 반면, 교집합은 두 테이블에서 중복되는 데이터를 반환합니다.
4. 다음 SQL 쿼리에서 UNION 연산자를 사용할 때, 주의해야 할 점으로 옳지 않은 것은?
- 두 쿼리의 열 개수와 데이터 타입이 동일해야 한다.
- 결과 집합에서 중복 행이 제거된다.
- UNION ALL을 사용하면 중복 행이 제거되지 않는다.
- 결과 집합의 열 순서는 임의로 지정할 수 있다.
=====
정답: 4
설명: 4번이 옳지 않은 설명입니다. UNION 연산자를 사용할 때 결과 집합의 열 순서는 두 쿼리에서 지정한 순서대로 유지됩니다. 임의로 지정할 수 없습니다. 두 쿼리의 열 개수와 데이터 타입이 동일해야 합니다. 또한, UNION은 중복 행을 제거하며, UNION ALL은 중복 행을 제거하지 않습니다.
5. 다음 SQL 쿼리의 결과로 반환되는 값은?
SELECT COUNT(*), AVG(salary)
FROM employees
WHERE department_id = 10;
- department_id가 10인 직원의 수와 평균 급여를 반환한다.
- department_id가 10이 아닌 직원의 수와 평균 급여를 반환한다.
- department_id가 10인 직원의 수와 최대 급여를 반환한다.
- department_id가 10인 직원의 수와 총 급여를 반환한다.
=====
정답: 1
설명: 이 쿼리는 WHERE department_id = 10 조건에 의해 department_id가 10인 직원들에 대해 COUNT와 AVG 함수를 사용합니다. 따라서 1번, department_id가 10인 직원의 수와 평균 급여를 반환합니다.
3일차 문제 풀기 ★
[무료 SQLD 문제] 엔터티(Entity), 정규화, HAVING절, WHERE절, JOIN 함수 무료 SQLD 예상 문제 3일차
매일매일 푸는 SQLD 예상 문제 3일차 데이터 모델의 이해1. 다음 중 엔터티(Entity)에 대한 설명으로 옳지 않은 것은?엔터티는 고유의 식별자를 가지고 있어야 한다.엔터티는 물리적 객체만을 나타
darakbang-study.tistory.com
댓글