SQL 데이터 베이스 강의 영상 및 서브커리에 관하여...
단일행
다중행
**단일 행(Single Row) 서브 쿼리는 수행 결과가 오직 하나의 로우(행, row)만을 반환하는 서브 쿼리를 갖는 것을 말합니다.
단일 행 서브 쿼리문에서는 이렇게 오직 하나의 로우(행, row)로 반환되는 서브 쿼리의 결과는 메인 쿼리에 보내게 되는데 메인 쿼리의 WHERE 절에서는 단일 행 비교 연산자인 =, >, >=, <, <=, <>를 사용해야 합니다.
EX)
SCOTT의 급여와 동일하거나 더 많이 받는 사원 명과 급여를 출력하시오.
SELECT ENAME, SAL
FROM EMP
WHERE SAL >=(SELECT SAL
FROM EMP
WHERE ENAME =‘SCOTT’);
DALLAS에서 근무하는 사원의 이름, 부서 번호를 출력하시오.
SELECT ENAME, DEPTNO
FROM EMP
WHERE DEPTNO = (SELECT DEPTNO
FROM DEPT
WHERE LOC = ‘DALLAS’);
다중행
*다중 행 서브 쿼리는 서브 쿼리에서 반환되는 결과가 하나 이상의 행일 때 사용하는 서브 쿼리입니다.
다중 행 서브 쿼리는 반드시 다중 행 연산자(Multiple Row Operator)와 함께 사용해야 합니다.
결과가 2개 이상 구해지는 쿼리문을 서브 쿼리로 기술할 경우에는 다중 행 연산자와 함께 사용해야 합니다
.
IN : 메인 쿼리의 비교 조건(‘=’ 연산자로 비교할 경우)이 서브 쿼리의 결과 중에서 하나라도 일치하면 참입니다.
(in은 잘 안쓰인다..)-성능때문에..
ANY, SOME: 메인 쿼리의 비교 조건이 서브 쿼리의 검색 결과와 하나 이상이 일치하면 참입니다.
ALL:메인 쿼리의 비교 조건이 서브 쿼리의 검색 결과와 모든 값이 일치하면 참입니다.
*EXIST: 메인 쿼리의 비교 조건이 서브 쿼리의 결과 중에서 만족하는 값이 하나라도 존재하면 참입니다.
exist를 쓰면(in대신)-> 처리속도가 빠르다?
exitst는 왼쪽이 컬럼이 빠진다.
-성능 좋아짐(비교회수가 in에 비해서 적어짐)
where 뒤에 deptno는 내부 서부커리의 조언컬럼으로 이동
select ename, sal, deptno
from emp e
where exists(select distinct deptno
from emp
where deptno=e.deptno
and sal>=3000)
all연산자
ALL 조건은 메인 쿼리의 비교 조건이 *서브 쿼리의 검색 결과와 모든 값이 일치하면 참입니다.*
찾아진 값에 대해서 AND 연산을 해서 모두 참이면 참이 되는 셈이 됩니다.
> ALL 은 “모든 비교값 보다 크냐”고 묻는 것이 되므로 최대값보다 더 크면 참이 됩니다.
부등호를 단독으로 하면 안되지만 all은 붙이면 된다
모든 값도다 크면 되는구나......
ex)30번 소속 사원들 중에서 급여를 가장 많이 받는 사원보다 더 많은 급여를 받는
사람의 이름, 급여를 출력하는 쿼리문을 작성해 봅시다.
SELECT ENAME, SAL
FROM EMP
WHERE SAL > ALL(SELECT SAL
FROM EMP
WHERE DEPTNO =30);
위의 문장과 밑에 코딩은 같다
SELECT ENAME, SAL
FROM EMP
WHERE SAL > (SELECT MAX(SAL)
FROM EMP
WHERE DEPTNO =30);
EX)모든 영업 사원들중의 최대 급여 많이 받는
사원들의 이름과 급여와 직급(담당 업무)를 출력하되 /영업 사원은 출력하지 않습니다
다중 행 서브쿼리 => SELECT ENAME, SAL, JOB FROM EMP
WHERE SAL> ALL( SELECT SAL
FROM EMP
WHERE JOB='SALESMAN');
단일 행 서브쿼리 => SELEC T ENAME, SAL, JOB FROM EMP
WHERE SAL> ( SELECT MAX(SAL)
FROM EMP
WHERE JOB='SALESMAN');
any연산자
ANY 조건은 메인 쿼리의 비교 조건이 *서브 쿼리의 검색 결과와 하나 이상만 일치하면 참입니다.*
> ANY는 찾아진 값에 대해서 하나라도 크면 참이 되는 셈이 됩니다.
그러므로 찾아진 값 중에서 가장 작은 값 즉, 최소값 보다 크면 참이 됩니다.
'IT ' 카테고리의 다른 글
이클립스 작업환경 변경방법 자바, 클래식, 다크, 라잇 (0) | 2018.03.23 |
---|---|
자바 HTML CSS 이클립스 바탕화면 색 변경 색 테마 바꾸기 색 폰트 바꾸기 (0) | 2018.03.23 |
※ 이클립스 주석 팁, ※ 참고 자바 키워드 모음,※ 잘못된 변수명의 사례 (0) | 2018.03.14 |
SOBRO 음료 냉장고 쿨러 냉장고 서랍 (아마존 판매)AMAZONE (0) | 2018.02.28 |
TRIM함수 (0) | 2017.12.22 |
오라클 sql 함수 length (0) | 2017.12.22 |
오라클 SQL함수 SYSDATE 함수, MOD 함수 (0) | 2017.12.22 |
LTRIM 함수 (0) | 2017.12.22 |