24.10.02(UPDATE, OUTER JOIN)

jiiiiiiiArchive.·2024년 10월 2일

🤯지식주머니🤯

목록 보기
32/98
post-thumbnail

UPDATE문

  • DML 중 하나
  • 테이블의 데이터를 수정할 때 사용
  • 기본 형식
UPDATE table_name -- 업데이트 할 테이블 이름
SET column1 = value1, column2 = value2, ... -- 수정할 열과 값 지정
WHERE condition; -- 수정할 행을 제한하는 조건 지정

외부 조인(Outer Join)

  • 두 테이블 간의 관계를 기반으로 데이터 조회 시 조건에 맞지 않는 행도 포함하여 조회
  • 데이터가 누락되었을 때에도 특정 테이블의 데이터를 유지하면서 조회 가능
  • 종류
    • LEFT (OUTER) JOIN
    • RIGHT (OUTER) JOIN
    • FULL OUTER JOIN
  • LEFT OUTER JOIN
    • 왼쪽 테이블에 있는 모든 행을 가져오며 오른쪽 테이블에서 일치하는 데이터가 없으면 NULL 반환
    • 예시 : employees 테이블 - 직원 정보 저장, departments 테이블 - 부서 정보 저장
      - employees 테이블

      - departments 테이블

      - 결과 : LEFT JOIN은 employees 테이블의 모든 데이터를 반환하고, departments 테이블에서 일치하는 데이터가 없으면 NULL을 반환

      - 실행 코드
SELECT e.employee_id, e.first_name, d.department_name
FROM employees e
LEFT JOIN departments d ON e.department_id = d.department_id;

UPDATE와 JOIN 사용 예시

  • 조인을 사용하면 여러 테이블의 데이터를 비교해 특정 조건에 맞는 데이터만 업데이트 가능
  • 일반적으로 INNER JOIN, LEFT JOIN 등을 사용해 두 개 이상의 테이블 연결
  • 예시
    • 시나리오 : 부서명이 'Sales'인 부서에 속한 직원의 급여를 10% 인상하려고 한다.
    • employees 테이블 : 직원 정보를 저장
    • departments 테이블 : 부서 정보를 저장
    • 업데이트 후 employees 테이블
    • 실행 코드
  -- 테이블의 별칭을 e로 지정하여 테이블 업데이트
  UPDATE employees e
  
  -- employees 테이블과 departments 테이블을 department_id를 기준으로 조인
  -- departments 테이블의 별칭은 d
  INNER JOIN departments d ON e.department_id = d.department_id

  -- employees 테이블에서 salary의 값을 10% 인상
  SET e.salary = e.salary * 1.1

  -- 부서명이 'Sales'인 직원만 업데이트
  WHERE d.department_name = 'Sales';
profile
이것저것 다 적는 기록장📚

0개의 댓글