라벨이 INNER JOIN인 게시물 표시

[Oracle] 오라클 INNER JOIN 연습문제

예제 테이블 SQL 다운로드 https://drive.google.com/file/d/1J-FsC7T67emrsQ52GJWFizrnV8gsuWJa/view?usp=sharing SELECT * FROM emp; SELECT * FROM dept; --INNER JOIN 문제 --직업이 SALESMAN인 사원들 중에서 최대 월급을 출력하시오 SELECT MAX(sal) FROM emp WHERE job = 'SALESMAN'; --부서번호, 부서번호별 최대 월급을 출력하시오. SELECT deptno, MAX(sal) FROM emp GROUP BY deptno; --위의 결과에서 20번은 제외하고 출력 SELECT deptno, MAX(sal) FROM emp WHERE deptno<>20 GROUP BY deptno; --직업, 직업별 최소 월급을 출력하는데, 직업이 SALESMAN인 사원들을 제외하고 출력하시오. SELECT job, MIN(sal) FROM emp WHERE job <> 'SALESMAN' GROUP BY job; --위의 결과에서 최소월급이 높은것부터 출력하시오. SELECT job, MIN(sal) FROM emp WHERE job <> 'SALESMAN' GROUP BY job ORDER BY MIN(sal) DESC; --직업과 직업별 토탈 월급을 출력하는데, 직업별 토탈 월급이 4000 이상인 것만 출력하시오. SELECT job, SUM(sal) FROM emp GROUP BY job HAVING SUM(sal) >= 4000; --직업, 직업별 토탈 월급을 출력하는데, 직업이 SALESMAN은 제외하고 출력하고, 직업별 토탈 월급이 4000이상인 것만 출력하고 또 직업별 토탈 월급이 높은 것 부터 출력하시오. SELECT job, SUM(sal) FROM emp WHERE job<>'SALESMAN' GROUP BY job

[Oracle] 오라클 JOIN

이미지
JOIN JOIN이란? 하나의 SQL 명령문에 의해 디스크의 여러개의 테이블에서 사용자가 요청한 데이터를 메모리로 복사해서 가지고 와 조회도 하고 변경도 할 수 있는 기능 메모리는 작업을 하는 공간, 디스크는 저장을 하는 공간 JOIN의 종류 카티션곱 INNER JOIN OUTER JOIN SELF JOIN Cartesian Product(카티션 곱) -- INNER JOIN SELECT empno,ename,job,mgr,hiredate,sal,comm,e.deptno,dname,loc FROM emp e,dept d WHERE e.deptno=d.deptno ORDER BY ename; -- 카디션 곱 SELECT empno,ename,job,mgr,hiredate,sal,comm,e.deptno,dname,loc FROM emp e,dept d ORDER BY ename; INNER JOIN 교집합 다른 테이블에서 데이터를 가져와서 연결 NULL값일때 처리가 불가능 NULL값이 있는 경우에는 처리하지 않는다. NULL값 처리를 위해서 기능을 확장한 것이 OUTER JOIN 종류 : EQUI Join(등가 조인) , Non-Equi Join(비등가 조인) EQUI_JOIN  : 등가조인 가장 많이 사용되는 기술 연산자  =  : 같은 값일때 가져오기 (예시) EMP테이블의 deptno와 DEPT테이블의 deptno가 같을 때, DEPT테이블의 loc, dept컬럼을 가져와라 DEPT테이블의 deptno는  Primary Key (기본키) EMP테이블의 deptno는  Foreign Key (참조키) 등가조인의 형식 (참고) 테이블 별칭 테이블명이 길 때 사용 as 안붙여줘도 됨 table : emp,dept SELECT 컬럼명.... FROM emp e, dept d; 오라클 조인  : 컬럼명이 다를 수도 있다 , 오라클에서만 사용하는 쿼리문장 SELECT empno,ename,job,mgr,hiredate,sal,comm,e.deptno,dnam