♣ SQL

◆ 외래키(Foreign Key)

  • 회원 ID를 참조하도록 설정
  • 자바에서는 DB의 외래키와 상관없이 코드 작성 방법은 기존과 동일하다.
    1. 존재하지 않는 회원 ID를 추가하지 않도록 설정할 수 있다.
      - 컬럼명 REFERENCES 테이블(대상 컬럼명)
    1. 회원 탈퇴 시 게시글의 처리 여부를 설정할 수 있다.
      - ON DELETE CASCADE로 작성하면 회원 탈퇴 시 연결된 글이 모두 삭제된다.
      - ON DELETE SET NULL로 작성하면 회원 탈퇴 시 연결된 글의 작성자가 NULL로 변경된다.

0210.게시판.sql

◆ View

  • 공지사항을 상단에 조회하고 나머지를 하단에 위치하도록 조회
  • 서로 다른 두 개의 조회 구문을 사용한 뒤 결과를 합침(집합연산)
  • UNION ALL - 합집합
  • UNION DISTINCT - 합집합에서 중복제거
  • INTERSECT -교집합
  • MINUS - 차집합

14.View.sql

◆ 테이블 조인(Table Join)

  • 분리되어 있는 테이블을 특정 기준에 의해서 합치는 것
  • 합칠 때의 기준이 있어야 한다.
  • 연관이 있는 테이블을 합쳐야 한다.

◆ INNER JOIN

  • 연결된 데이터만 조회가 가능하다.

  • 구문 : SELECT 항목 FROM A테이블 INNER JOIN B테이블 ON 연결조건

  • (주의!) 중복되는 컬럼명을 제거하거나 별칭으로 변경해야 한다.

  • 데이터가 있을 경우에만 사용한다.

  • 퀴즈 : 게시글 조회 시 회원 닉네임을 같이 조회

  • (문제점) 회원이 탈퇴하여 작성자가 NULL이 되면 조회가 이루어지지 않는다.

  • (해결책) OUTER JOIN을 사용 (없는 경우를 조회할 경우) VS INNER JOIN은 반드시 있는 데이터일 경우 사용

SELECT B.*, M.MEMBER_NICK
FROM BOARD B INNER JOIN MEMBER M
ON B.BOARD_WRITER = M.MEMBER_ID;

◆ OUTER JOIN

  • 특정 테이블은 전부 조회
  • 기준(방향)이 필요
  • 상하관계일 때 주로 사용한다.
  • 데이터가 없을 수 있을 경우 사용한다.
  • 특정 테이블을 기준으로 하여 연관된 데이터를 합쳐 조회한다.
  • 기준 테이블이 어느 위치에 있느냐에 따라 방향이 결정된다.
  • A ← B면 A LEFT OUTER JOIN B
  • A → B 면 A RIGHT OUTER JOIN B
  • A ↔ B 면 A FULL OUTER JOIN B
  • 기준 테이블은 연관 데이터가 없어도 모두 조회가 된다.
  • COUNT는 와일드카드(*)를 사용하지 않는다.
    - GROUP BY를 같이 작성해주어야 한다.
  • GROUP BY는 와일드카드(*)를 사용할 수 없다.

15.테이블조인.sql

◆ Dual

  • 오라클에서 임시 작업을 수행하기 위한 테이블이다. (임시 테이블)
  • 임시테이블을 생성해서 해당 컬럼을 한 줄 출력하고 싶을 때 사용한다.
  • 게시글 등록까지는 기존과 같으나 등록 이후에 이동해야 하는 페이지에서 번호를 필요로 한다.
  • 밖에서는 시퀀스가 몇 번인지 알지 못하므로 시퀀스 생성 후 등록하도록 처리한다.
    (기존)
    시퀀스를 등록 과정에서 생성
    (변경)
    시퀀스 생성 후 등록하도록 처리
    SELECT BOARD_SEQ.NEXTVAL FROM DUAL;

2010.게시판.sql

profile
Backend Developer

0개의 댓글