본문 바로가기
BACK-END

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

by 지에스정 2022. 3. 11.

오라클 데이터베이스(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를 이용해야 하며, 이 부분은 다음 포스팅에서 설명할 예정이다.