25일차 SQL
전 시간에 이어서 그룹함수 마무리
중요한 것은 GROUP BY 절에서 단일 그룹을 제어하는 것이 가장 중요.
그룹 함수와 단일 그룹은 묶을 수 없다.
HAVING 절.
GROUP BY 절의 “결과” 값에 조건을 사용하기 위해 사용.
SELECT DEPTNO, AVG(SAL)
FROM EMP
GROUP BY DEPTNO
HAVING AVG(SAL) >= 2000;
부서의 최대값과 최소값을 구하는데, 최대값이 2900 이상인 결과만 출력.
select deptno, max(sal), min(sal)
from emp
group by deptno
having max(sal) > 2900;
7장 JOIN
JOIN은 java의 data base 는 즉 R_DBMS 는 테이블이 세세하게 나누어져 있기 때문에 원하는 데이터를 꺼내오기 위해 JOIN을 사용합니다.
(*Relation-Data Base Management System)
CROSS JOIN
각각의 모든 행이 각각 대입 되어 사용된다.(emp 12 * 4 dept)
- 주로 데이터의 양을 증가 시키기 위해 주로 사용됨.
select *
from emp, dept; = (cross join 즉 emp*dept)
Equi Join ( JOIN ) * 가장 많이 사용된다
select *
from emp,dept
where emp.deptno = dept.deptno;
ERD (Entity(table) Relation Diagram) 테이블 관계 다이얼그램 을 주면 그걸 토대로 겹치는 부분이 있는지 확인하고 join하던가 하는형태로 일을 진행한단다
사원번호와 사원이름은 emp 부서 이름과, 부서 위치는 dept 일때 밀러라는 사원만 검색하려면?
select empno,ename,dname,loc
from emp,dept
where emp.deptno = dept.deptno
and ename = 'MILLER';
where 를 한번 더 쓰려면 and!
deptno 은 둘 다 갖고 있는 값이라, 에매하기 때문에 error !!
이럴경우에는
이런식으로 사용하여 명확성을 준다.
결과 :
+ as 네이밍.
예제 - 뉴욕에서 근무하는 사원의 이름과 급여 출력.
결과 :
Non Equi Join 두개의 테이블에 “조건”으로 데이터에 접근하는 방식.
SALGRADE = 급여 등급 테이블
하나의 테이블에 또 다른 테이블이 조건으로 접근하는 형태이다
Self Join 자기 자신을 객관적인 또 다른 테이블처럼 사용하여 자신과 조인한다.
(이름만 e1, e2로 나누어 그냥 테이블 처럼 쓰면됨)
예제 매니저가 KING인 사원들의 이름과 직급을 출력하시오.
Outer Join 특징은 + 기호를 사용한다 (예외적인 데이터를 포함한다)
(+) 가 붙은 쪽을 기준으로, 반대편의 데이터를 모두 갖고 와라!
(+)가 없는 데이터를 가져오는 것!
'휴지통 > 휴지통1' 카테고리의 다른 글
android studio setting~ (0) | 2016.03.14 |
---|---|
SQL 6일차 서브 쿼리와 DDL (0) | 2015.12.29 |
JAVA 채팅 프로그램 해설 및 주석하며 리뷰 (0) | 2015.12.24 |
JAVA - 채팅프로그래밍. (0) | 2015.12.23 |
SQL 4일차 - 주요 함수 (0) | 2015.12.23 |
댓글