Chimy's Program
SQL SubQuery 서브쿼리 본문
SQL 서브쿼리
메인쿼리 안에 또 다른 SELECT절이 있는 것을 말하는데 위치에 따라 명칭이 다르다
SELECT 스칼라 서브쿼리 FROM 인라인 뷰 WHERE 컬럼명=일반서브쿼리
스칼라 서브쿼리는 하나의 컬럼이나 하나의 레코드만을 반환할 수 있는 쿼리
인라인 뷰는 하나 이상의 테이블로 만들어진 테이블로서 물리적으로 저장되지 않은 논리적으로 구현된 가상 테이블
일반 서브쿼리는 연산자에 따라서 반환되는 컬럼수와 레코드수가 다르다
단일 행 서브쿼리
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명=단일 행 반환;
SELECT [COLUMN_NAME] FROM [TABLE_NAME] WHERE [COLUMN_NAME]=[SELECT QUERY];
SELECT name, email FROM member WHERE id=(SELECT id FROM bbs WHERE idx=192);
※ 하나의 레코드만 반환가능
다중 행 서브쿼리
SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 in(다중 행 반환);
SELECT [COLUMN_NAME] FROM [TABLE_NAME] WHERE [COLUMN_NAME] in([SELECT QUERY]);
SELECT name, email FROM member WHRER id in(SELECT id FROM bbs);
스칼라 서브쿼리 예제
※ 1개의 컬럼이나 1개의 레코드만 반환할 수 있다
스칼라 서브쿼리 예제 2
※ 1개의 테이블을 이용할 시 별칭을 줘서 구분할 수 있다
인라인 뷰 예제
※ 별칭을 사용해야 이용이 가능하다
※ WHERE절 뒤에 별칭을 사용하는 이유는 가독성을 위해서 이므로 사용하지 않아도 에러는 아니다
일반 서브쿼리 예제
단일/다중 행 서브쿼리 예제
'DATABASE' 카테고리의 다른 글
SQL 레코드 출력 개수 (0) | 2020.03.23 |
---|---|
ORDER BY 절 (0) | 2020.03.22 |
SQL 조건문 (0) | 2020.03.21 |
SQL 함수 (0) | 2020.03.20 |
SQL 연산자 (0) | 2020.03.18 |
Comments