오라클

    [Oracle] DDL(1) - CREATE

    * DDL (DATA DEFINITION LANGUSAGE) : 데이터 정의 언어 오라클에서 제공하는 객체(OBJECT)를 새로이 만들고, 구조를 변경(ALTER) 하고, 구조 자체를 삭제(DROP) 하는 언어즉, 실제 데이터 값이 아닌 구조 자체를 정의하는 언어 주로 DB관리자, 설계자가 사용함 오라클에서 제공하는 객체(구조) : 테이블(TABLE), 뷰(VIEW), 시퀀스(SEQUENCE), 인덱스(INDEX), 패키지(PACKAGE), 트리거(TRIGGER), 프로시저(PROCEDURE), 함수(FUNCTION), 동의어(SYNONYM), 사용자(USER) 객체를 새로이 생성하는 구문 1. 테이블 생성 - 테이블이란? 행(ROW)과 열(COLUMN)로 구성되는 가장 기본적인 데이터베이스 객체 모든 ..

    [Oracle] 순위를 매기는 함수 (Window Function)

    * 순위 매기는 함수 ( WINDOW FUNCTION ) RANK() OVER(정렬기준) | DENSE_RANK() OVER(정렬기준) - RANK() OVER (정렬기준) : 동일한 순위 이후의 등수를 동일한 인원수 만큼 건너뛰고 순위 계산 EX) 공동 1위가 2명 그 다음 순위는 3위 => 1 1 3 - DENSE_RANK() OVER(정렬기준) : 동일한 순위가 있다고 해도 그 다음 등수를 무조건 1씩 증가 시킴 EX) 공동 1위가 2명이더라도 그 다음 순위를 2위 => 1 1 2 - row_number() over(정렬기준) : 동일한 순위가 있더라도 그 다음 순위를 부여 => 1 2 3 4 .. >> 세 함수는 무조건 SELECT절에서만 사용 가능!! RANK() -- 급여가 높은 순대로 순위를..

    [Oracle] 종합(~JOIN)_실습문제

    -- 1. 사원 테이블의 모든열 출력 SELECT * FROM EMP; -- 2. 사원테이블의 사원번호, 이름, 월급 출력 (별칭 지어서) SELECT EMPNO AS "사원번호", ENAME AS "이름", SAL AS "월급" FROM EMP; -- 3. 사원테이블의 이름과 월급을 서로 붙여서 출력 (출력예시 ) KING5000) SELECT ENAME || SAL FROM EMP; -- 4. 사원테이블의 이름과 월급을 서로 붙여서 출력 (출력예시) KING의 월급은 5000입니다.) SELECT ENAME || '의 월급은 ' || SAL || '입니다.' FROM EMP; -- 5. 사원테이블의 이름과 직업을 서로 붙여서 출력 (출력예시) KING의 직업은 PRESIDENT 입니다.) SELECT..

    [Oracle] 함수(FUNCTION)_실습문제

    --1. JOB 테이블의 모든 정보 조회 SELECT * FROM JOB; --2. JOB 테이블의 직급 이름 조회 SELECT JOB_CODE, JOB_NAME FROM JOB; --3. DEPARTMENT 테이블의 모든 정보 조회 SELECT * FROM DEPARTMENT; --4. EMPLOYEE테이블의 직원명, 이메일, 전화번호, 고용일 조회 SELECT EMP_NAME, EMAIL, PHONE, HIRE_DATE FROM EMPLOYEE; --5. EMPLOYEE테이블의 고용일, 사원 이름, 월급 조회 SELECT HIRE_DATE, EMP_NAME, SALARY FROM EMPLOYEE; --6. EMPLOYEE테이블에서 이름, 연봉, 총수령액(보너스포함), 실수령액(총수령액 - (연봉*세금..

    [Oracle] JOIN (4) 자체 조인(SELF JOIN)

    4. 자체조인 (SELF JOIN) 같은 테이블을 다시 한번 조인하는 경우 -- 전체 사원의 사번, 사원명, 사원부서코드 ==> EMPLOYEE E -- 사수의 사번, 사수명, 사수부서코드 ==> EMPLOYEE M -->> 오라클 전용 구문 SELECT E.EMP_ID AS "사원사번", E.EMP_NAME AS "사원명", E.DEPT_CODE AS "사원부서코드", M.EMP_ID AS "사수사번", M.EMP_NAME AS "사수명", M.DEPT_CODE AS "사수부서코드" FROM EMPLOYEE E, EMPLOYEE M WHERE E.MANAGER_ID = M.EMP_ID; -->> ANSI 전용구문 SELECT E.EMP_ID AS "사원사번", E.EMP_NAME AS "사원명", E...

    [Oracle] JOIN (3) 비등가 조인(NON EQUAL JOIN)

    3. 비등가 조인 (NON EQUAL JOIN) => 얘는 그냥 참고용 매칭시킬 컬럼에 대한 조건 작성시 '=(등호)' 를 사용하지 않는 조인문 ANSI 구문으로는 JOIN ON만 사용 가능 -- 사원명, 급여, 최대 월급 한도 -->> 오라클 구문 SELECT EMP_NAME, SALARY, MAX_SAL FROM EMPLOYEE, SAL_GRADE --WHERE SALARY >= MIN_SAL AND SALARY > ANSI 구문 SELECT EMP_NAME, SALARY, MAX_SAL FROM EMPLOYEE JOIN SAL_GRADE ON (SALARY BETWEEN MIN_SAL AND MAX_SAL);

    [Oracle] JOIN (2) 포괄조인, 외부조인 (OUTER JOIN)

    2. 포괄 조인 / 외부 조인 ( OUTER JOIN ) 두 테이블 간의 JOIN시 일치하지 않는 행도 포함시켜서 조회 가능 단, 반드시 LEFT / RIGHT 지정해야됨!! (기준이 되는 테이블 지정) -- 사원명, 부서명, 급여, 연봉 SELECT EMP_NAME, DEPT_TITLE, SALARY, SALARY * 12 FROM EMPLOYEE JOIN DEPARTMENT ON (DEPT_CODE = DEPT_ID); -- 부서 배치가 아직 안된 사원 2명에 대한 정보가 조회 X -- 부서에 배정된 사원이 없는 부서 같은 경우도 조회 X -- 1) LEFT [OUTER] JOIN : 두 테이블 중 왼편에 기술된 테이블 기준으로 JOIN -->> ANSI 구문 SELECT EMP_NAME, DEPT_..

    [Oracle] JOIN (1) 등가조인(EQUAL JOIN), 내부조인(INNER JOIN)

    두 개 이상의 테이블에서 데이터를 조회하고자 할 때 사용되는 구문 조회 결과는 하나의 결과물(RESULT SET)로 나옴 관계형 데이터베이스는 최소한의 데이터로 각각의 테이블에 데이터를 담고 있음 (중복을 최소화하기 위해 최대한 쪼개서 관리함) -- 위의 두테이블에서 어떤 사원이 어떤 부서에 속해있는지 궁금함! 코드말고.. 이름으로.. => 관계형 데이터베이스에서 SQL문을 아용한 테이블간에 "관계"를 맺는 방법 (무작정 다 조회를 해오는게 아니라 각 테이블간 연결고리로써의 데이터를 매칭해서 조회 시켜야함!!) JOIN 크게 "오라클 전용구문" 과 "ANSI 구문" (ANSI == 미국국립표준협회) => 아스키코드표 만드는 단체! [ JOIN 용어 정리 ] 1. 등가조인 (EQUAL JO..