조인과 다중테이블 연산
1) 다중 테이블이란
다중 테이블이란 데이터베이스에 테이블이 하나 이상 존재하는걸 말한다.
* 다중테이블에서 원하는 데이터들을 모두 얻으려 할 때에는,
조인을 사용하여 테이블을 연결하면 많은 도움이 된다.
2) 카티션 조인
내부 조인의 한 형태, 크로스 조인이라고도 한다.
- 한 테이블의 모든 행과 다른 테이블의 모든행을 짝지어 반환한다.
- 내부 조인은 쿼리의 조건에 따라 일부 결과 행이 제거된 크로스 조인이다.
- 내부조인의 종류로는 동등조인, 비 동등조인, 자연조인이 있다.
3) 동등 조인
같은지를 테스트하는 내부조인
ON 이나 Where절을 이용하여 '=' 연산자를 이용하여 결과 테이블을 도출해 낸다.
4) 비동등 조인
동등조인과 반대로 같지않은 모든 행들을 반환합니다.
표현은 ON, Where 절에 '<>' 를 사용합니다.
5) 자연조인
"두 테이블에 같은 이름의 열"이 있을 때에만 동작합니다.
표현은 Select Table1.컬럼명, Table2.컬럼명 From Table1 "Natural Join" Table2;
서브쿼리
1) 서브쿼리
서브쿼리는 쿼리안의 쿼리이므로 "내부 쿼리"라고도 한다.
바깥쪽 쿼리를 "외부 쿼리"라 합니다.
- 데이터베이스에 하나 이상의 질문을 해야 할때 쿼리안의 쿼리, 서브쿼리를 사용합니다.
- 서브쿼리를 사용하면 데이터의 중복을 피할 수 있고, 쿼리를 좀 더 동적으로 사용 가능합니다.
- 서브쿼리는 비상관 서브쿼리와 상관 서브쿼리가 있습니다.
2) 비상관 서브쿼리
외부쿼리의 어떤 것도 참조하지 않고 단독으로 사용되는 것을 말합니다.
비상관 서브쿼리는 IN, NOT IN을 사용하여 값이 서브쿼리에서 반환된 집합의 원소인지를 확인합니다.
3) 상관 서브쿼리
내부쿼리의 값이 결정되는데 외부쿼리에 의존하는 것을 말한다.
EXISTS, NOT EXISTS를 사용합니다.
외부 조인
1) 외부 조인
외부조인은 조인되는 테이블 중 하나의 모든 행을 다중 테이블에서 일치하는 정보와 함께 반환됩니다.
- 내부 조인과 다른 점은 외부조인의 결과가 NULL 값이면 Null을 반환한다는 것입니다.
- 외부조인에는 왼쪽 외부조인과, 오른쪽 외부조인이 있으면, 그 차이는 FROM 뒤에 테이블이 나오는 순서에 따라 달라집니다.
2) 셀프 조인
셀프 조인이란 자기 자신의 테이블을 참조하는 것
마치 같은 정보를 가진 테이블이 2개 있는 것 처럼 쿼리를 내보낼 수 있다.
서브쿼리와 조인의 차이
1. 둘다 바꿔서 사용할 수 있다.
2. 조인은 결과에 여러 테이블의 열이 필요할 때 사용한다.
3. 서브쿼리는 집계 값을 다룰 때 더 유용하게 사용할 수 있다.
'DataBase > Mysql' 카테고리의 다른 글
Mysql Workbench로 import/ export 하기 (데이터 내보내기, 데이터 가져오기) (0) | 2021.07.22 |
---|---|
Python 이용하여 Mysql에서 Json 데이터 Insert하기 (json 데이터 삽입) (3) | 2021.05.18 |
[MySQL]"DB" 제약 조건, 뷰, 트랜젝션 (0) | 2021.05.07 |
[MySQL] "DB" SQL 이란 (0) | 2021.05.07 |
[MySQL] "DB" 관계대수와 SQL (0) | 2021.05.07 |