2021. 7. 28. 19:08ㆍdummmy
- HAVING
GROUP BY로 묶인 그룹에 대한 조건을 설정
WHERE은 개별 ROW의 조건
GROUP BY로 묶인 그룹에 대한 조건을 설정
WHERE은 개별 ROW의 조건
- SUB QUERY
두 개 이상의 단계를 한 번에 처리, HAVING 조건 = QUERY문으로 조건을 건다
- SET OPERATOR
합집합
UNION : 두 개 이상의 SELECT한 결과를 구하는 명령어 --두 개 이상의 결과를 보여주며, 중복이 있을 경우 중복되는 결과는 1번만 보여줌
UNION ALL : 두 개 이상의 SELECT한 결과를 보여주되, UNION과의 차이점은 중복이 있어도 그대로 보여준다.
차집합 MINUS : 두 개 이상의 결과 중 첫번째 결과만이 가지는 내용을 보여준다.
교집합 INTERSECT: 두 개 이상의 결과 중 중복되는 결과만 보여줌
- JOIN
두 개 이상의 테이블을 하나로 합쳐서 사용하는 명령어 SET OPERATOR는 결과값을 합치는 것(RESULT SET ) JOIN은 테이블 자체를 합친다.
1. ORACLE 표준 문법
명령어없이 FROM 테이블명 , 테이블명 (, 로 구분하여 나열) WHERE 조건을 통해 합칠 테이블의 공통 사항을 명시해준다 예) WHERE DEPT_CODE (테이블1에서) = DEPT_ID(테이블2에서) ;
주의) 명칭이 같을때 (JOB_CODE = JOB_CODE) 어느 테이블에서 온 것인지 몰라 에러가 나므로 EMPLOYEE 테이블과 JOB 테이블을 JOIN 한다고 할 때, WHERE EMPLOYEE.JOB_CODE = JOB.JOB_CODE 로 명시해주어야 한다.(약칭 사용 가능)
2. AINSI 표준 문법
조인하고자 하는 테이블을 FROM 다음에 작성 JOIN 테이블명 ON() | USING() 구문을 사용 예) SELECT EMP_ID, EMP_NAME, E.JOB_CODE, JOB_NAME FROM EMPLOYEE E JOIN JOB J ON ( E.JOB_CODE = J.JOB_CODE); 같은 칼럼명의 출저를 표기하지 않고 USING을 사용 가능 SELECT EMP_ID, EMP_NAME, JOB_CODE, JOB_NAME FROM EMPLOYEE JOIN JOB USING(JOB_CODE);
- INNER JOIN , OUTER JOIN
INNER : 두 테이블 모두 일치하는 데이터만 합친다. (중복된 값을 제외하고는 사라진다. 기본적인 JOIN은 INNER) OUTER : 둘 중 하나, 혹은 둘다 가진 값을 합친다 (중복된 것이 아니라도 다 합친다. A테이블에 없는 B의 값이라면 빈칸으로 비워둔다.)
LEFT[OUTER]JOIN : 두 테이블 중 원본 테이블의 정보를 모두 포함하여 조회할때 (버리는것 없이 다 남긴다) 오라클 문법에서 WHERE조건절에서 조인하려는 테이블 뒤에 (+)
RIGHT [OUTER]JOIN : JOIN에 명시한 테이블의 정보를 모두 포함하여 조회할때 오라클 문법에서 WHERE조건절에서 원본 테이블 뒤에 (+) FULL [OUTER] JOIN: 두 테이블이 가진 데이터 중 서로가 가지지 않은 값일지라도 모두 포함하여 조회한다 오라클 문법에서 (+) (+) 양쪽 다 붙이면 오류남.
OUTER JOIN은 ANSI 문법만 써야한다.
- SELF JOIN
자기 자신을 조인. 같은 테이블에 있는 또 다른 정보가 필요할 때 JOIN과 선언 방식은 같으나, JOIN한 결과에 다시 JOIN을 반복.
1. ANSI 예) SELECT EMP_NAME, DEPT_TITLE, LOCAL_NAME FROM EMPLOYEE JOIN DEPARTMENT ON(DEPT_CODE=DEPT_ID) JOIN LOCATION ON(LOCATION_ID =LOCAL_CODE); --EMPLOYEE테이블에 DEPARTMENT와 LOCATION테이블을 연결하는데, 이 때 중복되는 값으로 서로를 연결하는 것임 JOIN 테이블 ON(연결값1=연결값2) 2.ORACLE SELECT EMP_NAME, DEPT_TITLE,LOCAL_NAME FROM EMPLOYEE,DEPARTMENT,LOCATION WHERE DEPT_CODE=DEPT_ID AND LOCATION_ID=LOCAL_CODE; --WHERE ~ AND로 연결
'dummmy' 카테고리의 다른 글
오라클 SQL DBEAVER - 제약조건 CHECK / PRIMARY KEY 기본키 / INSERT / UNIQUE / UPDATE (0) | 2021.07.31 |
---|---|
오라클 sql dbeaver - 서브쿼리 sub query 인라인뷰 rownum, 상관쿼리 create insert unique (0) | 2021.07.29 |
2. 오라클 SQL FUNCTION 함수 (0) | 2021.07.27 |
1. 오라클 SQL DBMS (0) | 2021.07.27 |
DBEAVER (0) | 2021.07.23 |