본문 바로가기
  • RATEL.SHO
[ORACLE]

Oracle [0]

by ratelsho 2023. 5. 9.

ORACLE

  • DBMS(Database Management System)

-정의(Definition): 응용 프로그램이 요구하는 DB구조, 변경, 제거

-조작(Manifulation): 삽입, 갱신, 삭제

-제어(Controll): DB 접근할 수 있는 사용자 제한 및 성능 관리

    -  관계형 데이터베이스(Relational Database)

-통상적으로 RDB라고 함

-행과 열로 구분하는 2차원 테이블 형태로 구성

-오라클 DBMS, MS SQL SERVER, MYSQL, PostgreSQL

    -  ORACLE의 인기

-DB Engines Ranking 1위

-국내 시장 점유율 70%

    -  ORACLE의 장점

-중앙 집중 방식, 쿼리 최적화 프로그램 등

-다양한 플랫폼 지원(Windows, MacOS, Linux 등)

 

오라클 데이터베이스 구조

 

  • PGA(Program Global Areas): 비공유 메모리, 각 서버 프로세스에 대한 데이터 정보 포함, 유저의 글로벌 데이터나 세션 상태정보, 참조되는 포인터 정보
  • SGA(System Global Area)

-Shared Pool: 공유 SQL 영역 및 라이브러리 캐시, 옵티마이저, 하드 파싱, 소프트 파싱

-Large Pool: 백업이나 Recovery 작업 시 메모리 할당

-Java Pool: 오라클 DB에서 자바 이용할 수 있도록 도와줌

주요 오라클 서비스

  • OracleServiceMyORACLE

-OracleService + SID 형태로 구성된 서비스, 오라클 사용 시 반드시 맨 먼저 시작됨

  • OracleOraBb19C_home1TNSListener

-리스너 서비스로 네트워크를 통해 클라이언트(오라클 사용자)와 오라클 서버와의 연결을 담당하는 관리 프로그램 

    -   OracleDBConsolemyoracle

-EM(Enterprise Manager)을 사용할 경우 시작해야 하는데, EM은 설치한 오라클을 관리하 프로그램

오라클 SQL 입문 문법

  • 필요한 부분 위주

-논리 연산자: 3개 이상의 조건문 지정 시, AND의 우선 순위가 OR보다 높음

-LIKE 연산자: %, _, [], [^]  // %나 _같은 와일드 카드 자체를 검색하려면 문자 그대로 사용해서는 안됨, 이 때 ESCAPLE 연산자가 필요하다.

-LIKE ~ ESCAPE 연산자 

- 날짜 시간 함수

오라클 SQL 서브쿼리 문법

  • 단일행 서브쿼리: 하나의 값만 리턴한다. 값 하나를 리턴한다

// 비교연산자 ( =, <, <=, >=.<>) 

  • 다중행 서브쿼리: 여러 개의 행을 리턴한다.

// IN, ANY, ALL, EXISTS 사용 

  • 다중행 열 서브쿼리: 여러 개의 열로 구성된 여러 개의 행인 테이블을 리턴한다.

SELECT 6가지 절

조인 문법의 종류

오라클 SQL 윈도우 함수 문법

  • 기본 개념 

현재 행과 관련된 행 집합에서 쿼리 작업 수행, GROUP BY 집계 함수와 유사하지만 결과값에서 모든 행이 존재 할 수 있다. Ranking, 누적 계산, 이동 평균 계산 진행 가능

 

Ranking 함수

Row_Number()는 두 행이 값이 동일한 경우에도 항상 고유한 번호를 할당한다.

RANK() 동일한 값을 가진 행에 같은 번호를 할당하고 이러한 경우 다음 숫자를 건너뛴다.

DENSE_RANK() 값이 동일한 행에 같은 숫자를 할당함. 다음 숫자를 건너뛰지 않는다.

 

 

누적비율

 

FIRST_VALUE 함수: 그룹 내의 첫 값을 구한다.

LAST_VALUE 함수: 그룹 내의 마지막 값을 구한다. (전체 그룹에 대한 마지막 값을 구하려면 ROWS 옵션을 부여한다.)

 

오라클 PIVOT 함수 문법

  • 개념: 행으로 나열되어 있는 데이터를 열로 나열하여 보기 쉽게 가공함
  • 피봇은 세로행을 가로열로 회전시켜 가독성을 향상시킴 

 

SECOND CLASS

 

메인쿼리랑 서브쿼리를 구분

   Ex) SELECT * FROM tStaff WHERE (depart, salary) IN (SELECT depart, MAX(salary) FROM tSTAFF GROUP BY depart);

    ANY, ALL은 코드를 합칠 때 // 있다는 것만 알아두기

Jenkins에서 가장 많이 썼던 것 ( 빈도를 따지면 )

-- 인라인 뷰

-- SELECT의 중첩

-- WHERE 절 : 조건에 사용할 값을 찾는다. 

-- SELECT 절 : 출력할 값을 찾는다

-- FROM 절 : 출력 대상 테이블을 생성한다. (인라인뷰, INLINE VIEW)

-- 인라인뷰의 별명

-- 메모리상에서 잠시 생성 후, 사용하고 나면 사라지는 임시 테이블

-- 영구적으로 저장하는 것이 아님

 

'[ORACLE]' 카테고리의 다른 글

데이터 모델링 [0]  (0) 2023.05.09