데이터 베이스(Oracle) 12

DML(Data ManipulationLanguage)

DQL(QUERY, 데이터 조회): SELECT(조회)    * DML(MANIPULATION, 데이터 조작) : INSERT(추가/삽입),UPDATE(수정), DELETE(삭제)     DDL(DEFINITON, 데이터 정의) : CREATE(생성), ALTER(변경), DROP(삭제)     DCL(CONTROL, 데이터 제어): GRANT, REVOKE     TCL(TRANSACTION, 트랜잭션 제어) : COMMIT, ROLLBACK INSERT ALL     : 두개 이상의 테이블에 각각 테이블를 추가할 때 사용       이때 사용되는 서브쿼리가 동일한 경우--사번, 사원명, 부서코드, 입사일 정보를 가지는 테이블 DROP TABLE EMP_DEPT; CREATE TABLE EMP_DEPT..

DDL(Data Definition Language)

DDL:데이터 정의 언어로 객체(OBJECT)를 만들고(CREATE), 수정하고(ALTER), 삭제(DROP)하는 구문을 말함 오라클에서의 객체(구조)테이블(TABLE), 뷰(VIEW), 시퀀스(SEQUENCE), 인덱스(INDEX), 패키지(PACKAGE), 프로시저(PROCEDUAL), 함수(FUNCTION), 트리거(TRIGGER), 동의어(SYNONYM), 사용자(USER)--테이블 삭제하기 : DROP TABLE 테이블명;  * CREATE : 테이블이나 인덱스, 뷰 등 데이터베이스 객체를 생성하는 구문CREATE TABLE 테이블명 (                       CREATE TABLE MEMBER(         컬럼명 자료형(크기),                        ME..

JOIN

JOIN     : 두 개 이상의 테이블에서 데이터를 조회하고자 할 때 사용되는 구문       조회결과는 하나의 결과물(RESULT SET)로 나옴* 관계형 데이터베이스(RDB)에서는 최소한의 데이터를 각각의 테이블에 저장       중복저장을 최소화하기 위해 최대한 쪼개서 관리함        => 관계형 데이터베이스에서 쿼리문을 이용한 테이블 간의 "관계"를 맺는 방법        (각 테이블간의 연결고리(외래키)를 통해서 데이터를 매칭시켜 조회함-- ANSI 구문 -    FROM절에 기준이되는 테이블을 하나 작성     JOIN절에 조인하고자하는 테이블을 기술 + 매칭시키고자 하는 조건을 작성     - JOIN USING    : 컬럼명이 같은 경우      - JOIN ON       : 컬럼..

GROUP BY&HAVING&집합연산자4

-UNION ALL : 합집합 + 교집합 (중복된 부분이 두번 도화될 수 있음)SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY FROM EMPLOYEE WHERE DEPT_CODE = 'D5'  -- 12 UNION ALL SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY FROM EMPLOYEE WHERE SALARY > 3000000;  -- 2206 박나라 D5 1800000 207 하이유 D5 2200000 208 김해술 D5 2500000 209 심봉선 D5 3500000 210 윤은해 D5 2000000 215 대북혼 D5 3760000 200 선동일 D9 8000000 201 송종기 D9 6000000 202 노옹철 D9 3700000 ..

GROUP BY&HAVING&집합연산자3

집합 연산자    :여러 개의 쿼리문을 하나의 쿼리문으로 만들어주는 연산자UNION : 합집합  , INTERSECT : 교집합 , UNION ALL : 합집합 , MINUS : 차집합    -UNION : 합집합 OR (두 쿼리문을 수행한 결과값을 더해줌)--부서코드가 D5인 사원 또는 급여가 300만원 초과인 사원들의 사번,이름,부서코드,급여 조회 SELECT EMP_ID, EMP_NAME, DEPT_CODE, SALARY FROM EMPLOYEE WHERE DEPT_CODE = 'D5' OR SALARY > 3000000; 200 선동일 D9 8000000 201 송종기 D9 6000000 202 노옹철 D9 3700000 204 유재식 D6 3400000 205 정중하 D6 3900000 206 ..

GROUP BY&HAVING&집합연산자2

HAVING절:그룹에 대한 조건을 재시할 때 사용되는 구분 (보통 그룹함수식을 가지고 주건을 작성함) --각 부서별 평균 급여가 300만원 이상인 부서만 조회 SELECT DEPT_CODE,ROUND(AVG(SALARY)) FROM EMPLOYEE --WHERE AVG(SALARY) >= 3000000; --WHERE절에서는 그룹함수 사용불가 GROUP BY DEPT_CODE HAVING AVG(SALARY) >= 3000000; --직급 별 직급코드, 총 급여합 조회 (단, 직급별 급여 합이 1000만원 이상인 직급만 조회) SELECT JOB_CODE, SUM(SALARY) FROM EMPLOYEE GROUP BY JOB_CODE HAVING SUM(SALARY) >= 10000000; --부서별 보..

GROUP BY&HAVING&집합연산자

GROUP BY절     : 그룹 기준을 제시할 수 있는 구문     : 여러 개의 값들을 하나의 그룹으로 묶어서 처리하는 목적으로 사용-- 부서별 급여 총 합 조회 SELECT DEPT_CODE, SUM(SALARY) FROM EMPLOYEE GROUP BY DEPT_CODE;D9 17700000 D6 10100000 D5 15760000 D8 6986240 5210000 D1 7820000 D2 6520000 -- 부서별 사원 수 조회 SELECT DEPT_CODE, COUNT(*)  -- 3 FROM EMPLOYEE               -- 1 GROUP BY DEPT_CODE;         -- 2D9 3 D6 3 D5 6 D8 3 2 D1 3 D2 3 -- 부서코드가 'D6', 'D9',..

그룹 함수

SUM : 해당 컬럼의 값들의 총 합을 반환해주는 함수-- 남자사원들의 총 급여 SELECT SUM(SALARY) "남자사원들의 총 급여"    -- 3 FROM EMPLOYEE                              -- 1 WHERE SUBSTR(EMP_NO, 8, 1) IN ('1', '3');  -- 2 -- 여자사원들의 총 급여 SELECT SUM(SALARY) "여자사원들의 총 급여"    -- 3 FROM EMPLOYEE                              -- 1 WHERE SUBSTR(EMP_NO, 8, 1) IN ('2', '4');  -- 2 AVG : 해당 컬럼의 값들의 평균을 반환해주는 함수-- 전체 사원들의 평균 급여 조회 (반올림 적용 : ROUND..

숫자 타입의 데이터 처리 함수2

* DECODE(비교대상(컬럼/연산식/함수식), 비교값1, 결과값1, 비교값2, 결과값2,...)*  CASE WHEN THEN : 조건식에 따라 결과값을 반환해주는 함수 [표현법]             CASE                 WHEN 조건식1 THEN 결과값1                 WHEN 조건식2 THEN 결과값2                 ...                 ELSE 결과값             END   급여가..         500만원 이상 '고급'         350만원 이상 '중급'         그외 '초급' SELECT EMP_NAME 사원명, SALARY 급여,         CASE             WHEN SALARY >= 500000..

숫자 타입의 데이터 처리 함수

* ABS : 숫자의 절대값을 구해주는 함수SELECT ABS(-10) "-10의 절대값" FROM DUAL;` -- 10 * MOD : 두 수를 나눈 나머지 값을 구해주는 함수MOD(숫자1, 숫자2) --> 숫자1 % 숫자2SELECT MOD(10, 3) FROM DUAL; --1* ROUND : 반올림한 값을 구해주는 함수  ROUND(숫자[, 위치]) : 위치=> 소숫점 N번째 자리SELECT ROUND(123.456) FROM DUAL;    -- 결과 : 123 SELECT ROUND(123.456, 1) FROM DUAL; -- 결과 : 123.5 SELECT ROUND(123.456, 2) FROM DUAL; -- 결과 : 123.46SELECT ROUND(123.456, -1) FROM D..