Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- SQL
- array
- FLUTTER
- 1일 1쿼리
- 추상클래스
- 주말도 한다
- MySQL
- 컴포지션과 집합
- null 병합 연산자
- LinkedList
- 콜백 함수
- mysql mongo 성능 비교
- 배열과 리스트
- null 억제 연산자
- jmeter
- 주말에도 1일 1쿼리
- my_sql
- 오늘은 1일 2쿼리
- flutter 믹스인
- 2일차
- null check 연산자
- late 키워드
- null safety
- rdbms nosql 차이
- 비동기 처리
- dart
- 앱개발 가보자고
- 다중상속
- 주말도 식지않아
- ?. ?? ! late
Archives
- Today
- Total
subindev 님의 블로그
2025.01.06(월) 1일 1쿼리 본문
Quiz 1) 부서 이름이 'Marketing'인 부서에 존재하는 모든 직급을 출력하여라.
# 1
SELECT DISTINCT title FROM titles
WHERE emp_no IN (SELECT emp_no FROM dept_emp
WHERE dept_no = (SELECT dept_no FROM departments AS d WHERE dept_name = 'Marketing'));
# 2
SELECT DISTINCT title FROM titles
WHERE emp_no IN
(SELECT emp_no
FROM dept_emp AS de
JOIN departments AS d ON de.dept_no=d.dept_no
WHERE dept_name = 'Marketing');
# 3
SELECT DISTINCT title
FROM titles AS t
JOIN dept_emp AS de
ON t.emp_no = de.emp_no
JOIN departments AS d
ON de.dept_no = d.dept_no
WHERE dept_name = 'Marketing';
# 4
WITH marketing_employees AS (
SELECT de.emp_no
FROM dept_emp de
JOIN departments d ON de.dept_no = d.dept_no
WHERE d.dept_name = 'Marketing'
)
SELECT DISTINCT t.title
FROM titles t
JOIN marketing_employees me ON t.emp_no = me.emp_no;
서브쿼리와 조인의 cost가 다르게 나올 지 궁금해서 4가지의 답을 만들어 실험해보았으나 비용이 모두 동일하게 나왔습니다. 그 이유는 SQL 쿼리 최적화 엔진이 작동했기 때문입니다. SQL 데이터베이스는 내부적으로 쿼리를 실행하기 전에 실행 계획(Execution Plan)을 생성하고, 이를 통해 가장 효율적인 방법으로 쿼리를 실행합니다. 즉, 작성한 쿼리의 표현 방식이 달라도 결국 동일한 실행 계획을 생성하는 경우, 비용이 같아질 수 있습니다.
'데이터 베이스 > SQL - 1일 1쿼리' 카테고리의 다른 글
2025.01.08(수) 1일 1쿼리 (0) | 2025.01.08 |
---|---|
2025.01.07(화) 1일 1쿼리 (1) | 2025.01.07 |
2025.01.05(일) 1일 1쿼리 (0) | 2025.01.05 |
2025.01.04(토) 1일 1쿼리 (0) | 2025.01.04 |
2025.01.03(금) 1일 1쿼리 (0) | 2025.01.03 |