반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- jquery
- 환경설정
- html
- regex
- Selector
- SQL
- 참조타입
- 알고리즘
- jsp
- jdbc
- mybatis
- 자바
- controller
- JavaScript
- String
- scope
- jar
- 정규화표현식
- 개선
- for문
- extends
- java
- 형변환
- iBATIS
- JCF
- DB
- 자바스크립트
- interface
- 자료구조
- Set
Archives
- Today
- Total
프로그래밍공부노트
Day 22 - DB(JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN(ORACLE DB만) 본문
반응형
57. 조인(Join)
정규화 하면 수정 삭제 입력에는 성능이 확실히 좋아지지만 SELECT에서는 살짝 떨어질 수도 있음
선행테이블이 무엇이냐가 중요
--INNER JOIN
SELECT *
FROM T1 t1, T2 t2
WHERE t1.GROUP = t2.GROUP;
SELECT *
FROM T1 t1 JOIN T2 t2
ON t1.GROUP = t2.GROUP;
--LEFT OUTER JOIN
SELECT *
FROM T1 t1, T2 t2
WHERE t1.GROUP = t2.GROUP(+);
SELECT *
FROM T1 t1 LEFT JOIN T2 t2
ON t1.GROUP = t2.GROUP;
--RIHGT OUTER JOIN
SELECT *
FROM T2 t2, T1 t1
WHERE t1.GROUP = t2.GROUP(+);
SELECT *
FROM T1 t1 RIGHT JOIN T2 t2
ON t1.GROUP = t2.GROUP;
-- FULL OUTER JOIN -- (ORACLE에만 있는 문법, 다른 DB에서는 SET OPERATION UNION)
SELECT *
FROM T1 t1 FULL JOIN T2 t2
ON t1.GROUP = t2.GROUP;
-- CROSS JOIN (Cartessian Product)
SELECT *
FROM T1 t1, T2 t2;
SELECT *
FROM T1 t1 CROSS JOIN T2 t2;
위의 JOIN을 아래의 문법을 사용해서 표현한다면
JOIN문법에서 사용되는 특수 문법
SELECT *
FROM T1 t JOIN T2 t2
ON t."GROUP" = t2."GROUP" ;
-- USING은 하나로만 출력
-- ORA-25154: column part of USING clause cannot have qualifie
-- 따라서 컬럼 혹은 ALIAS의 명은 사용하면 안된다
SELECT t."GROUP"
FROM T1 t JOIN T2 t2
USING ("GROUP")
WHERE ID = 'G01';
1) USING(컬럼)
- JOIN의 결과는 테이블이 같은 키값으로 생성, 같은 컬럼이 두번 나오게 됨, 컬럼의 순서가 출력되는 순서와 같음
- USING을 사용하면 중복되는 컬럼은 한번 나오고, 맨 앞에 위치 -> AMBIGUOUSLY
SELECT *
FROM T1 t JOIN T2 t2
USING ("GROUP");
2) NATURAL JOIN
- 자동으로 JOIN의 컬럼을 선택해서 JOIN을 진행해 줌
- 컬럼명이 같고 타입과 크기가 같으면 모두 대상으로 인식
-- 모든 JOIN 조건이 맞다면 조인의 대상으로 하는 NATURAL JOIN
SELECT *
FROM T1 t NATURAL JOIN T2 t2;
CTAS CREATE TABLE AS SELECT
-- CTAS 문법 CREATE TABLE AS SELECT AS뒤에 SELECT절을 테이블로 만든다
-- 제약조건이 다 사라지고 NOT NULL만 남음, 값을 모두 복사하고, 타입(크기)도 복사
반응형
'DB' 카테고리의 다른 글
SQL DETERMINISTIC 선언 활용 (1) | 2024.07.22 |
---|---|
Day 20 - DB( ROWNUM, CEIL, FLOOR, NULL, 공집합, 명시적 변환, 암시적 변환) (0) | 2021.03.11 |
Day 19 - DB(CREATE, ALTER, INSERT, DELETE) (0) | 2021.03.09 |
Day 18 - DB(DB 구조, 제약조건, SELECT) (0) | 2021.03.08 |
Day 17 - DB(서버, DB, Tomcat, Oracle,dbeaver) (0) | 2021.03.05 |