일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- rolling retention
- 데이터프레임 정보 조회
- r연습문제
- 타자연습파이썬
- R기초
- requests 모듈
- 특정값 추출
- 피처벡터화
- Python
- 프로그래머스 풀이
- 웹크롤링 예제
- 함컴타자연습
- R
- 웹크롤링
- 조건인덱싱
- R실습
- classic retention
- 네이버웹툰크롤링
- 데이터프레임조회
- 구구단
- 파이썬예제
- 파이썬 야구게임
- java
- 야구게임 코드
- range retention
- 파이썬
- pandas
- 웹크롤링 실습
- 문자열함수
- 문자열reverse
- Today
- Total
서비스 기획자의 성장기록
[Database] 서브쿼리 본문
▋서브쿼리 (Sub query)란
서브쿼리란 쿼리문 안에 포함된 쿼리문이다. 서브쿼리를 포함하고 있는 바깥의 쿼리문을 메인쿼리라고 한다.
서브쿼리의 결과로 반환되는 데이터나 값을 메인쿼리에서 참조하여 조건이나 조회 결과로 사용한다.
1) 메인쿼리
- 실행의 결과가 조회되는 바깥부분의 쿼리
- 서브쿼리의 결과에 의해 실행되는 쿼리
2) 서브쿼리
- 메인쿼리 안쪽에 위치한 쿼리
- 실행결과가 메인쿼리의 조건이나 결과로 사용됨
- order by를 사용할 수 없음 (from절에서는 가능)
▋서브쿼리의 종류
서브쿼리는 반환되는 결과값의 개수에 따라 단일행 서브쿼리와 복수행 서브쿼리로 나뉜다.
1) 단일행 서브쿼리: 결과가 하나만 나오는 서브쿼리
2) 복수행 서브쿼리: 결과가 여러개 나오는 서브쿼리
- 메인쿼리의 WHERE 절에서 in 연산자와 함께 사용
- in, any, all, exists 연산자와 함께 사용
▋서브쿼리 사용 위치 - 단일행 서브쿼리
SELECT 절에서 사용
이름이 'Bruce', 'Daniel'인 직원의 성을 조회하는 쿼리이다.
Select 절에 넣어주면 아래와 같이 별도의 열으로 데이터를 받을 수 있다.
FROM 절에서 사용
03년도 3월 이전에 입사한 직원 중 급여가 3번째로 많은 직원의 first_name, salary, hire_date, department_id를 조회하는 쿼리이다.
From 절에 서브쿼리가 이중으로 쓰였다.
- 먼저, hire_date 기준으로 3월 이전에 입사한 직원을 반환하고 salary를 내림차순기준으로 정렬한 table view를 반환한다. (쿼리 결과 = temp)
*(서브쿼리) nickname으로 받으면 해당 쿼리의 결과를 nickname으로 바깥 쿼리에서 사용할 수 있다.
- temp의 결과에 일련번호 ROWNUM을 붙여서 반환한다.
- ROWNUM이 3인 데이터를 반환하면 급여가 3번째로 많은 직원의 정보를 조회할 수 있다.
WHERE 절에서 사용
사원번호가 109인 사원보다 급여가 많은 직원의 first_name, job_id, salary를 조회하는 쿼리이다.
서브쿼리의 결과로 9000이 반환되어 메인쿼리에서 salary에 조건을 걸어주는 값으로 사용된다.
'Database (Oracle)' 카테고리의 다른 글
맥에서 Oracle19c 구동하기 (도커, sql developer) (0) | 2024.03.07 |
---|---|
[Database] Oracle 단일행 함수 모음 (문자열, 숫자, 날짜, 변환함수) (0) | 2024.02.02 |
[Database] 데이터 무결성, SQL 명령어 종류, SQL 연산자 (0) | 2024.01.31 |