본문 바로가기

전체 글

(142)
SQL ANSI /ISO STANDARD JOIN - CROSS Join "조인 조건없이 조인하는 조인문법" 오라클 조인문법 select e.ename, d.loc from emp e, dept d; cross join elect e.ename, d.loc from emp e cross join dept d;
SQL ANSI /ISO STANDARD JOIN - Full Outer Join / in line view 복습문제 Oracle Join 문법으로는 구현이 안된다. 1999 Ansi 문법으로만 구현되는 유일한 조인문법 O ansi 조인의 left join 과 right join 을 한번에 수행하여 출력하는 쿼리 문이다. 예제 66 select e.ename, e.job, e.sal, d.loc from emp e full outer join dept d on (e.deptno = d.deptno ); 복습문제 질문 : 우리나라의 직업에 대한 만족도는 임금 근로자, 고용주, 자영업자중에 어느 직종의 만족도가 더 높은지 순위를 출력하시오 문제 풀이 순서! 데이터 구하기 (통계청에서 데이터를 구한다.) https://kosis.kr/index/index.do -국가통계포털 테이블 생성 SQL 작성 문제 317 : 2009~..
SQL ANSI /ISO STANDARD JOIN - Left/ Right outer join equi join 으로 join 되지 않는 데이터를 출력할때 쓰인다. on 절을 쓴다. 예제 65 이름, 직업,월급,부서위치 출력 (emp 에는 없고, dept 에는 존재하는 지역 boston 이출력 되어야한다. ) 1. (오라클 outer join 문법 사용) select e.ename, e.job, e.sal, d.loc from emp e , dept d where e.deptno (+) = d.deptno ; -> emp 테이블에 데이터가 부족한 것이므로 where 절의 조인문법에 부족한 쪽인 e.deptno 쪽에 (+) outer join 을 건다. 2. (1999 ansi join rigth outer join 문법 사용) select e.ename, e.job, e.sal, d.loc fro..
SQL ANSI /ISO STANDARD JOIN - Natural Join (공통컬럼 알아서찾음) 오라클이 알아서 두 테이블에 둘다 존재하는 동일한 컬럼을 찾아 조인을 수행한다. → on 절 안씀 예제 직업이 SALESMAN 인 사원들의 부서번호,이름, 직업, 월급, 부서위치 출력 select deptno, e.ename, e.job, e.sal, d.loc from emp e Natural join dept d where e.job = 'SALESMAN'; ON 절 Using 절을 사용하지 않고 Natural join 을 사용해도 Join 되어 나온다. 모든 절에 Natural join 시 사용된 공통컬럼은 별칭을 사용하지 못한다. 공통된 컬럼이 없는 테이블끼리는 natural 조인을 하지 못한다.
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 ..