Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 서브쿼리
- SYNTAX : ( SELECT 명령 )
- #스칼라값이란?
- SELECT 명령의 결과의 값이 한개 인것 (=단일 값)
- 서브쿼리 패턴
- 1> 단일 값(스칼라 값)을 반환하는 패턴
- SELECT count(no) FROM 테이블명;
- 2> 복수의 행이 반환되지만 열은 하나인 패턴
- SELECT no FROM 테이블명;
- 3> 하나의 행이 반환되지만 열이 복수인 패턴
- SELECT name, age FROM member WHERE no = 1;
- 4> 복수의 행 과 복수의 열이 반환되는 패턴
- SELECT no, name, age FROM member;
- #응용패턴
- 1. DELETE의 WHERE구에서 서브쿼리 사용(1번 패턴)
- DELETE FROM 테이블명1 WHERE 컬럼명A = ( SELECT min(컬럼명A) FROM 테이블명1 );
- 2. SELECT 구에서 서브쿼리 사용
- SELECT
- ( SELECT min(no) FROM member) AS min_no ,
- ( SELECT max(no) FROM member) AS max_no
- FROM dual;
- 3. UPDATE SET구에서 사용
- UPDATE member
- SET name = ( SELECT name FROM member WHERE no = 2);
- WHERE no = 1;
- 4. FROM구 에서 서브쿼리 사용 (중첩구조)
- SELECT * FROM (SELECT * FROM member) m;
- (실무적용) 오라클에서 FROM구에 서브쿼리를 이용하여 페이지 번호 처리
- SELECT *
- FROM (
- SELECT id, name , floor(rownum /(10) + 1) page FROM member
- ) m
- WHERE m.page = 2 ;
- 5. INSERT 명령에서 서브쿼리
- 5-1 VALUES구 일부로 서브쿼리 사용
- INSERT INTO member
- (
- user_id, name
- )
- VALUES(
- (SELECT user_id FROM member WHERE no = 2) ,
- (SELECT name FROM member WHERE no = 3 )
- );
- 5-2 VALUES구 대신하여 서브쿼리 사용
- INSERT INTO member
- SELECT * FROM member_backup WHERE no = 2;
- 단 컬럼명이 동일해야 한다.
Add Comment
Please, Sign In to add comment