본문 바로가기

Oracle/SQL

(98)
SQL 집합연산자 Minus 차집합 예제 70 select ename, sal, job, deptno from emp where deptno in(10, 20) minus select ename, sal, job, deptno from emp where deptno in (20,30); 답 : deptno 가 10 인것의 결과만 나온다. 첫번째 쿼리문에서 두번째 쿼리문의 결과를 빼기 때문에 ...
SQL 집합연산자 Intersect 교집합 18c 는 정렬되어나오지만, 21c 는 정렬기능이 빠져서 출력된다. 마찬가지로 테이블이 서로 달라도 intersect 가능하다. 예제 69 select ename, sal, job, deptno from emp where deptno in(10,20) intersect select ename, sal, job, deptno from emp where deptno in (20,30); 첫번째 쿼리와, 두번째 쿼리의 교집합인 deptno 가 20 인 ename, sal, job, deptno 만 출력되어진다. 문제 325 부서테이블의 부서번호와 사원테이블의 부서번호의 부서번호 교집합 출력 select deptno from dept intersect select deptno from emp;
SQL 집합연산자 UNION 데이터 중복 X 합집합 같은테이블이 아닌 다른테이블도 가능 union all, union 의 위아래의 쿼리문의 테이블이 서로 달라도 위아래로 연결가능 Union 이 Union all 과 다른점 2가지 첫번째 컬럼을 기준으로 데이터를 정렬 중복된 행을 제거한다. *** 21c 에서는 union 에서 데이터 order by 정렬이 되지 않는다. (데이터가 많아짐에 따라 쿼리 실행이 너무 느려져서... 정렬하고 싶으면 order by 절을 직접 입력) 예제 68 : select deptno, sum(sal) from emp group by deptno union welect to_number(null) as deptno, sum(sal) from emp; 문제 324 select to_char(hiredate, 'RRRR')as 입..
SQL 집합연산자 UNION ALL ( 데이터중복 합집합) join 과 집합연산자의 차이점 join - 데이터를 양 옆으로 연결하여 출력 집합연산자 - 데이터를 위아래로 연결해서 출력 위아래로 연결할때 지켜주어야 할 조건 위쪽 쿼리문의 컬럼의 갯수와 아랫쪽 쿼리의 컬럼의 갯수가 동일해야한다. 위쪽 쿼리문의 컬럼의 데이터 타입과 아래쪽 쿼리문의 컬럼의 데이터 타입이 동일해야한다. 결과로 출력되는 컬럼명은 위쪽 쿼리의 컬럼명으로 출력 된다. order by 절은 맨 마지막 쿼리문 아래쪽에만 작성할 수 있습니다. UNION ALL 과 UNION 의 차이점 만약 A = {1,2,3,4,5}, B = {3,4,5,6,7} 이라면 UNION ALL 은 A + B = {1,2,3,4,5}+{3,4,5,6,7,} 이런식으로 중복데이터들도 다 함께 출력된다. 그래서 데이터들의 ..
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 조인을 하지 못한다.