-- 원래 코드
SELECT co.code, co.name, ci.name, ci.population
FROM country co
JOIN ( SELECT *
FROM city
WHERE population >= 800 * 10000
) ci
ON co.code = ci.countrycode;
VIEW
# 직접 데이터 저장 X : 주소값만 저장
# > READ만 가능 : CREATE, UPDATE, DELETE 불가
# CREATE VIEW <view_name> AS ( <SQL code> )
-- view 생성
CREATE VIEW city_800 AS
SELECT *
FROM city
WHERE population >= 800 * 10000;
--VIEW 활용
SELECT co.code, co.name, ci.name, ci.population
FROM country co
JOIN city_800 ci
ON co.code = ci.countrycode;
WITH
# 쿼리 실행전에 미리 실행할 임시쿼리를 작성하여 원래 쿼리를 간결하게 작성하는 방법
# 여러개의 WITH 설정, MySQL 8.0 버전부터 사용 가능
# WITH <with_name> AS ( <SQL code> )
WITH city_cte AS(
SELECT *
FROM city
WHERE population >= 800 * 10000
)
SELECT co.code, co.name, ci.name, ci.population
FROM country co
JOIN city_cte ci
ON co.code = ci.countrycode;'SQL, Database' 카테고리의 다른 글
| SQL: WITH ROLLUP (2) | 2025.08.13 |
|---|---|
| SQL: 서브쿼리 (+WITH) (3) | 2025.08.13 |
| SQL: JOIN (5) | 2025.08.13 |
| SQL: 조건문 (if, case when, 정렬 커스텀하기(order by case when)) (0) | 2025.08.13 |
| SQL : 다중행함수, UNION, UNION ALL (1) | 2025.08.13 |