Programming/SQL
SQL 집합연산자
1. union all 2. union 3. intersect 4. minus 집합 연산자 - 조인은 서로 다른 테이블의 컬럼을 양 옆으로 출력하는 문법이라면 집합 연산자는 서로 다른 테이블의 클럼을 위아래로 출력하는 문법이다 합집합 연산자 : union, union all 교집합 연산자 : intersect 차집합 연산자 : minus 1. union all 예제)직업, 직업별 토탈 월급과 맨 밑에 전체 토탈 월급을 출력하시오 select job, sum(sal) from emp group by job union all select '토탈월급', sum(sal) from emp; * 집합연산자 사용 시 주의사항 1. 집합 연산자 위 아래의 쿼리의 컬럼의 수가 동일해야 한다. 위의 쿼리 컬럼의 개수가 2..
SQL 서브쿼리문
서브쿼리문의 종류 1. 단일행 서브쿼리 : 서브쿼리에서 메인쿼리로 하나의 값이 리턴되는 문장 연산자 : =, !=, , ^=, , >=, all, any, =, (select sal from emp where ename = 'JONES'); 2. 다중행 서브쿼리 - 서브쿼리에서 메인쿼리로 여러 개의 값이 리턴되는 문장 연산자 in : 일치하는 값을 찾음 not in : 일치하지 않는 값을 찾음 >all : 최대값 반환
SQL 조인 - 1999 ansi join
1. on 절을 사용한 조인 2. using절을 사용한 조인 3. left/right/full outer 조인 4. cross 조인 5. natural 조인 1. on절을 사용한 조인 예제) DALLAS에서 근무하는 사원의 이름과 부서위치를 출력하시오 select e.ename, d.loc from emp e join dept d on (e.deptno = d.deptno) where d.loc = 'DALLAS'; on ( 조인조건 ) where 검색 조건 2. using절을 사용한 조인 select e.ename, d.loc from emp e join dept d using (deptno); -> using절에 연결고리가 되는 컬럼명을 테이블 별칭 없이 괄호 안에 적어주면 된다. 3. left/ri..
SQL 조인 - 오라클 조인
1. equi join 2. non equi join 3. outer join 4. self join 조인이란? 여러개의 테이블의 컬럼들을 하나의 결과로 볼 때 사용하는 SQL 문법 1. equi join - 조인 조건에서 사용하는 연산자가 = 인 경우 예제) 이름, 부서위치를 출력하시오 select e. ename, d.loc from emp e, dept d where e.deptno = d.deptno; -> where절에 조인 조건을 준다. 만약에 조인 조건을 주지 않는다면 하나씩 다 조인한다. 2. non equi join - 조인하려는 두 테이블 사이의 연결고리 연산자가 =이 아닌경우의 조인 예제) 이름, 월급, 등급을 출력하시오 -> 등급 테이블 생성 create table salgrade ..
SQL 데이터 분석 함수
1. rank 2. dense_rank 3. nitle 4. listagg 5. lead 6. 누적데이터 출력함수 7. pivot과 unpivot 1. rank함수 - 순위를 출력하는 함수 rank() over (order by 컬럼명) 예제) 이름, 월급, 월급에 대한 순위를 출력하시오 select ename, sal, rank() over (order by sal desc) from emp;a 2. dense_rank rank함수와 비슷하지만 위의 쿼리의 결과의 경우 월급이 3000인 사람은 scott과 ford로 둘이다. 둘다 2순위로 나오고 그 밑에 jones는 4순위로 나온다 dense_rank를 사용하면 비는 숫자 없이 나온다. 예제) 이름, 월급, 월급에 대한 순위를 출력하는데 dense_r..
SQL 복수행 함수
복수행 함수의 종류 1. max 2. min 3. avg 4. sum 5. count 1. max 함수 - 최대값을 출력하는 함수 max(컬럼명) 예제) 사원 테이블의 최대 월급은 얼마인가 select max(sal) from emp; 2. min 함수 - 최소값을 출력하는 함수 min(컬럼명) 예제) 직업이 SALESMAN인 사원중 최소 월급은 얼마인가? select min(sal) from emp where job = 'SALESMAN'; 3. avg 함수 - 평균값을 출력하는 함수 avg(컬럼명) 예제) 부서번호, 부서번호별 평균월급을 출력하는데 부서번호별 평균 월급이 낮은것 부터 출력하시오 select deptno, round(avg(sal)) from emp group by deptno orde..