꿈의 세상
-
Oracle - CROSS JOIN / NON_EQUI JOIN / SELF JOIN데이터베이스/Oracle 2020. 11. 13. 15:47
CROSS JOIN / NON_EQUI JOIN / SELF JOIN CROSS JOIN / NON_EQUI JOIN / SELF JOIN를 알아보자. CROSS JOIN CROSS JOIN이란 교차 조인, 혹은 카테시안 곱(Cartesian Product)이라고도 하며 조인되는 테이블의 각 행들이 모두 매핑된 데이터가 검색되는 조인 방법이다. 검색되는 데이터 수는 '행의 컬럼 수 * 또 다른 행의 컬럼 수' 로 나타난다. [ CORSS JOIN 예시 ] SELECT EMP_NAME, DEPT_TITLE FROM EMPLOYEE CROSS JOIN DEPARTMENT; NON_EQUI JOIN NON_EQUI JOIN이란 비등가 조인이라고도 불리며 '=' (등호)를 사용하지 않는 조인문으로 지정한 컬럼 ..
-
Oracle - JOIN데이터베이스/Oracle 2020. 11. 12. 14:47
JOIN JOIN이란 하나 이상의 테이블에서 데이터를 조회하기 위해 사용하고 수행 결과는 하나의 Result Set으로 나타낸다. JOIN에는 오라클 전용 구문과 ANSI 표준 구문이 있다. 예를들어 EMPLOYEE 테이블 조회 SELECT EMP_ID, EMP_NAME, DEPT_CODE FROM EMPLOYEE; DEPARTMENT 테이블 조회 SELECT DEPT_ID, DEPT_TITLE FROM DEPARTMENT; EMPLOYEE 테이블과 DEPARTMENT 테이블을 JOIN을 하면 SELECT EMP_ID, EMP_NAME, DEPT_CODE, DEPT_TITLE FROM EMPLOYEE, DEPARTMENT -- 합치게될 테이블 명시 WHERE DEPT_CODE = DEPT_ID; -- 합..
-
Oracle - GROUP BY 의 ROLLUP과 CUBE데이터베이스/Oracle 2020. 11. 11. 17:26
ROLLUP / CUBE ROLLUP과 CUBE는 그룹 별 산출한 결과 값의 집계를 계산하는 함수이다. ROLLUP ROLLUP이란 인자로 전달받은 그룹 중 가장 먼저 지정한 그룹별로 추가적 집계 결과를 반환한다. 즉, 그룹별 '중간집계' 와 '전체 집계'를 계산하여 결과를 행에 자동 추가해주는 함수이다. [ ROLLUP 예시 ] - EMPLOYEE 테이블에서 각 부서 마다 직급 별 급여합, 부서 별 급여 합, 전체 직원 급여 총합 조회 SELECT DEPT_CODE, JOB_CODE, SUM(SALARY) FROM EMPLOYEE GROUP BY ROLLUP(DEPT_CODE, JOB_CODE) ORDER BY 1; CUBE CUBE란 인자로 지정된 그룹들로 가능한 모든 조합 별로 집계한 결과 반환한다..
-
Oracle - ORDER BY / GROUP BY / HAVING데이터베이스/Oracle 2020. 11. 11. 17:05
ORDER BY ORDER BY란 SELECT한 컬럼에 대해 정렬을 할 때 작성하는 구문으로 SELECT 구문의 가장 마지막에 작성하며 실행 순서 역시 가장 마지막에 수행된다. [ 표현식 ] 정렬 방식은 ASC는 오름차순이고 DESC은 내림차순이다. 또는, 컬럼명이 아닌 컬럼의 순서를 숫자로 표기할 수 있다. [ ORDER BY 예시 ] - EMPLOYEE 테이블에서 부서별 코드, 부서별 급여합, 부서별 급여 평균, 부서별 인원 수를 부서코드 순으로 조회 SELECT DEPT_CODE, SUM(SALARY) "급여 합",FLOOR(AVG(SALARY)) "급여 평균", COUNT(*) "인원 수" FROM EMPLOYEE GROUP BY DEPT_CODE ORDER BY DEPT_CODE; GROUP B..
-
Oracle 함수(Function) - 그룹 함수데이터베이스/Oracle 2020. 11. 11. 16:29
그룹 함수 그룹함수란 하나 이상의 행을 그룹으로 묶어 연산하며 총합, 평균 등을 하나의 컬럼으로 반환하는 함수이다. 여러가지 그룹 함수를 알아보자 SUM SUM이란 해당 컬럼 값들의 총합을 반환한다. [ SUM 예시 ] - EMPLOYEE테이블에서 남자 사원의 급여 총합 조회 SELECT SUM(SALARY), FROM EMPLOYEE WHERE SUBSTR(EMP_NO, 8, 1) = 1; - EMPLOYEE테이블에서 부서코드가 D5인 직원의 보너스 포함 연봉 조회 SELECT SUM(SALARY + (SALARY*NVL(BONUS, 0))*12) FROM EMPLOYEE WHERE DEPT_CODE = ‘D5’; AVG AVG란 해당 컬럼 값들의 평균을 반환한다. [ AVG 예시 ] - EMPLOYE..
-
Oracle 함수(Function) - NULL 처리 함수와 선택 함수데이터베이스/Oracle 2020. 11. 11. 12:49
NULL 처리 함수 NULL 처리 함수란 해당 컬럼값이 NULL인 경우 대체값을 사용하는 함수이다. NULL 처리 함수의 NVL과 NVL2 를 알아보자 NVL NVL이란 NULL로 되어 있는 컬럼의 값을 인자로 지정한 숫자 혹은 문자로 변경하여 반환한다. - P1 : NULL데이터를 처리할 컬럼명 혹은 값 - P2 : NULL값을 대체하고자 하는 값 [ NVL 예시 ] SELECT EMP_NO, EMP_NAME, SALARY, NVL(BONUS, 0), -- BONUS가 Null값이면 0으로 (SALARY + (SALARY * NVL(BONUS, 0)))*12 FROM EMPLOYEE; NVL2 NVL2란 컬럼명이 NULL이 아닌 경우 대체 하고자 하는 값을 적고 NULL인 경우 대체 하고자 하는 값을 ..
-
Oracle 함수(Function) - 형 변환 함수데이터베이스/Oracle 2020. 11. 11. 11:46
형 변환 함수 형 변환 함수란 날짜 또는 숫자형 데이터를 문자형으로 바꾸어 주거나 문자형 데이터를 숫자 데이터로 형변환 해준다. 즉, 이렇게 숫자를 문자로, 문자를 날짜로 형변환 하거나 날짜를 문자로, 문자를 숫자로 형변환 할 수 있다. 이제 TO_CHAR, TO_DATE, TO_NUMBER을 알아보자! TO_CHAR TO_CHAR란 날짜 혹은 숫자형 데이터를 문자형 데이터로 변환하여 반환한다. - DATE : 문자형으로 변환하려는 날짜형 데이터 - NUMBER : 문자형으로 변환하려는 숫자형 데이터 - FORMAT : 문자형으로 변환 시 지정할 출력 형식 FORMAT 날짜 데이터를 문자형 데이터로 바꾸기위해선 FORMAT 형식을 알아야 한다. [ TO_CHAR 예시 ] 날짜를 문자로 형변환 SELECT..
-
Oracle 함수(Function) - 날짜 처리 함수데이터베이스/Oracle 2020. 11. 10. 17:28
날짜 처리 함수 여러가지 날짜 처리 함수를 알아보자 SYSDATE SYSDATE란 시스템에 저장되어 있는 현재 날짜를 반환한다. [ SYSDATE 예시 ] SELECT SYSDATE FROM DUAL; MONTHS_BETWEEN MONTHS_BETWEEN란 인자로 날짜 두 개를 전달받아 개월 수 차이를 숫자 데이터형으로 반환한다. - DATE1 : 기준이 되는 날짜 - DATE2 : 개월 수를 구하려는 날짜 [ MONTHS_BETWEEN 예시 ] - EMPLOYEE테이블에서 사원의 이름, 입사일, 근무 개월 수 조회 SELECT EMP_NAME, HIRE_DATE, MONTHS_BETWEEN(SYSDATE, HIRE_DATE) FROM EMPLOYEE; ADD_MONTHS ADD_MONTHS란 인자로 전..