반응형

# 스칼라 서브쿼리 (Scalar Subquery)

  • 1 Row, 1 Column 만을 반환하여 컬럼처럼 사용이 가능한 서브 쿼리이다.
  • 주로 SELECT 절에서 사용.
  • 단일행 서브 쿼리이기 때문에 결과를 2건 이상 반환하면 에러가 발생한다.
SELECT A.EMP_NAME
	, A.SALARY
	, ( SELECT AVG(SALARY)
		FROM EMP
		WHERE DEPT_ID = A.DEPT_ID ) AS AVG_SALARY		// 스칼라 서브쿼리.
FROM EMP A;

# 인라인 뷰 (Inline View)

  • FROM 절에서 사용.
  • SQL 문이 실행될 때만 임시로 생성되는 동적인 뷰이기 때문에 Dynamic View 라고도 함.
SELECTB.DEPTNAME
	, A.AVG_SALARY
FROM ( SELECT DEPT_ID
        , AVG(SALARY) AS AVG_SALARY
        FROM EMP
        GROUP BY DEPT_ID 
	) A	// 인라인 뷰
	, DEPT B
WHERE A.DEPT_ID = B.DEPT_ID;

# 뷰 (View)

  • 하나 이상의 테이블에서사용자에게 데이터를 보여주기 위해 재정의한 가상 테이블(Virtual Table)이다.
  • 테이블은 실제 데이터를 갖고 있지만, 뷰는 실제 데이터를 가지지 않는다.

## 뷰의 특징

1. 독립성

  • 테이블 구조가 변경되어도 뷰를 재정의하면 되기 때문에, 애플리케이션을 변경할 필요가 없다.

2. 편리성

  • 복잡한 SQL문을 단순한 형태로 변환 가능.

3. 보안성

  • 민감한 정보를 제외하여 뷰를 정의하면 보안이 강화된다.
반응형

+ Recent posts