일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- progressive web app
- 오라클
- 프로그레시브웹앱
- javascript
- HTML
- 자바스크립트
- sqldeveloper
- TIL
- sql
- 서브쿼리
- 자바프로그래밍
- 메이븐
- tdd
- PWA
- SpringMVC
- 국비지원
- springaop
- 스프링
- mybatis
- TodayILearned
- maven
- JavaScript 내장객체
- web
- framework
- CSS
- javaprogramming
- js
- 프레임워크
- Oracle
- 생활코딩
- Today
- Total
1cm
자바 프로그래밍_Day_32_JOIN문(2), 서브쿼리(SUBQUERY) 본문
2021. 10. 04
> 교차 조인 (CROSS JOIN)
-> 카테시안 곱(Cartesian Product) 라고도 하며, 조인되는 테이블의 각 행들이 모두 매핑된 데이터가 검색되는 조인 방법이다.
-> 검색되는 데이터 수는 '행의 컬럼 수 * 또 다른 행의 컬럼 수'로 나온다
-> 집합의 곱셈이라고 생각하면 된다.
> 비등가 조인(NON_EQUAL JOIN)
-> 지정한 컬럼 값이 일치하는 경우가 아닌 값의 범위에 포함되는 행들을 연결하는 방식
-> 등호를 사용하지 않는 모든 조인문 = 비등가 조인 : >, <, >=, <=, BETWEEN AND, IN, NOT IN 등을 사용한다.
> 자체조인 (SELF JOIN)
-> 두 개 이상의 서로 다른 테이블을 연결하는 것이 아닌 같은 테이블을 조인하는 것
-> 같은 테이블에 두 개의 별칭을 사용하여 자체 조인(SELF JOIN)을 만들어 줄 수 있다.
> 다중 JOIN
-> 하나 이상의 테이블에서 데이터를 조회하기 위해 사용하고, 수행 결과는 하나의 Result Set으로 나옴
> 다중 조인 실습문제
-> E.SALARY만 비등가 조인으로 가져와도 된다.
-> NON_EQUAL_JOIN 활용
> 종합 실습 문제
-> SUBSTR (E.EMP_NO, 1, 1) = '7' 대신에 E.EMP_NO LIKE '7%'로도 사용이 가능하다.
-> 주민등록번호에서 SUBSTR을 사용하여 값을 잘라온다.
-> 오라클 구문에서는 양쪽 다 (+)연산자를 붙여줄 수 없기 때문에 D.DEPT_ID, L.LOCAL_CODE에 (+)연산자를 붙여줌으로써 원하는 값을 출력할 수 있었다.
-> ANSI 구문 : JOIN된 결과에 또 JOIN을 해주게 되는데, 그냥 JOIN만 쓰게 되면 INNER JOIN이 되므로 부서코드 없는 애들이 제외되어 출력된다. -> 그러므로 JOIN된 결과에 다시 OUTER JOIN을 만들어 줌으로써 부서 코드가 없는 사원도 출력이 될 수 있도록 만들어줘야 한다.
-> 급여 등급(SAL_LEVEL)은 CASE문을 활용해 분류 해줄 수 있었다.
> 서브쿼리 (SUBQUERY)
-> SELECT 문장 안에 포함된 또 다른 SELECT 문장으로 메인 쿼리가 실행되기 전 한 번만 실행된다.
-> 비교 연산자의 오른쪽에 기술해야 하며, 반드시 괄호로 묶어야 한다.
-> 서브쿼리와 비교할 항목은 반드시 서브쿼리의 SELECT한 항목의 개수와 자료형이 일치해야 한다.
-> WHERE절에서는 ORDER BY절을 쓸 수 없기 때문에 결과 값에서 ORDER BY 처리를 해줘야 한다.
> 서브쿼리 (SUBQUERY) 유형
-> 1. 단일행 서브쿼리 : 서브쿼리의 조회 결과 값의 1개인 서브쿼리
-> 2. 다중행 서브쿼리 : 서브쿼리의 조회 결과 값의 행이 여러 개인 서브쿼리
-> 3. 다중열 서브쿼리 : 서브쿼리의 조회 결과 컬럼의 개수가 여러 개인 서브쿼리
-> 4. 다중행 다중열 서브쿼리 : 서브쿼리의 조회 결과 컬럼의 개수와 행의 개수가 여러 개인 서브쿼리
-> 5. 상(호연)관 서브쿼리 : 서브쿼리가 만든 결과 값을 메인 쿼리가 비교 연산할 때, 메인 쿼리 테이블의 값이 변경되면 서브쿼리의 결과 값도 바뀌는 서브쿼리
-> 6. 스칼라 서브쿼리 : 상(호연)관 서브쿼리이면서 결과 값이 1개인 서브쿼리(단일행)
> 단일행 서브쿼리(Single-Row SubQuery)
-> 서브쿼리의 조회 결과값의 개수가 1개일 때, 단일행 서브쿼리 앞에는 일반 연산자를 사용 (<, >, <=, >=, =, !=/<>/^= (서브쿼리))
-> 1) 서브쿼리로 사용할 데이터1 조회 -> 2) 데이터 1이 가지고 있는 값을 동일하게 갖고 있는 데이터를 조회
-> 3) DEPT_CODE(조회하고자 하는 조건)가 서브쿼리와 동일한(=) 데이터 조회
-> WHERE SALARY < ROUND로 해도 정상적으로 조회가 가능하다.
'국비지원_Java > Java Programming_1' 카테고리의 다른 글
자바 프로그래밍_Day_34_DDL(CREATE) (0) | 2021.10.10 |
---|---|
자바 프로그래밍_Day_33_서브쿼리(SUBQUERY)(2) (0) | 2021.10.10 |
자바 프로그래밍_Day_31_JOIN문 (0) | 2021.10.09 |
자바 프로그래밍_Day_30_데이터베이스 구현 평가 (0) | 2021.10.09 |
자바 프로그래밍_Day_29_GROUP BY & HAVING (0) | 2021.10.06 |