BACK-END

[Oracle] 오라클 데이터베이스

지에스정 2022. 3. 11. 15:24

오라클 데이터베이스(Oracle Database 또는 Oracle RDBMS) 미국 오라클(Oracle)사의 관계형 데이터베이스 관리 시스템의 이름이다.

현재 유닉스 환경에서 가장 널리 사용되는 RDBMS이다.

검색이나 업데이트용 언어로는 국제표준화기구의 표준 구조화 조회 언어와 PL/SQL 지원한다.

 


오라클은 MySQL이라는 경쟁 언어를 가지고 있으면서도 오라클RDBMS를 가지고 있다.

오라클에 비해 MySQL이 더 편한 부분이 많지만 , 일반기업에서 오라클을 많이 사용하고 있는 편이다.

오라클 언어 규칙은 MySQL과 크게 다르지는 않지만 약간의 차이점을 있다.

 

자료형

 

    숫자

        NUMBER(자리수) : 정수

        NUMBER(자리수, 소수점자리수) : 실수

 

    문자열

        CHAR(크기)

        VARCHAR2(크기)

 

    시간,날짜

        DATE

 

MySQL에서 시간,날짜를 현재시간으로 나타내는 now()에 해당하는 규칙은 sysdate를 사용하면 된다

 

오라클 테이블 생성 예시)

CREATE TABLE spring_board(
	boardnum number(10),
	boardtitle varchar2(1000) NOT NULL,
	boardcontents varchar2(4000) NOT NULL,
	regdate DATE DEFAULT sysdate,
	CONSTRAINT board_pk PRIMARY KEY(boardnum)
);

PK를 선언 할 떄는 CONSTRAINT 뒤에 해당 pk이름을 추가로 선언해준다.

 

MySQL과 오라클의 차이점으로, MySQL에서는 auto_increment를 해당 컬럼 뒤에 추가 하면 데이터가 추가될때마다 인덱스가 하나씩 늘어날 수 있다.

하지만 오라클에서는 SEQUENCE를 생성해 주어야 한다.

 

CREATE SEQUENCE seq_board;

 

SEQUENCE를 선언하고 난 이후 데이터를 추가할때 시퀀스명.nextval을 함께 추가해주어야 한다.

 

INSERT INTO SPRING_BOARD (boardnum, boardtitle, BOARDCONTENTS)
VALUES (seq_board.nextval , '테스트 제목','테스트 내용');

 

이런방식으로 인덱스의 자동증가를 하기위해서는 MySQL에 비해서 조금 더 복잡한 과정을 거친다.

 


인덱스

 

데이터베이스 테이블을 하나의 책이라고 가정하면, 인덱스는 각 페이지 번호를 의미한다.

이를 통해서 원하는 내용을 위에서부터 혹은 반대로 찾아나가는 것을 스캔한다 라고 표현한다.

데이터베이스에 테이블을 만들 떄 PK를 부여하면 PK컬럼을 기준으로 PK이름과 동일한 인텍스가 생성되고 아는 실제 테이블의 데이터가 어디에 저장되어 있는지 (ROWID)를 찾을 수 있는 KEY값이다.

실제 테이블의 데이터가 저장된 각 행에는 ROWID라는 것이 존재하고 데이터베이스 내의 주소값 간은 의미를 가진다.

 

INDEX

TABLE

board_pk ROWID boardnum title ...

1 AAE80 1 ...

2 AAE81 2 ...

3 AAE82 513 ...

 

513 AAF10 3 ...

 

 

 

 

힌트(Hint) : /*+ hint구문 */

SELECT문에 실행하고 싶은 계획을 전달할 떄 사용하는 문법

잘못 작성되어도 실행할 떄는 무시되며 별도의 오류 는 발생하지 않는다.

/*+ 시작되며 */로 마친다. 또한 뒤에 컬럼명을 작성할 떄 , 를 사용하지 않는다.

인덱스 기준으로 검색을 해올 시 정렬이 따로 필요하지 않으므로 속도가 향상된다

 

 

 

오라클을 다운받기 위해서는 오라클 홈페이지에서 다운받으면 된다 (Windows / Linux)

 

https://www.oracle.com/kr/downloads/

 

  • Database Enterprise/Standard Editions

눌러서 다운받은 후 oracle 홈페이지에서 회원가입을 한 후 설치과정을 진행하면 된다.

 

다만, MacOS에서는 다운받아서 사용할 수 없기 때문에 docker를 이용해야 하며, 이 부분은 다음 포스팅에서 설명할 예정이다.