오라클 조인 6

오라클 SQL과 PL/SQL ( JOIN 연습문제 - 2 )

1. customer 테이블과 gift테이블을 join하여 고객이 자기 포인트보다 낮은 포인트의 상품 중 한 가지를 선택할 수 있다고 할 때 notebook을 선택할 수 있는 고객명과 포인트, 상품명을 출력하세요. SELECT C.GNAME, C.POINT, G.GNAME FROM CUSTOMER C, GIFT G WHERE C.POINT >= G.G_START AND G.GNAME = 'Notebook' 2. PROFESSOR 테이블에서 교수의 번호, 교수 이름, 입사일, 자신보다 입사일 빠른 사람 인원수를 출력하세요. 단 자신보다 입사일이 빠른 사람 수를 오름차순으로 출력하세요. SELECT P1.PROFNO, P1.NAME, TO_CHAR(P1.HIREDATE, 'YYYY/MM/DD') HIREDA..

오라클 SQL과 PL/SQL ( JOIN 연습문제 - 1 )

1. 학생테이블과 학과 테이블을 사용하여 학생이름, 1전공 학과 번호, 1전공 학과 이름을 출력하세요. 단 ANSI / ORACLE 두 방법 모두 작성하세요 ORACLE SELECT S.NAME STU_NAME, S.DEPTNO1 DEPTNO1, D.DNAME DEPT_NAME FROM STUDENT S, DEPARTMENT D WHERE S.DEPTNO1 = D.DEPTNO ANSI SELECT S.NAME STU_NAME, S.DEPTNO1 DEPTNO1, D.DNAME DEPT_NAME FROM STUDENT S LEFT OUTER JOIN DEPARTMENT D ON S.DEPTNO1 = D.DEPTNO 2. EMP2 테이블과 P_GRADE 테이블을 조회하여 현재 직급이 있는 사원의 이름과 직급,..

오라클 SQL과 PL/SQL ( OUTER JOIN 주의사항 / SELF JOIN )

ORACLE OUTER JOIN 주의사항 오라클 아우터 조인은 WHERE절의 아우터 조인이 되는 컬럼들에 대해서는 전부 아우터 조인 연산자(+)를 붙여야 합니다. 만약 하나라도 빠진다면 결과는 일반 조인과 동일하게 되어 원하지 않는 데이터를 추출하게 됩니다. 만약 부서에 대한 정보를 모두 보여주고 부서 번호가 20인 사원의 사원번호 이름 급여를 보여주는 예제를 본다면 사원 테이블의 조인 유무와 상관없이 부서정보를 보여주기 위해서는 아우터 조인을 사용해야 합니다. 기준이 되는 테이블이 부서 테이블이므로 WHERE절에 사원테이블의 모든 컬럼에 아우터 조인 연산자를 붙입니다. SELECT D.DEPTNO, D.DNAME, D.LOC, E.EMPNO, E.ENAME, E.SAL FROM DEPT D, EMP E..

오라클 SQL과 PL/SQL ( INNER JOIN - 비등가 조인 )

Non-Equi JOIN(비등가 조인) 앞에서 EQUI 조인은 조인 조건절에 조건을 지정할 때 조인 대상 테이블들에서 서로 같은 조건을 가진 데이터를 가져왔습니다. 그러나 실제 상황에서는 같은 조건이 아닌 크거나 작거나 하는 경우의 조건으로 조회를 해야할 경우도 얼마든지 있을 수 있습니다. 그럴 때 사용하는 조인 방법이 비등가 조인입니다. 자세한 예로 알아보겠습니다. 사용 예1. CUSTOMER테이블과 GIFT테이블을 조인하여 고객별로 마일리지 포인트를 조회한 후 해당 마일리지 점수로 받을 수 있는 상품을 조회하여 고객의 이름과 받을 수 있는 상품 명을 아래와 같이 출력하세요. ORACLE SELECT C.GNAME CUST_NAME, TO_CHAR(C.POINT, '999,999') POINT, G.G..

오라클 SQL과 PL/SQL ( INNER JOIN - 등가 조인 )

EQUI JOIN(등가 조인) 가장 많이 사용되는 조인으로 선행 테이블에서 데이터를 가져온 후 조인 조건절을 검사해서 동일한 조건을 가진 데이터를 후행 테이블에서 꺼내오는 방법입니다. 조건절에서 =(EQUAL)을 사용해서 EQUI JOIN이라고 합니다. 예를 통해 알아보겠습니다. EMP 테이블과 DEPT 테이블을 조인해서 조회하겠습니다. ORACLE SELECT EMPNO, ENAME, DNAME FROM EMP E , DEPT D WHERE E.DEPTNO = D.DEPTNO; ANSI JOIN SELECT E.EMPNO, E.ENAME, D.DNAME FROM EMP E JOIN DEPT D ON E.DEPTNO = D.DEPTNO; 위에서 살펴본 바와 같이 SELECT 절에 테이블이름.컬럼이름 같은..

오라클 SQL과 PL/SQL ( JOIN의 이해 )

JOIN 관계형 데이터베이스에서 가장 핵심적인 기능인 join에 대해서 배워보겠습니다. JOIN에 대해서 이야기를 하기 전에 컴퓨터의 원리부터 먼저 이야기를 해야합니다. ORACLE뿐만 아니라 모든 프로그램들이 컴퓨터에서 작동하는 것이기에 컴퓨터의 원리를 아는 것이 프로그램의 원리를 이해하는 데 큰 도움이 됩니다. 대부분의 컴퓨터는 사용자의 데이터를 디스크에 저장해놓고 필요할때 마다 메모리로 복사를 해와서 메모리에서 작업을 합니다. 그리고 작업 도중이나 끝나면 다시 디스크에 저장을 합니다. 즉 메모리는 작업을 하는 공간이고 디스크는 저장을 하는 공간입니다. ORACLE도 컴퓨터에서 동작하는 프로그램이라서 동일한 원리로 작동합니다. 평소에는 데이터들을 하드디스크에 저장해 놓고 필요할 때마다 메모리로 복사해..

728x90