데이터베이스/데이터베이스 기초

Join

kimjy 2022. 3. 5. 22:37

Cross Join

  • 모든 경우의 수를 보여주는 Join
SELECT * FROM customers, cars

 

Inner Join

  • 두 테이블 조건절을 통해 일치하는 경우에만 Join 실행
SELECT * FROM customers, cars WHERE customers.id = cars.customer_id

혹은

SELECT * FROM customers INNER JOIN cars ON customers.id = cars.customer_id

혹은

SELECT * 
FROM customers AS a, cars AS B 
WHERE a.id = b.customer_id

 

Outer Join

  • 조건에 해당하지 않는 결과라도 조회가 가능하도록 JOIN 처리
  • 조건에 해당하지 않는 열값은 Null 처리됨
SELECT * 
FROM customers AS a 
LEFT OUTER JOIN cars AS b 
ON a.id = b.customer_id

Right outer join은

SELECT * 
FROM customers AS a 
RIGHT OUTER JOIN cars AS b 
ON a.id = b.customer_id

 

Join update/Delete

  • Join된 table에서 데이터를 수정하거나 삭제하고 싶을 때

update는

UPDATE cars
SET price = 1000000
FROM customer AS a
INNER JOIN price AS b
    ON a.id = b.customer_id
WHERE a.name = '홍길동'

delete는

DELETE cars
FROM customer AS a
INNER JOIN cars AS b
    ON a.id = b.customer_id
WHERE a.name = '홍길동'

 

그런데, 여기서 다룬 예제 코드는 MSSQL에서만 작동할 가능성이 크다.. 이런.. 혹여 다른 RDBMS를 사용할 때에는 주의깊게 사용하여야 할 필요가 있다..

'데이터베이스 > 데이터베이스 기초' 카테고리의 다른 글

트랜잭션  (0) 2022.03.07
서브쿼리  (0) 2022.03.07
기본적인 쿼리문  (0) 2022.02.23
개요(데이터베이스를 공부하기로 시작한 이유)  (0) 2022.02.14