관리 메뉴

IT journey

35일차 함수, 오라클 오브젝트, 인덱스 본문

끄적끄적/Oracle

35일차 함수, 오라클 오브젝트, 인덱스

step 2021. 8. 13. 18:26
728x90
반응형

34일차 조인, 서브쿼리(feat. 그 외)

 

34일차 조인, 서브쿼리(feat. 그 외)

30일차 테이블 복사, 지우기,수정, 함수 이용한 채번 로직 30일차 테이블 복사, 지우기,수정, 함수 이용한 채번 로직 29일차 계정 생성하고 테이블 만들고 값 추가하는 방법 29일차 계정 생성하고

step-journey.tistory.com

30일차 테이블 복사, 지우기,수정, 함수 이용한 채번 로직

 

30일차 테이블 복사, 지우기,수정, 함수 이용한 채번 로직

29일차 계정 생성하고 테이블 만들고 값 추가하는 방법 29일차 계정 생성하고 테이블 만들고 값 추가하는 방법 28일차 오라클에 기록한 내용을 JAVA에 뿌려주려면? 28일차 오라클에 기록한 내용을 J

step-journey.tistory.com

29일차 계정 생성하고 테이블 만들고 값 추가하는 방법

 

29일차 계정 생성하고 테이블 만들고 값 추가하는 방법

28일차 오라클에 기록한 내용을 JAVA에 뿌려주려면? 28일차 오라클에 기록한 내용을 JAVA에 뿌려주려면? 27일차 Oracle & JDBC에 활용되는 함수 27일차 Oracle & JDBC에 활용되는 함수 아래 발행 글을 보시면

step-journey.tistory.com

28일차 오라클에 기록한 내용을 JAVA에 뿌려주려면?

 

28일차 오라클에 기록한 내용을 JAVA에 뿌려주려면?

27일차 Oracle & JDBC에 활용되는 함수 27일차 Oracle & JDBC에 활용되는 함수 아래 발행 글을 보시면 조금 더 쉽게 접근이 가능합니다. 24일차 자바 입출력 2편 24일차 자바 입출력 2편 아래에 있는 이전

step-journey.tistory.com

27일차 Oracle & JDBC에 활용되는 함수

 

27일차 Oracle & JDBC에 활용되는 함수

아래 발행 글을 보시면 조금 더 쉽게 접근이 가능합니다. 24일차 자바 입출력 2편 24일차 자바 입출력 2편 아래에 있는 이전 발행글을 참고하시면 아래 내용을 이해하는데 도움이 됩니다. 1.8 버전

step-journey.tistory.com

26일차 용어 정리& SELECT

 

26일차 용어 정리& SELECT

아래 발행 글을 보시면 조금 더 쉽게 접근이 가능합니다. 아래의 예를 직접 만들었습니다 :) 2021.07.31 - [끄적끄적/Oracle] - 25일차 테이블과 조회 2021.06.10 - [개인공부공간/DBMS] - DBMS - 개요 2021.06.11..

step-journey.tistory.com

25일차 테이블과 조회

 

25일차 테이블과 조회

아래 발행 글을 보시면 조금 더 쉽게 접근이 가능합니다. :) 2021.06.10 - [개인공부공간/DBMS] - DBMS - 개요 2021.06.11 - [개인공부공간/DBMS] - DBMS-Table&레코드와 시퀀스 2021.06.12 - [개인공부공간/DBMS]..

step-journey.tistory.com

 

JAVA-자료형

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) 1. print(), println(), printf() 의 차이 print() 출력 후 줄을 바꾸지 않습니다. println() 출력 후 자리를 바꿉니다. printf() printf("출력..

step-journey.tistory.com

2021.08.02 - [끄적끄적/Oracle] - 26일차 용어 정리& SELECT

 

26일차 용어 정리& SELECT

아래 발행 글을 보시면 조금 더 쉽게 접근이 가능합니다. 아래의 예를 직접 만들었습니다 :) 2021.07.31 - [끄적끄적/Oracle] - 25일차 테이블과 조회 2021.06.10 - [개인공부공간/DBMS] - DBMS - 개요 2021.06.11..

step-journey.tistory.com

2021.07.31 - [끄적끄적/Oracle] - 25일차 테이블과 조회

 

25일차 테이블과 조회

아래 발행 글을 보시면 조금 더 쉽게 접근이 가능합니다. :) 2021.06.10 - [개인공부공간/DBMS] - DBMS - 개요 2021.06.11 - [개인공부공간/DBMS] - DBMS-Table&레코드와 시퀀스 2021.06.12 - [개인공부공간/DBMS]..

step-journey.tistory.com

2021.06.10 - [개인공부공간/DBMS] - DBMS - 개요

 

DBMS - 개요

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) DB ○ DB의 정의 다량의 데이터를 저장할 수 있는 저장소입니다. ○ 특징 (1) Real-time Accessibilites(실시간 접근이 가능)  -> 즉시

step-journey.tistory.com

2021.06.11 - [개인공부공간/DBMS] - DBMS-Table&레코드와 시퀀스

 

DBMS-Table&레코드와 시퀀스

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) ※ 들어가기 전, 공지사항 1. 실습 내용은 이어지므로 차례대로 하는 것을 권장해드립니다. 2. 본문에 들어가기 전, DBMS - 개요

step-journey.tistory.com

2021.06.12 - [개인공부공간/DBMS] - DBMS- 오라클 함수 1편

 

DBMS- 오라클 함수 1편

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) ※ 들어가기 전 공지사항 DBMS - 개요 편을 참고해 계정을 생성해주시고, 즉시 " data-og-host="step-journey.tistory.com" data-og-source-url..

