subQuery_db

2022. 1. 19. 15:04ksmart_dbms/데이터베이스 이론

728x90

SQL문 내에서 하위에 존재하는 쿼리 ( SQL문 안에 SQL )

SELECT
  ROUND(AVG(g.g_price), 0) AS '평균단가'
FROM
  tb_goods AS g

0번째 자리까지 반올림

SELECT
  *
FROM
  tb_goods AS g
WHERE
  g.g_price > 178786;

 

SELECT
	round(avg(g.g_price),0) AS '평균단가'
FROM
	tb_goods AS g;
	
SELECT
	*
FROM
	tb_goods AS g
WHERE
	g.g_price>(SELECT
	round(AVG(g1.g_price),0) AS '평균단가'
	FROM
	tb_goods AS g1);

 

스칼라 서브쿼리

SELECT문에 있는 서브쿼리( 1행만 반환)

SELECT
	g.g_name,
	g.g_price
FROM
	(SELECT
		*
		,(SELECT	
				round(AVG(g_price),0) AS avg_price
			FROM
				tb_goods) AS avg_price
	FROM
		tb_goods) AS g
WHERE
	g.g_price > g.avg_price;
인라인 뷰

FROM 절에 있는 서브쿼리

SELECT
	g.g_name,
	g.g_price
FROM
	tb_goods AS g
	JOIN
	(SELECT	
			round(AVG(g_price),0) AS avg_price
					FROM
						tb_goods) AS g1
WHERE
	g.g_price > g1.avg_price;
서브쿼리

WHERE 절에 있는 서브쿼리

단일 행 서브쿼리

다중 행 연산자
IN 리턴되는 값 중에서 조건에 해당하는 값이 있으면 참
서브쿼리 결과가 여러 개
Ex:) m.m_level = 1 or m.m_level = 2 or m.m_level = 3
ANY, SOME or
서브쿼리에
의해 리턴되는 각각의 값과 조건을 비교하여 하나 이상을 만족하면 참
ALL   and
값을
서브쿼리에 의해 리턴되는 모든 값과 조건 값을 비교하여 모든 값을 만족해야만 참
EXISTS 메인 쿼리의 비교 조건이 서브쿼리의 결과 중에서 만족하는 값이 하나라도 존재하면 참

in
any, some
all

 

728x90

'ksmart_dbms > 데이터베이스 이론' 카테고리의 다른 글

DML 실습_db  (0) 2022.01.19
SQL_db  (0) 2022.01.17
데이터베이스_db  (0) 2022.01.17