postgresql - FETCH부터 EQUI JOIN 까지

강신찬·2023년 5월 10일
0

FETCH

  • 행의 수 제한, 정렬 후 상위 n개의 행 추출 용도로 사용 가능
  • OREDER BY 뒤에 나열
OFFSET start {ROW|ROWS}오전 10:32 2023-05-10
FETCH {FIRST|NEXT} {갯수} {ROW|ROW}ONLY
  • ex) ....FETCH NEXT 5 ROW ONLY;

  • FIRST는 앞에서부터 몇 개의 행인지를, NEXT는 OFFSET에서 제외한 행을 의미한다.

  • OFFSET m FETCH n: 상위 m개 제외 후 n개 행 추출

    • ex) ... OFFSET 1 ROW FETCH NEXT 5 ROW ONLY;
SELECT order_id, order_date, customer_id, total_amount
FROM orders
ORDER BY order_date DESC
OFFSET 0 ROWS
FETCH FIRST 10 ROWS ONLY;
  • offset 구문은 시작할 행의 위치를 지정하는데 사용
  • fetch 구문은 추출할 행 수를 지정하는 데 사용
  • FETCH FIRST 10 ROWS ONLY => 첫 번째 10개의 행을 추출

JOIN

  • JOIN 연산의 목적
    • 서로 다른 두 테이블의 데이터 결합, 다른 테이블의 데이터 참조
  • CROSS JOIN, INNER JOIN(EQUI JOIN< NON EQUI JOIN), OUTER JOIN, NATURAL JOIN이 있다.
  • CROSS JOIN
    • 발생 가능한 모든 조건, 총 N*M개의 행 리턴
    • JOIN 조건을 생략하거나 부적합할 경우 출력되는 형태
    • ex) select ... from 테이블명 cross join 테이블명;
  • INNER JOIN
    • 조건에 만족하는 행만 출력, OUTER JOIN의 반대
    • EQUI JOIN
    • ex) select 테이블1.컬럼, 테이블2,컬럼 ... from 테이블1 join 테이블2 on(테이블1.컬럼 = 테이블2.컬럼);
    • NON EQUI JOIN은 '='이 아닌 다른 비교 연산자를 사용할 경우
  • OUTER JOIN
    • 조건에 만족되지 않는 행도 출력, INNER JOIN의 반대
  • NATURAL JOIN
    • 테이블의 컬럼명이 동일한 경우를 출력

ORDER BY

  • order by 절을 사용할 때 컬럼 명이 아니라 선택된 컬럼의 순서로도 정렬할 수 있다.
    • ex) ... ORDER BY 1,2;

null은 = 연산자를 사용하지 않는다.

출처: https://velog.io/@bacccine/PostgreSQL-1115%EA%B0%95%EA%B9%8C%EC%A7%80%EC%9D%98-%EB%82%B4%EC%9A%A9-%EC%A0%95%EB%A6%AC

profile
꾸준히 공부하는 백엔드 개발자

0개의 댓글

관련 채용 정보