step-journey.tistory.com

2021.06.14 - [개인공부공간/DBMS] - DBMS-계정권한

2021.06.14 - [개인공부공간/DBMS] - DBMS-데이터를 검색,수정,삭제(feat.오라클 함수 2편)

 

DBMS-데이터를 검색,수정,삭제(feat.오라클 함수 2편)

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) ※ 들어가기 전 공지사항 DBMS - 개요 편을 참고해 계정을 생성해주시고, 즉시 " data-og-host="step-journey.tistory.com" data-og-source-ur..

step-journey.tistory.com

2021.06.15 - [개인공부공간/DBMS] - DBMS-서브쿼리, join, 제약조건, 뷰

 

DBMS-서브쿼리, join, 제약조건, 뷰

직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :) ※ 들어가기 전 공지사항 아래 세 개의 이전 발행글을 미리 보고 오시면 이번 포스팅을 보다 수월하게 이해할 수 있습니다. 1.

step-journey.tistory.com


1. 함수

○ 그룹함수 VS 단일함수

 

(1) 그룹함수

SUM 그룹의 누적 합계 반환
COUNT 그룹의 총 개수 반환
AVG 그룹의 평균 반환
MAX 그룹의 최대값 반환
MIN 그룹의 최소값 반환

이 그룹함수를 쓰면 결과는 1개의 행으로 구해집니다.

 

(2) 단일함수

ROUND(숫자1,숫자2) : 숫자1을 반올림하는 함수로, 소수점 아래 숫자2 만큼 보여줍니다.

TO_CHAR(), NVL() ...

이 단일함수를 쓰면 결과는 여러 개의 행으로 구해집니다.

 

ROLLUP 함수

GROUP BY 절과 함께 사용하는 것으로, SELECT 된 데이터와 그 데이터의 총계를 구합니다.

 

예를 들어 1등이 1명, 2등이 2명, 3등이 1명있다고 가정할 때 

RANK 함수는 1,2,2,4 의 순위가 나오고

DENSE_RANK 함수는 1 2 2 3 의 순위가 나옵니다.

 

○ 그룹별로 순위를 부여할 때는 RANK () OVER (PARTITION BY 컬럼) 로 씁니다.

 

페이지를 나눌 때는 ROW_NUMBER() OVER(컬럼)으로 씁니다.

2. 오라클 오브젝트

(1) VIEW(뷰)

VIEW 권한을 주고싶을 때에는

CONN SYSTEM/1234;

GRANT CREATE VIEW TO 유저네임;

VIEW란

직접적인 테이블 접근을 제한하기 위해서 사용합니다.

뷰는 테이블에 대한 제한을 가지고 테이블의 일정한 부분만 보일 수 있는 가상 테이블입니다.

CREATE -AS 구문을 씁니다.CREATE [OR REPLACE][FORCE|NOFORCE] VIEW viewname[(alies,alies,...)]AS subquery;-뷰를 만들 때 OR REPALCE를 쓰고, 캘럼 앨리어스를 이용하여 어떤 컬럼인지 알 수 없게 할 때 이용하기도 합니다.- NOFORCE : DEFAULT 로 기본 테이블이 없으면 뷰를 생성하지 않습니다.- FORCE : 기본 테이블이 없어도 USER__VIEW 데이터 사전에 뷰를 생성합니다.  뷰는 조회용으로만 씁니다.

단순 뷰(Simple View) : 기본 테이블이 하나일 때 (ISUD 가능)

복합 뷰(Complex View) : 기본 테이블이 2개 이상일 때(ISUD 불가능)

WITH CHECK OPTION 을 설정하면 설정한 것만 삽입가능

○ WITH READ ONLY는 말 그대로 읽기만 가능합니다.

뷰는 조회 목적이므로 WITH READ ONLY로 생성하는 것이 원칙입니다.

(2) SEQUENCE(시퀀스) 

오라클 시퀀스 자동 증가 하는 기능 

CREATE SEQUENCE sequence_name

[START WITH N]

[INCREMENT BY N]

[{MAXVALUE n|NOMAXVALUE}]

[{MINVALUE n|NOMINVALUE}]

[{CYCLE | NOCYCLE}]

[{CACHE n | NOCACHE}]

3. INDEX

○ 오라클 데이터베이스에서 조회속도를 향상하기 위해서 씁니다.

○ 테이블 생성할 때 PK를 생성하면 오라클 엔진(옵티마이저)에서 자동으로 인덱스를 생성합니다.

그의 이름은 SYS 접두어 + C + 0000000 규칙으로 생성됩니다.

자동으로 인덱스가 생성된 경우에는 사용자 정의로 인덱스를 사용할 수 없습니다.

○ PK를 설정하지 않아서 인덱스를 생성할 때는 아래 두가지로 나뉘어 집니다.

(1) 단일 인덱스

CREATE INDEX 인덱스명 ON 테이블명(컬럼);

(2) 결합 인덱스

CREATE INDEX 인덱스명 ON 테이블명(컬럼1,컬럼2,...)

○ 인덱스를 조회할 때는 

SELECT TABLE NAME, INDEX_NAME, COLUMN NAME  FROM USER_INDEX_COLUMN WHERE TABLE_NAME IN ('테이블 이름'); 을 이용합니다.

4. MAX 값 채번 로직에 힌트 써보기

SELECT /*+INDEX_DESC(인덱스이름)*/
    NVL(MAX(SUBSTR(NULL,-4)),0) +1
FROM DUAL;

728x90
반응형
Comments