DB 2

신부경·2022년 9월 23일
0

DB

목록 보기
2/3

<숫자함수>
:숫자형 데이터를 조작하여 변환된 숫자 값을 반환하는 함수

  • ABS함수/Floor함수(ABS함수는 절대값을 반환)
    SQL>SELECT ABS(-15) FROM DUAL; //15
    SQL>SELECT FLOOR(34.5678) FROM DUAL; //34

  • ROUND 함수(특정 자리에서 반올림). ROUND(대상, 표시할 자릿수)

<날짜함수>주 사용
DATE(날짜)형에 사용하는 함수, 결과 값으로 날짜 또는 기간 얻음
기간은 주로 일 단위로 계산, 월 단위로 계산되기도 함.

  • SYSDATE: 시스템 저장된 현재 날짜 반환***
  • MONTHS_BETWEEN: 두 날짜 사이가 몇 개월인지를 반환
  • ADD_MONTHS:특정 날짜에 개월 수를 더한다
  • NEXT_DAY: 특정 날짜에서 최초로 도래하는 인자로 받은 요일의 날짜 반환
  • LAST_DAY:해당 달의 마지막 날짜 반환
  • ROUND: 인자로 받은 날짜를 특정 기준으로 반올림
  • TRUNC:인자로 받은 날짜를 특정 기준으로 버림

SYSDATE


->칼럼명 대신 별칭 지정, 출력되는 값은 칼럼값이지만 헤딩에 출력되는 것은
칼럼명 대신 별칭 출력

MONTHS-BETWEEN(date1, date2) : 두 날짜 사이 간격 계산

ADD_MONTHS : 특정 개월 수를 더한 날짜를 구함
NEXT_DAY(date, 요일):지정 요일에 해당되는 날짜 반환하는데 가장 빠른 날짜 반환
ALTER SESSION SET NLS_LANGUAGE=AMERICAN; : 언어 영어로 변환
LAST_DAY : 해당 달의 마지막 날짜 반환
TRUNC(date,’MONTH’) : 날짜 잘라내기
<변환함수>

  • TO-CHAR : 날짜형 혹은 숫자형을 문자형으로 변환(주 사용)
  • TO_DATE: 문자형을 날짜형으로 변환
  • TO_NUMBER : 문자형을 숫자형으로 변환

TO-CHAR(날짜 데이터,’출력형식’)


<일반함수>

  • NVL: 첫번째 인자로 받은 값이 null과 같으면 두 번째 인자 값으로 변경

  • DECODE: 첫 번째 인자로 받은 값을 조건에 맞춰 변경(if와 유사)

    SQL> SELECT DEPTNO,DECODE(DEPTNO,10, ‘ACCOUNTING’,
    20, ‘RESEARCH’,
    30, ‘SALES’,
    40, ‘OPERATIONS’)AS DNAME
    FROM EMP;

  • CASE: 조건에 맞는 문장 수행(switch와 유사)

    SQL>SELECT ENAME,DEPTNO,
    CASE WHEN DEPTNO=10 THEN ‘ACCOUNTING’
    WHEN DEPTNO=20 THEN ‘RESEARCH’
    WHEN DEPTNO=30 THEN ‘SALES’
    WHEN DEPTNO =40 THEN ‘OPERATIONS’
    END DNAME
    FROM EMP;

<그룹함수>

주의: 그룹함수 결과값!은 하나인데 불러올 값을 여러개로 해버릴때 오류발생!
(숫자여야 집합함수 사용 가능)

  • GROUP BY절 (=부서별)중요***
    : 특정 칼럼 값을 기준으로 테이블을 그룹별로 나누기 위해 사용

<조인/join>완전 중요!!!!
하나 이상의 테이블에서 원하는 결과를 가져오기 위한 작업
(하나 이상의 테이블이 빈번히 결합되어 사용,
한 개 이상의 테이블에서 데이터를 조회하기 위해서 사용하는 게 조인)
+)조인 개수는 무조건 Table-1
조인은 Primary Key와 Foreign Key를 통한 다른 테이블 행과 연결함.

<조인 규칙>
1. Ptimary Key와 Foreign Key열을 통한 다른 테이블의 행과 연결
2. 연결 Key 사용으로 테이블과 테이블이 결합
3. Where 절에서 조인 조건을 사용한다(조인조건개수 = 연결 테이블 수-1)
4. 명확성을 위해 칼럼 이름 앞에 테이블명 또는 테이블 별칭을 붙임.

Equi Join(주 사용***)

동일 칼럼을 기준으로 조인(inner join, simple join)
두 테이블에서 공통적으로 존재하는 칼럼의 값이 일치되는 행을 연결하여 결과를 생성
SQL>SELECT ENAME,DNAME,
FROM EMP,DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO;
: EMP 테이블과 DEPT 테이블의 공통 칼럼인 DEPTNO의 값이 일치(=)되는 조건을 WHERE 절에 사용
두 테이블을 조인하려면 일치되는 공통 칼럼을 사용해야함
칼럼 명이 같게 되면 혼동이 오기 때문에 칼럼명 앞에 테이블명을 점(.)과 함께 기술
:조인한 결과를 살펴보면 부서번호를 기준으로 같은 값을 가진 사원 테이블과부서 테이블이 결합됨.

  • Cross Join

    2개 이상의 테이블이 조인될 때 where절에 의해 공통되는 칼럼에 의한 결합이 발생되지
    않는 경우/ 테이블에 존재하는 모든 데이터가 검색 결과로 나타남

  • Non-Equi Join

    동일 칼럼이 없이 다른 조건을 사용하여 조인
    조인할 테이블 사이에 칼럼의 값이 직접적으로 일치하지 않을 시 사용하는 조인
    ’=‘를 제외한 연산자 사용

  • Outer Join

    조인 조건에 만족하지 않는 행도 나타낸다.

  • Self Join

    한 테이블 내에서 조인

SELECT E.ENAME, D.DNAME, E.DEPTNO, D.DEPTNO FROM EMP E,DEPT D WHERE E.DEPTNO = D.DEPTNO;

SELECT E.ENAME, D.DNAME
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO AND E.ENAME='SCOTT';

SELECT E.NAME,D.DEPTNO, D.DNAME FROM EMP E, DEPT D WHERE E.DEPTNO(+) = D.DEPTNO; : 부서테이블 E 와 사원테이블 D 중에 하나는 존재하고 하나는 존재하지 않는 데이터가 있을 경우에 '+' 기호를 사용해주면 조인 조건에서 정보가 부족한 칼럼 명 뒤에 위치하게 하면 됨.
profile
개발괴발

0개의 댓글

관련 채용 정보