수업 일지

9주차 정리

cort53 2025. 2. 15. 22:12

 

📌JOIN

1️⃣ 정의

두 개 이상의 테이블을 공통된 컬럼을 기준으로 연결하여 데이터를 조회하는 방법.

2️⃣ 종류:

  • INNER JOIN: 두 테이블 모두에 존재하는 공통된 데이터만 조회.
  • LEFT JOIN: 왼쪽 테이블의 모든 데이터를 가져오고, 오른쪽 테이블과 일치하는 데이터가 없으면 NULL로 표시.
  • RIGHT JOIN: 오른쪽 테이블의 모든 데이터를 가져오고, 왼쪽 테이블과 일치하는 데이터가 없으면 NULL로 표시.
  • FULL OUTER JOIN: 양쪽 테이블의 모든 데이터를 가져오며, 일치하지 않는 경우 NULL로 표시.

사용 이유:

여러 테이블에 분산된 데이터를 하나의 결과로 통합하여 조회할 수 있음.

 

 예시  :

customers 테이블과 orders 테이블을 customer_id를 기준으로 연결하여 고객의 주문 정보를 조회.


 

 

 

SQL Index, View, Trigger 개념 정리

📌 INDEX

1️⃣ 정의

데이터를 읽어올 때 속도를 빠르게 하기 위한 기능.

2️⃣ 장점

데이터 조회(READ) 속도가 빨라짐.

3️⃣단점

삽입(INSERT), 수정(UPDATE), 삭제(DELETE) 속도가 느려짐.

추가적인 저장공간을 약 10% 정도 더 사용.

 

4️⃣특징:

테이블의 컬럼 단위로 설정 가능하며, 여러 개의 컬럼에도 인덱스를 설정할 수 있음.


📌 VIEW

1️⃣정의

가상의 테이블로, 실제 데이터를 저장하지 않음.

2️⃣사용 이유

복잡한 쿼리를 단순하게 변환하여 관리 및 조회를 쉽게 하기 위함.

3️⃣특징

직접적으로 데이터의 수정, 변경이 불가능함.

실제 테이블의 데이터를 기반으로 동작하지만, 독립적인 데이터 저장은 이루어지지 않음.


📌 TRIGGER

1️⃣정의

특정 테이블에서 쿼리가 실행될 때, 미리 작성해 놓은 쿼리가 자동으로 실행되도록 하는 기능.

2️⃣사용 이유

데이터 변경 시 자동으로 로직 실행 (예: 데이터 백업, 로그 기록).

 

3️⃣효과

데이터를 1차적으로 백업하는 효과가 있음.

 

 

예시 

  • 자동 실행: 특정 테이블(city)에서 DELETE 쿼리가 실행되면, 삭제된 데이터를 백업 테이블로 자동저장 

  • 수동실행

 


TRIGGER 작성 방법

구문 구조

 

DELIMITER:

기본적으로 SQL 쿼리는 세미콜론(;)으로 끝나지만, 트리거 작성 시 중간에 세미콜론을 사용하기 때문에 DELIMITER를 변경하여 구문 오류를 방지함.