Database/Oracle

    [Oracle] 서브쿼리 (Subquery)

    - 하나의 SQL문 안에 포함된 또 다른 SELECT문 - 메인 SQL문을 위해 보조 역할을 하는 쿼리문 * 서브쿼리의 구분 서브쿼리 수행한 결과값이 몇 행 몇열이냐에 따라서 분류됨 - 단일행 서브쿼리 : 서브쿼리의 조회 결과값의 개수가 오로지 1개 일 때 (한 행 한 열) - 다중행 서브쿼리 : 서브쿼리의 조회 결과값이 여러행 일 때(여러행 한열) => 동명이인 노옹철 - 다중열 서브쿼리 : 서브쿼리의 조회 결과값이 한 행이지만 컬럼이 여러개일 때 (한 행 여러 열) - 다중행 다중열 서브쿼리 : 서브쿼리 조회 결과값이 여러 행 여러 컬럼일 때 (여러 행 여러 열) >> 서브쿼리 종류가 뭐냐에 따라서 서브쿼리 앞에 붙는 연산자가 달라짐! -- 간단 서브쿼리 예시1 -..

    [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 (5) 다중 조인

    2개 이상의 테이블을 가지고 JOIN 할 때 -- 사번, 사원명, 부서명, 직급명 조회 SELECT * FROM EMPLOYEE; -- DEPT_CODE, JOB_CODE SELECT * FROM DEPARTMENT; -- DEPT_ID SELECT * FROM JOB; -- JOB_CODE -->> 오라클 전용 구문 SELECT EMP_ID, EMP_NAME, DEPT_TITLE, JOB_NAME FROM EMPLOYEE E, DEPARTMENT, JOB J WHERE DEPT_CODE = DEPT_ID AND E.JOB_CODE = J.JOB_CODE; -->> ANSI 구문 SELECT EMP_ID, EMP_NAME, DEPT_TITLE, JOB_NAME FROM EMPLOYE..

    [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..