정답이 있는 데이터베이스와 SQL 학습지

무료 인쇄용 데이터베이스와 SQL 학습지: 쉬운 문제부터 시험 수준까지 8문제, 정답표 포함. 인쇄하거나 PDF로 저장하세요.

교수자 안내: 수업에서 무료로 인쇄, 복사, 사용할 수 있습니다. 새 워크시트마다 값이 새로 바뀌고 별도의 정답이 함께 제공됩니다. 강의 페이지에 ExamProblems 링크를 걸어 주시면 감사하겠습니다.

이름: ____________________   날짜: ____________

1.쉬움

UNION은 두 SELECT 쿼리의 결과에 무엇을 합니까?

  1. A첫 번째 쿼리에는 나타나지만 두 번째에는 나타나지 않는 행만 남긴다
  2. B양쪽에 모두 나타나는 행만 남긴다
  3. C키를 기준으로 옆으로 나란히 조인한다
  4. D하나의 결과로 합치고 중복 행을 제거한다
2.쉬움

GRANT와 REVOKE는 SQL의 어느 부분에 속합니까?

  1. A데이터 조작어(DML)
  2. B데이터 제어어(DCL)
  3. C데이터 정의어(DDL)
  4. D데이터 질의어(DQL)
3.쉬움

WHERE country IN ('NL', 'BE', 'DE')는 무엇을 합니까?

  1. Acountry가 목록의 값 중 하나와 같은 행을 남긴다
  2. B목록 순서대로 행을 정렬한다
  3. Ccountry가 목록에 없는 행을 남긴다
  4. Dcountry 값이 세 코드를 모두 한꺼번에 포함하는 행을 남긴다
4.보통

WHERE 절에 일치하는 행이 없을 때 SELECT SUM(amount) FROM orders는 무엇을 반환합니까?

  1. ANULL
  2. B0
  3. C오류
  4. D빈 문자열
5.보통

부서마다 가장 높은 급여를 반환하는 쿼리는 무엇입니까?

  1. ASELECT dept, MAX(salary) FROM emp ORDER BY dept
  2. BSELECT MAX(dept), salary FROM emp GROUP BY salary
  3. CSELECT dept, MAX(salary) FROM emp GROUP BY dept
  4. DSELECT dept, salary FROM emp WHERE salary = MAX(salary)
6.보통

한 번도 주문하지 않은 고객을 나열하는 쿼리는 무엇입니까?

  1. ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
  2. BSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
  3. CSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  4. 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)를 사용하는 이유는 무엇입니까?

  1. ACOUNT(*)는 조인 후에 사용할 수 없기 때문에
  2. BCOUNT(*)는 NULL 값이 있는 행을 무시하기 때문에
  3. CCOUNT(*)는 주문이 없는 고객의 NULL로 채워진 행을 1로 세기 때문에
  4. DCOUNT(o.id)는 서로 다른 고객만 세기 때문에
8.어려움

SELECT day, SUM(amount) OVER (ORDER BY day) FROM sales는 무엇을 계산합니까?

  1. A그날의 합계만 담은 날짜별 한 행
  2. B날짜별 평균 amount
  3. C모든 행에 대해 전체 amount의 합계
  4. Dday 순서로 정렬한 amount의 누적 합계

정답표

  1. 1. D · 하나의 결과로 합치고 중복 행을 제거한다
  2. 2. B · 데이터 제어어(DCL)
  3. 3. A · country가 목록의 값 중 하나와 같은 행을 남긴다
  4. 4. A · NULL
  5. 5. C · SELECT dept, MAX(salary) FROM emp GROUP BY dept
  6. 6. D · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  7. 7. C · COUNT(*)는 주문이 없는 고객의 NULL로 채워진 행을 1로 세기 때문에
  8. 8. D · day 순서로 정렬한 amount의 누적 합계

자세한 단계별 풀이: examproblems.com에서 이 주제를 연습하세요.