본문 바로가기

728x90

Study/OracleDB

(41)
26강 오라클 SQL set연산자(2) -- UNION -- 첫번째 쿼리의 모든 행을 두번째 쿼리의 모든 행과 더하고, 중복된 행을 제거한 후, 결과를 리턴한다. insert into test1 values('kim', 20); insert into test2 values('kim', 30); insert into test1 values('lee', 40); insert into test2 values('park', 50); insert into test1 values('choi', 60); insert into test2 values('choi', 60); -- 데이터 수정 update test1 set age='20' where name='kim'; update test2 set age='30' where name='kim'; select..
25강 오라클 SQL set 연산자(1) -- 1. SET 연산자에 관하여 -- 독립적인 여러 개의 쿼리를 하나로 묶는 역활 -- 최종 결과는 하나의 쿼리가 수행된 것과 같음 -- 수학의 집합과 같은 개념 -- UNION -- 합집합과 같은 개념 -- SELECT 절에 나열된 모든 컬럼에 대해 두 테이블에 있는 내역 조회 -- DISTINCT 역활 -> 한 테이블 기준 동일한 데이터는 1번만 조회됨 -- SELECT 리스트의 컬럼의 개수, 순서, 타입이 같아야 함. ★ -- UNION ALL -- UNION과 다른 점은 한 테이블에 있는 동일 데이터가 모두 조회됨. -- [구문] -- select col1, col2, col3... -- from table1 -- where... -- union 아니면 union all -- select col..
24강 오라클 SQL 서브 쿼리(3) -- 1. 다중 행 서브 쿼리 -- 2. ALL, ANY 연산자 -- 4.1 ALL 연산자 -- ALL 조건은 메인 쿼리의 비교 조건이 서브 쿼리의 검색 결과와 모든 값이 일치하면 참입니다. -- 찾아진 값에 대해서 AND 연산을 해서 모두 참이면 참이 되는 셈이 됩니다. > ALL 은 "모든 비교값 보다 크냐" -- 고 묻는 것이 되므로 최대값보다 더 크면 참이 됩니다. -- 30번 소속 사원들 중에서 급여를 가장 많이 받는 사원보다 더 많은 급여를 받는 사람의 이름, 급여를 -- 출력하는 쿼리문을 작성해 봅시다. select sal from emp where deptno=30; -- 30번 소속 사원들 중에서(sub) select ename, sal from emp where sal > all(sel..
23강 오라클 SQL 서브 쿼리(2) -- 1. 서브 쿼리에서의 그룹 함수 사용 -- 2. 다중 행 서브 쿼리 -- 03. 다중행 서브 쿼리의 사용 -- 10번 부서에 근무하는 사원의 이름과 10번 부서의 부서명을 출력 select e.ename, d.dname from emp e, dept d where e.deptno = d.deptno and d.deptno=10; select e.ename, d.dname from emp e, -- 2. 메인 쿼리문 실행 : emp 테이블과 dept 테이블의 조인 실행. (select deptno, dname from dept where deptno = 10)d -- 1. 서브 쿼리문 실행 : 부서번호가 10인 deptno 출력. 별칭 d지정 where e.deptno = d.deptno; -- 2-..
22강 오라클 SQL 서브 쿼리(1) -- 1. 서브 쿼리의 기본 개념 -- 2. 단일 행 서브 쿼리 -- SCOTT의 부서명을 알아내기 위한 서브 쿼리문부터 살펴봅시다. select dname from dept where deptno= -- 2. main 쿼리가 실행된다. (select deptno from emp where ename = 'SCOTT'); -- 1. sub가 먼저 실행되고 -- 01. 서브 쿼리의 기본 개념 -- 서브쿼리는 하나의 SELECT 문장의 절 안에 포함된 또 하나의 -- SELECT 문장입니다. -- 그렇기에 서브 쿼리를 포함하고 있는 쿼리문을 메인 쿼리, 포함된 또 -- 하나의 쿼리를 서브 쿼리라 합니다. -- 서브 쿼리는 비교 연산자의 오른쪽에 기술해야 하고 반드시 괄호로 -- 둘러쌓아야 합니다. -- 서브..
21강 오라클 SQL Outer Join -- 1. Outer Join -- 2. ANSI Join select e1.ename, e2.ename from emp e1, emp e2 where e1.mgr = e2.empno(+); -- KING은 이 회사의 사장(PRESIDENT)으로 매니저가 존재하지 않으므로 -- MGR 컬럼 값이 NULL 입니다. 사원 번호(EMPNO)가 NULL인 사원은 -- 없으므로 조인 조건에 만족하지 않아 KING은 Seif Join의 결과에서 배제되었습니다. -- 조인 조건에 만족하지 못하였더라도 해당 로우를 나타내고 싶을 때에 사용하는 것이 외부 조인(Outer Join)입니다. -- 외부 조인은 NULL 값이기에 배제된 행을 결과에 포함시킬 수 있으며,"(+)" 기호를 조인 조건에서 정보가 부족한 컬럼 뒤에 ..
20강 오라클 SQL Self Join 20강 오라클 SQL Self Join -- 조인은 두 개 이상의 서로 다른 테이블을 서로 연결하는 것뿐만 -- 아니라, 하나의 테이블 내에서 조인을 해야만 원하는 자료를 얻는 경우가 생깁니다. -- Self Join이란 말 그대로 자기 자신과 조인을 맺는 것을 말합니다. -- 별칭 필수 emp e1, emp e2!! select e1.ename, e2.sal from emp e1, emp e2 where e1.empno = e2.empno; -- SMITH의 매니저 이름이 무엇인지 알아내려면 어떻게 구해야 할까요? select e1.ename, e2.ename 매니저님 from emp e1, emp e2 where e1.mgr = e2.empno and e1.ename = 'SMITH'; -- e1 테..
19강 오라클 SQL JOIN DATA -- 조인의 필요성, Cross Join, Equi Join, Non-EquiJoin -- 특정 부서 번호에 대한 부서이름이 무엇인지는 부서(DEPT)테이블에 있다. -- 특정 사원에 대한 부서명을 알아내기 위해서는 부서 테이블에서 정보를 얻어와야 한다. select ename, deptno from emp; -- 10번 20번 30번의 부서명을 알기 위해 dept를 조회해야 한다. select deptno, dname from dept; -- Cross Join select * from emp, dept; -- 사원 한 명에 대해서 DEPT 테이블 4개의 로우와 결합된 형태이기에 -- Cross Join의 결과는 아무런 의미를 갖지 못합니다. -- Equi Join -- 가장 많이 사용하는 조인 방법으..

728x90