1.쉬움
UNION은 두 SELECT 쿼리의 결과에 무엇을 합니까?
- A첫 번째 쿼리에는 나타나지만 두 번째에는 나타나지 않는 행만 남긴다
- B양쪽에 모두 나타나는 행만 남긴다
- C키를 기준으로 옆으로 나란히 조인한다
- D하나의 결과로 합치고 중복 행을 제거한다
2.쉬움
GRANT와 REVOKE는 SQL의 어느 부분에 속합니까?
- A데이터 조작어(DML)
- B데이터 제어어(DCL)
- C데이터 정의어(DDL)
- D데이터 질의어(DQL)
3.쉬움
WHERE country IN ('NL', 'BE', 'DE')는 무엇을 합니까?
- Acountry가 목록의 값 중 하나와 같은 행을 남긴다
- B목록 순서대로 행을 정렬한다
- Ccountry가 목록에 없는 행을 남긴다
- Dcountry 값이 세 코드를 모두 한꺼번에 포함하는 행을 남긴다
4.보통
WHERE 절에 일치하는 행이 없을 때 SELECT SUM(amount) FROM orders는 무엇을 반환합니까?
- ANULL
- B0
- C오류
- D빈 문자열
5.보통
부서마다 가장 높은 급여를 반환하는 쿼리는 무엇입니까?
- ASELECT dept, MAX(salary) FROM emp ORDER BY dept
- BSELECT MAX(dept), salary FROM emp GROUP BY salary
- CSELECT dept, MAX(salary) FROM emp GROUP BY dept
- DSELECT dept, salary FROM emp WHERE salary = MAX(salary)
6.보통
한 번도 주문하지 않은 고객을 나열하는 쿼리는 무엇입니까?
- ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
- BSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
- CSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
7.어려움
customers LEFT JOIN orders 후에 고객별 주문 수를 셀 때 COUNT(*) 대신 COUNT(o.id)를 사용하는 이유는 무엇입니까?
- ACOUNT(*)는 조인 후에 사용할 수 없기 때문에
- BCOUNT(*)는 NULL 값이 있는 행을 무시하기 때문에
- CCOUNT(*)는 주문이 없는 고객의 NULL로 채워진 행을 1로 세기 때문에
- DCOUNT(o.id)는 서로 다른 고객만 세기 때문에
8.어려움
SELECT day, SUM(amount) OVER (ORDER BY day) FROM sales는 무엇을 계산합니까?
- A그날의 합계만 담은 날짜별 한 행
- B날짜별 평균 amount
- C모든 행에 대해 전체 amount의 합계
- Dday 순서로 정렬한 amount의 누적 합계
정답표
- 1. D · 하나의 결과로 합치고 중복 행을 제거한다
- 2. B · 데이터 제어어(DCL)
- 3. A · country가 목록의 값 중 하나와 같은 행을 남긴다
- 4. A · NULL
- 5. C · SELECT dept, MAX(salary) FROM emp GROUP BY dept
- 6. D · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- 7. C · COUNT(*)는 주문이 없는 고객의 NULL로 채워진 행을 1로 세기 때문에
- 8. D · day 순서로 정렬한 amount의 누적 합계
자세한 단계별 풀이: examproblems.com에서 이 주제를 연습하세요.