본문 바로가기

Oracle/SQL

(98)
SQL ANSI /ISO STANDARD JOIN - ON 절 대신 USING 절 이용 From 절 작성후 using 절 컬럼명 작성할 때 테이블 별칭을 붙여 작성하면 안된다. 그냥 컬럼명 그대로 작성 할 것 on 절 대신에 Using 절을 사용하며 Using 절에 (괄호) 를 반드시 사용한다. - ON 절과 같음 공통된 컬럼에 별칭을 쓰지않아 코딩이 직관적이지 않아서 잘 사용하지 않는 문법 이다. 예제 직업이 salesman 인 사원들의 부서번호, 이름, 직업, 월급, 지역을 출력 using 절에 emp 테이블과 dept테이블의 공통 컬럼인 deptno 를 작성해 주었다. 공통 컬럼을 작성할때에는 테이블 별칭을 쓰면 안된다. ( using 절과 select 절 모두 해당 ) select deptno, e.ename, e.job, s.sal, d.loc from emp e join dept..
SQL ANSI /ISO STANDARD JOIN - ON 절 이용 ORACLE 조인과 다르게 ANSI 조인은 WHERE 절에 조인문법을 쓰는게 아닌 FROM ~ 테이블1 join 테이블2 ON (테이블1 조인조건문 테이블 2 동일컬럼) join 테이블 3 on ( 테이블 1 조인조건문 테이블 3 )절을 사용하여 조인한다. -> ON 절을 쓸때에는 반드시 (괄호) 안에 입력한다. 이름, 직업, 월급 부서위치 출력 select e.ename, e.job, e.sal, d.loc from emp e join dept d on (e.deptno = d.deptno ); 1999 ansi 문법의 on 절을 사용한 조인문법 오라클 조인문법 과 다른 점은 from 절에 (,) 대신 join 을 쓰고 where 절에 조인조건을 쓰는게 아닌 on 절에 조인조건을 작성하고, where ..
SQL Oracle Join - Self join 자기 자신과 조인 select e.ename as 사원 , e.job as 직업 , m.ename as 관리자 , m.job as 관리자_직업 from emp e, emp m where e.mgr = m.empno ; ——————→조인문법 문제 300 : 사원이름, 사원월급, 관리자 이름, 관리자 월급을 출력 select e.ename as 사원 , e.sal as 사원월급 , m.ename as 관리자 , m.sal as 관리자월급 from emp e, emp m where e.mgr = m.empno ; 위의 결과를 다시 출력하는데 관리자보다 더많은 월급을 받는 사원들만 출력하시오 select e.ename as 사원 , e.sal as 사원월급 , m.ename as 관리자 , m.sal as 관리자월급 from e..
SQL Oracle Join - Outer join 여러 테이블 조인 equi 조인으로 볼 수 없는 데이터 값을 출력 이름, 부서위치 출력 그리고 부서위치쪽에 DEPT 테이블에는 존재하는데 혹시 출력 안된 부서위치가 있는지 찾아보시오. select e.ename, d.loc from emp e, dept d where e.deptno = d.deptno ; 'BOSTON' 이 출력 되지 않는다. emp 테이블에 부서번호 40 번이 없어서 조인이 전부 다 실행되지 않았기 때문에 BOSTON이 출력되지 않은것 입니다. 따라서 위의 조인결과에서는 BOSTON 이 없다 생각할 수 있으나, 실제로는 BOSTON 의 위치는 존재하나 사원만 없을 뿐이다. 그렇다면 조인 되지않은 결과도 출력 하려면 OUTER 조인을 사용해아한다. select e.ename, d.loc from emp ..
SQL Oracle Join - NON Equi join 여러 테이블 조인 (컬럼간 연결고리 = X) 조인하려는 테이블들 사이의 연결 조건이 = (이퀄) 이 아닌경우엔 BETWEEN AND 나 연산자 를 이용하여 Non equi join 을 한다. 예제 : select e.ename,e.sal, s.grade from emp e, salgrade s where e.sal between s.losal and s.hisal; 같은 퀄럼이 있다면 equi join 을 쓰면 되는데 위의 컬럼은 같은 컬럼이 없다. where 절에 쓰인 조인 문법을 해석해 보자면 e.sal 에 있는 월급이 s.grade 에 있는 s.losal 과 s.hisal 사이에 존재한다! 문제 290 : 직업이 SALESMAN 인 사원들의이름, 월급과 급여 등급(GRADE) 를 출력하시오 select e.ename, e.sal, s.grad..
SQL Oracle Join - Equi join 여러 테이블 조인 (공통컬럼 O) 조인이 필요한이유? 하나의 테이블에서는 알 수 없는 정보를 다른 테이블과 결합함으로써 다양한 여러 정보를 함께 출력해 낼 수 있도록 합니다. 조인을 할때에는 where 절에 조인 조건문을 꼭 작성해 주어야한다. 예제 58 조인 조건문을 이용하여 이름과 지역을 출력하기. select ename, loc from emp, dept where emp.deptno = dept.deptno; → where 절에 꼭 조인조건을 적어주어야한다 (검색조건 아님!!!! ) deptno 의 컬럼은 두 테이블(emp,dept)의 공통된 연결 고리이다. 이 문장을 조건문으로 적어주는것이 equi join 조인조건이다. 문제 276 이름이 스캇인 사원의 이름, 부서위치 출력 select ename, loc from emp, d..
SQL fetch first ___ rows only - 출력되는 행 제한시키기 출력되는 행 제한하기 (fetch first 몇개 rows only) rownum 을 쓰면서 서브쿼리 안쓰고 간단하게 순위를 출력하는방법 문제 269 :이름,월급,직업 출력 월급이 높은 사원 부터 출력 select ename, sal, job from emp order by sal desc; 문제 270 : 위의 출력 결과에서 위쪽 네명만 출력하시오 select ename, sal, job from emp order by sal desc fetch first 4 rows only; → ordering 된 (정렬된결과에서 ) 위의 4개의 행만 출력합니다. 문제 : 통신사가 kt 인 학생들의 이름, 나이, 통신사를 출력하는데 나이가 많은 순서대로 정렬된결과에서 위의 3명의 학생들만 출력하시오 select e..
SQL ROWNUM - 출력되는 행 제한시키기 ROWNUM( 감추는 컬럼 ), 출력되는 행 제한 앞에서 배운 ROW_NUMBER 와 비슷한 기능을 갖는 함수이다. ROW_NUMBER 함수는 : order by 절을 반드시 사용 ROWNUM 함수는 : order by 절 없이 출력되는, 행 그대로 번호를 부여할 수 있는 shadow (감춰진) 컬럼 -> 모든 테이블에 존재한다. select rownum, empno, ename, sal from emp; select rownum, empno, ename, sal from emp where deptno = 20; → 부서번호가 20 번인 사원들만 출력하면서 rownum 번호를 부여해 준다. 문제 265 select rownum, empno, ename, sal from emp where deptno = ..