MariaDB
VIEW와 CTE
MariaDB Inline View, View, 임시 테이블, CTE 정리
1) Inline View
FROM 절에 사용하는 서브쿼리로, 일회성 가상 테이블
SELECT * FROM (SELECT name, salary FROM employees WHERE salary > 50000) AS high_salary;
2) VIEW
개요
저장된 가상 테이블, 재사용 가능
CREATE VIEW 뷰이름 AS
SELECT 컬럼 FROM 테이블 WHERE 조건;
-- 사용
SELECT * FROM 뷰이름;
-- 삭제
DROP VIEW 뷰이름;
장점
- 보안: 특정 컬럼만 노출
- 편의성: 복잡한 쿼리 단순화
- 재사용성: 여러 곳에서 동일한 뷰 사용
3) 임시 테이블
세션 내에서만 유지되는 테이블
CREATE TEMPORARY TABLE temp_table (
id INT,
name VARCHAR(100)
);
4) CTE (Common Table Expression)
WITH cte_name AS (
SELECT 컬럼 FROM 테이블 WHERE 조건
)
SELECT * FROM cte_name;
재귀 CTE (계층 구조 조회)
WITH RECURSIVE cte AS (
SELECT id, parent_id, name FROM categories WHERE parent_id IS NULL
UNION ALL
SELECT c.id, c.parent_id, c.name FROM categories c JOIN cte ON c.parent_id = cte.id
)
SELECT * FROM cte;
댓글