OracleDB 문법

정하윤·2023년 6월 7일
0

JOIN

  • 여러 테이블을 연결해서 만드는 임시 테이블

  • 실습용 샘플 데이터 생성

CREATE TABLE mem
(
	id	NUMBER,
	name VARCHAR2(20)
);
CREATE TABLE item
(
	item_id NUMBER,
	item_name	VARCHAR(20)
);
INSERT INTO MEM
VALUES (1, '철수');
INSERT INTO MEM
VALUES (2, '영희');
INSERT INTO MEM
VALUES (3, '지민');
VALUES (1, '커피');
INSERT INTO item
VALUES (3, '케이크');
INSERT INTO item
VALUES (4, '피자');

inner join

  • join조건을 만족하는 행들만 결과로 출력하는 JOIN 방식

ON절을 사용한 JOIN

SELECT
	*
FROM
	mem
JOIN item ON
	mem.id = item.item_id;

ID|NAME |ITEM_ID|ITEM_NAME |
--+------+-------+------------+
1|철수 | 1|커피 |
3|지민 | 3|케이크 |
위의 경우 2번 회원과 4번 메뉴는 연결 될 행이 없어서 결과에서 출력되지 않는다.

SELECT
	*
FROM
	mem, item;

ID|NAME|ITEM_ID|ITEM_NAME|
--+----+-------+---------+
1|철수 | 4|피자 |
1|철수 | 1|커피 |
1|철수 | 3|케이크 |
2|영희 | 4|피자 |
2|영희 | 1|커피 |
2|영희 | 3|케이크 |
3|지민 | 4|피자 |
3|지민 | 1|커피 |
3|지민 | 3|케이크 |

SELECT
	*
FROM
	mem, item
WHERE
	id = item_id;

ID|NAME |ITEM_ID|ITEM_NAME |
--+------+-------+------------+
1|철수 | 1|커피 |
3|지민 | 3|케이크 |

outer join

  • JOIN 조건을 만족하지 않는 값들을 NULL 값과 연결하여 출력해주는 문법

left outer join

  • JOIN 시 JOIN 키워드의 왼쪽 테이블의 모든 행을 출력
  • 연결 될 행이 없는 경우 NULL의 행과 JOIN되어 출력된다.
SELECT id, name, item_name "주문상품"
FROM mem LEFT OUTER JOIN item
ON id = item_id;

ID|NAME |주문상품 |
--+------+---------+
1|철수 |커피 |
3|지민 |케이크 |
2|영희 | NULL |

  • 영희는 주문한 상품이 없으므로 NULL과 JOIN되어 출력되었음.

0개의 댓글

관련 채용 정보