SQLD 54~64번 문제 해설

0

SQLD 요약 정리

목록 보기
6/10

54, 55, 56. 함수 조합

  • MAX는 최대값을 도출한다.
  • GROUP BY는 해당 컬럼의 동일 값을 하나로 처리한다.
  • HAVING절은 그룹 조건에 조건을 추가한다.
SELECT MAX() AS,, SUM() ASFROM A
GROUP BYHAVING COUNT(*) > 1
ORDER BYDESC

해당 쿼리문은 다음과 같이 해석 가능하다.

  • A테이블에서 가 컬럼의 가장 큰 값을 가 라고 한다.
  • A테이블에서 나 컬럼을 선택한다.
  • A테이블에서 다 컬럼의 값을 합한 것을 다 라고 한다.
  • 해당 값에서 나컬럼으로 그룹화 한다.
  • 그룹화 한 것에서 2개 이상의 값만 도출한다.
  • 다를 기준 내림차순 정렬한다.

57, 58. ORDER BY

  • ORDER BY는 조회된 데이터의 정렬방식을 정해주는 함수이다.
  • DBMS마다 NULL 값에 대한 정렬 순서가 다르다.
    • MY-SQL은 오름차순이 NULL이 먼저 나온다.
    • Oracle은 내림차순이 먼저 나오는데, NULLS FIRST, NULLS LAST를 사용하여 지정할 수 있다.
  • Alias(별칭 as로 지정된 컬럼명)과 컬럼순서를 나타내는 정수로도 사용이 가능하고 혼용할 수 있다.
  • GROUP BY절을 사용하는 경우 ORDER BY절에 집계 함수를 사용할 수 있다.
  • CASE문을 이용해서 정렬이 가능하며 두 가지 조건 이상을 앞 순이 우선적으로 적용되게 할 수 있다.
  • 기본값은 ASC(오름차순)이다. 작은 순이다.

59. SELECT 문장의 실행 순서

SELECT문의 실행 순서는 다음과 같다.
FROM - ON - JOIN - WHERE - GROUP BY - HAVING - SELECT - DISTINCT - ORDER BY
FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY 로 많이 출제된다.
쿼리문의 문법 순서는 다음과 같다.
SELECT - FROM - WHERE - GROUP BY - HAVING - ORDER BY


60. 조건에 맞는 쿼리문

  • 순위를 나타내는 명령어는 ROWNUM이 있다.
  • 동일 순위를 나타내는 명령어는 WITH TIES옵션을 추가해야한다.
  • TOP(숫자)는 해당 숫자 순위까지 출력한다.
  • TOP 숫자PERCENT * 는 전체에서 상위 숫자%의 값을 출력한다.

61, 62. JOIN

  • JOIN은 테이블 수-1 만큼의 JOIN을 해야 해당 테이블 수 만큼의 컬럼을 조회할 수 있다.
  • JOIN시 같은 컬럼이 존재한다면 앞에 테이블명을 명시해주어야 한다.
    예) EMP.SAL, DEPT.ENAME 등

63.EQUI JOIN,

  • 일반적으로 JOIN은 PK와 FK의 연관성에 의해 성립한다.
  • DBMS 옵티마이저는 From 절에 나열된 테이블이 아무리 많아도 항상 2개의 테이블씩 짝을 지어
    Join을 수행한다.
  • EQUI JOIN은 JOIN에 관여하는 테이블 간의 컬럼값이 정확하게 일치하는 경우 사용한다.
  • EQUI JOIN은 '=' 연산자에 의해서만 수행되며, 그 이외의 비교 연산자를 사용하는 경우에는 모두 NON EQUI JOIN이다.
  • 대부분 NON EQUI JOIN을 수행할 수 있지만, 때로는 설계상의 이유로 수행이 불가능한 경우도 있다.

64. LIKE

  • %이 어디에 있는지에 따라 값이 달라진다.
  • (특정값)% 의 경우 특정값이 제일 먼저 있는 것을 조회한다.
  • %(특정값)% 의 경우 특정값이 포함된 데이터를 조회한다.
  • %(특정값)의 경우 특정값이 맨 뒤에 있는 것을 조회한다.

중복 조회도 가능하며 조건이 맞을 경우에는 중복 출력도 가능하다.

SQLD 기본 데이터 문제가 끝났다! 내일은 데이터 모델링에 대한 정리를 하려고 한다.

profile
비전공자 개발초보입니다!

0개의 댓글