오라클

Dev.Shinny·2023년 6월 2일
0

오라클

:= 대입 연산자
=>
% 속성 지시자
~=
^=
.. 범위연산자
: 호스트 변수 지시자
|| 하위 연산자

SYSDATE 함수
시스템의 설정된 날짜 값을 반환한다.

TO_DATE("문자열", "날짜 포맷")
오라클에서 문자열을 날짜형 데이터로 형 변환을 하기 위해서는 TO_DATE 함수를 사용하면 된다.

SUBSTR( 데이터명, 시작 범위, 종료 범위)
EX ) SUBSTR(NAME, 1,3)

INSTR : 문자열에서 특정 철자 위치 출력
REPLACE(SAL, 0, '' ) SAL 값의 0은 로 대체해서 출력

LPAD/RPAD : 특정 철자를 N개 만큼 채우기
RPAD(SAL, 10, '') SAL 값의 자릿수를 10으로 하고 남은 자리는 로 출력

TRIM/R<RIM 문자 출력시 특정 철자 잘라내기

ADD_MONTHS : 개월 수 +- 계산

TO_CHAR : 문자형으로 데이터 유형 변환 ( 숫자, 날짜 유형을 문자형으로 변환한다)

NVL(컬럼명, 대체 데이터)
NVL(PHONE, '없음') PHONE 데이터가 NULL인 경우 '없음'으로 출력
NVL2(PHONE, '있음', '없음') PHONE 데이터가 있는 경우 '있음' 없는 경우 '없음' 출력

DECODE(컬럼명, 조건1, 결과1, 조건2, 결과2......) : IF문

COUNT 함수는 NULL 값 무시

RANK 분석 함수 - 순위

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
Non-Equi Join

  • 두 개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하지 않는 경우에 사용된다.
  • Non EQUI JOIN의 경우에는 “=” 연산자가 아닌 다른(Between, >, >=, <, <= 등) 연산자들을 사용하여 JOIN을 수행하는 것이다.
  • 그러나 두 개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하지 않는 경우에는 EQUI JOIN을 사용할 수 없다.
  • 이런 경우 Non EQUI JOIN을 시도할 수 있으나 데이터 모델에 따라서 Non EQUI JOIN이 불가능한 경우도 있다.
SELECT E.ENAME, E.JOB, E.SAL, S.GRADE 
 FROM   EMP E, SALGRADE S 
 WHERE  E.SAL BETWEEN S.LOSAL AND S.HISAL;

OUTER JOIN

간단하게 말하여 데이터가 없을 수도 있는 쪽 JOIN 컬럼에 (+)를 추가하여 OUTER JOIN이 가능하다.

SELF JOIN

USING

조인에서 WHERE 테이블1.컬럼명 = 테이블2.컬럼명 대신 USING (컬럼명) 사용
-> ANSI JOIN 문법

NATURAL JOIN

두 테이블의 동일한 이름(컬럼명)을 갖는 컬럼은 모두 조인이 된다.

UNION JOIN

<주의 사항>

  • 위쪽 쿼리와 아래쪽 쿼리의 컬럼 개수가 동일해야 한다.
  • 위쪽 쿼리와 아래쪽 쿼리 컬럼 데이터 타입이 동일해야 한다.
  • 결과로 출력되는 컬렴ㅇ은 위쪽 쿼리의 컬럼명으로 출력
  • ORDER BY 절은 제일 아래쪽 쿼리에만 작성 가능

INTERSECT

TRUNC

오라클에서 소수점을 절사(버림)하거나 날짜의 시간을 절사 하기 위해서는 TRUNC 함수를 사용한다

기본 사용법

WITH temp AS (
  SELECT TO_DATE('2018-12-13 22:10:59', 'YYYY-MM-DD HH24:MI:SS') dt, 1234.56 nmb 
    FROM dual 
)  

SELECT dt
     , TRUNC(dt)  --시간 절사
     , nmb
     , TRUNC(nmb) --소수점 절사 
  FROM temp

시간 절사 방법

WITH temp AS (
  SELECT TO_DATE('2018-12-13 22:10:59', 'YYYY-MM-DD HH24:MI:SS') dt, 1234.56 nmb
    FROM dual 
)  

SELECT dt 
     , TRUNC(dt, 'DD')   --시간 절사 
     , TRUNC(dt, 'HH24') --분, 초 절사
     , TRUNC(dt, 'MI')   --초 절사
  FROM temp

https://krapi.teamblind.com/auth/web/email?k=SCxUEAG2uaDUKX17igOqw8Ox5BBIuXIdrXvfmEBDq4FBqE1BE7msLlkuqSoFGRgOQoDeff&lang=ko

profile
Hello I'm Shinny. A developer who try to enjoy the challenge.

0개의 댓글