일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- gradle
- vue life cycle
- 백엔드
- VUE
- 비동기통신
- 트랜잭션
- docker
- 개발자
- Spring AOP
- maven
- Vue.js
- git push
- 프론트엔드
- 자바 버전
- Java
- github
- 빌드
- java version
- RequestBody
- aop
- fetch
- RequestParam
- PathVariable
- GIT
- axios
- 도커
- transaction
Archives
- Today
- Total
미소의 세상
서브쿼리의 종류 본문
1. 스칼라쿼리
SELECT 절에서 함수처럼 사용되는 쿼리문입니다.
하나의 레코드만 리턴가능합니다.
일치하는 데이터가 없으면 NULL 값을 리턴합니다.
스칼라 쿼리의 예)
SELECT D.DEPTNO,
(SELECT MIN(EMPNO) FROM EMP WHERE DEPTNO = D.DEPTNO EMPNO
FROM DEPT D
ORDER BY D.DEPTNO) AS EMPNO -- 스칼라쿼리
FROM DEPT D
ORDER BY D.DEPTNO;
스칼라 쿼리는 일치하지 않더라도 NULL을 리턴하므로
Outer 조인과 같은 형태이며,
이는 스칼라 쿼리와 Outer 조인은 같은 맥락이라고 볼 수 있다는걸 의미합니다.
2. 인라인뷰
FROM 절에서 임시 공간에 테이블을 생성하여 사용되는 뷰와 비슷한 저장 형태를 의미합니다.
FROM 절에 있는 서브쿼리가 인라인 뷰를 생성합니다.
생성할대는 반드시 앨리어스(별칭) 지정 꼭 해줍시다!
인라인뷰 예)
SELECT E.LAST_NAME, E.SALARY, D.AVGSAL
FROM EMPLOYEES E, (SELECT DEPARTMENT_ID, AVG(SALARY) AVGSAL
FROM EMPLOYEES
GROUPO BY DEPARTMENT_ID) D
WHERE E.DEPARTMENT_ID = D.DEPARTMENT_ID
AND E.SALARY < D.AVGSAL;
3. 서브쿼리
WHERE 조건 절에서 비교형태로 사용되는 형태입니다.
서브쿼리 예)
SELECT A.ACCOUNT,
A.CUSTOMER_NO,
A.CUSTOMER_NM,
A.ADD_CASH
( SELECT EMP_NM
FROM EMPLOYEE A
WHERE D.EMP_NO = A.EMP_NO) AS 담당자_이름 -- 스칼라쿼리
FROM TB_ACCOUNT A,
(SELECT CUSTOMER_NO,
MAX(ADD_CASH) AS 적립금
FROM TB_POINT
WHERE ADD_DATE = '20210905') C -- 인라인 뷰
WHERE NOT EXISTS ( SELECT 'X'
FROM TB_DEPOSIT B
WHERE A.ACCOUNT_NO = B.ACCOUNT_NO
AND B.DEAL_DATE LIKE '202109%') -- 서브쿼리
'SQL' 카테고리의 다른 글
프로시저의 장단점 (0) | 2022.05.11 |
---|---|
Mybatis #, $ 차이 (0) | 2022.05.04 |
Mybatis와 비교한 JPA 장단점 (0) | 2022.04.03 |
오라클 자주 사용하는 힌트 정리 (sql 튜닝) (0) | 2022.03.22 |
오라클 MYSQL 문법 차이 (0) | 2022.03.02 |
Comments