KH_ORACLE_06_서브쿼리

2022. 12. 20. 19:31· 교육 | 외부활동/ORACLE
목차
  1. 서브 쿼리의 기본 개념
  2. 단일행 서브 쿼리
  3. 다중행 서브 쿼리
  4. IN 연산자
  5. ALL 연산자
  6. ANY 연산자
  7. EXISTS 연산자
반응형

서브 쿼리의 기본 개념

 - 서브 쿼리는 하나의 SELECT 문장의 절 안에 포함된 또 하나의 SELECT 문장이다.

 - 서브 쿼리를 포함하고 있는 쿼리문을 메인 쿼리, 포함된 또 하나의 쿼리를 서브 쿼리라고 한다.

 - 서브 쿼리는 비교 연산자의 오른쪽에 기술해야 하고 반드시 괄호로 둘러쌓아야 한다.

 - 서브 쿼리는 메인 쿼리가 실행되기 이전에 한 번만 실행이 된다.

 

단일행 서브 쿼리

단일 행 서브 쿼리는 수행 결과가 오직 하나의 로우만을 반환하는 서브 쿼리를 갖는 것을 말한다.

단일 행 서브 쿼리문에서는 이렇게 오직 하나의 로우로 반환되는 서브 쿼리의 결과는 메인 쿼리에 보내게 되는데 메인 쿼리의 WHERE 절에서는 단일 행 비교 연산자인 =, >, >=, <, <=, <> 를 사용해야 한다.

SELECT ENAME, SAL
FROM EMP
WHERE SAL > ( SELECT AVG(SAL)
 FROM EMP);

 

다중행 서브 쿼리

다중행 서브 쿼리는 서브 쿼리에서 반환되는 결과가 하나 이상의 행일 때 사용하는 서브 쿼리이다. 다중 행 서브 쿼리는 반드시 다중 행 연산자와 함께 사용해야 한다. 

다중 행 서브 쿼리의 종류에는 IN, ANY, SOME, ALL, EXIST 가 있다.

 

IN 연산자

IN 연산자는 메인 쿼리의 비교 조건에서 서브 쿼리의 출력 결과와 하나라도 일치하면 메인 쿼리의 WHERE 절이 참이 되는 연산자이다.

SELECT ENAME, SAL, DEPTNO
FROM EMP
WHERE DEPTNO IN ( SELECT DISTINCT DEPTNO
FROM EMP
WHERE SAL>=3000);

 

ALL 연산자

ALL 조건은 메인 쿼리의 비교 조건이 서브 쿼리의 검색 결과와 모든 값이 일치하면 참이다.

SELECT ENAME, SAL
FROM EMP
WHERE SAL > ALL(SELECT SAL
 FROM EMP
 WHERE DEPTNO =30);

 

ANY 연산자

ANY 조건은 메인 쿼리의 비교 조건이 서브 쿼리의 검색 결과와 하나 이상만 일치하면 참이다.

SELECT ENAME, SAL
FROM EMP
WHERE SAL > ANY ( SELECT SAL
 FROM EMP
 WHERE DEPTNO = 30 );

 

EXISTS 연산자

서브쿼리에 결과 값이 하나 이상 존재하면 조건식이 모두 true, 존재하지 않으면 모두 false 가 되는 연산자이다.

SELECT *
FROM EMP
WHERE EXISTS (SELECT DNAME FROM DEPT WHERE DEPTNO = 10);


SELECT *
FROM EMP
WHERE EXISTS (SELECT DNAME FROM DEPT WHERE DEPTNO = 50);

 

반응형

'교육 | 외부활동 > ORACLE' 카테고리의 다른 글

KH_ORACLE_08_DML  (0) 2022.12.21
KH_ORACLE_07_DDL  (0) 2022.12.20
KH_ORACLE_05_조인  (2) 2022.12.20
KH_ORACLE_04_그룹 쿼리와 집합 연산자  (0) 2022.12.20
KH_ORACLE_03_SQL 주요 함수  (0) 2022.12.20
  1. 서브 쿼리의 기본 개념
  2. 단일행 서브 쿼리
  3. 다중행 서브 쿼리
  4. IN 연산자
  5. ALL 연산자
  6. ANY 연산자
  7. EXISTS 연산자
'교육 | 외부활동/ORACLE' 카테고리의 다른 글
  • KH_ORACLE_08_DML
  • KH_ORACLE_07_DDL
  • KH_ORACLE_05_조인
  • KH_ORACLE_04_그룹 쿼리와 집합 연산자
wn1331
wn1331
반응형
wn1331
JONGHUN
wn1331
전체
오늘
어제
  • 분류 전체보기 (268)
    • Spring (16)
      • Spring Data JPA (0)
      • Spring Security (11)
      • Spring Batch (5)
    • DEV (40)
      • FrontEnd (2)
      • JAVA (5)
      • Git (1)
      • 기타 (6)
      • Network (1)
      • MSA (12)
      • 개발일기 || 트러블슈팅 (5)
      • 행사 || 후기 (3)
      • GraphQL (3)
      • Kotlin (0)
      • Database (2)
    • 코딩테스트 (164)
      • Programmers_LV0 (100)
      • Programmers_LV1 (54)
      • 백준 (8)
      • Algorithm (1)
    • 교육 | 외부활동 (44)
      • 이론_JAVA (13)
      • ORACLE (12)
      • PUBLISHING (6)
      • JAVASCRIPT (5)
      • JQuery (0)
      • 항해99 플러스 백엔드 (8)
    • 기본지식 (0)
    • 끄적끄적 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 학부생(용인대학교 컴퓨터과학과 1~4학년) 네이버 블로그는⋯

인기 글

태그

  • spring security
  • transaction
  • Spring Boot
  • 압축
  • MySQL
  • Step
  • 스프링
  • 스프링 부트
  • JPA
  • java
  • SESSION
  • 세션
  • 스프링 시큐리티
  • 항해플러스
  • 항플 백엔드
  • Spring
  • 항플
  • MSA
  • Spring Batch
  • 항해99

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
wn1331
KH_ORACLE_06_서브쿼리
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.