전세계 기업시장에서 굉장히 활용 많이 하는 관계형 DB 로 오라클이 있음.
상용 가격은 굉장히 비싸고, 유지보수 비용도 굉장히 높은것으로 알려져 있음.
마이크로서비스가 활성화 되면서 예전과 달리 비싼 비용의 오라클보다 무료 DB 로 전환하는 사례도 나타나고 있음
주로 서비스업체 중심으로 Mysql / Maria DB 가 많이 활용되고 SI 프로젝트는 아직도 전통의 강자 오라클이 많이 사용되고 있음
- SQL Developer
- Oracle SQL
- 호출(실행)할때마다 자동적으로 숫자를 증가시키는 것(객체)
- 기본키 용도로 사용(중복 없음 , null 없음)
- 채번 : 자동적으로 1씩 증가시키는 값(1 ~ n : 시퀀스대상)
사용법)
CREATE SEQUENCE 시퀀스명
INCREMENT BY 증가값
START WITH 시작값
MINVALUE 최소값
MAXVALUE 최대값
예 :
CREATE SEQUENCE SAMPLE_SEQ
INCREMENT BY 10
START WITH 1;
시퀀스가 증가함
사용법 :
SELECT SAMPLE_SEQ.NEXTVAL FROM DUAL;
예 :
SELECT SAMPLE_SEQ.NEXTVAL FROM DUAL;
최초 1번은 시퀀스명.NEXTVAL 로 실행후 확인 가능
사용법) 시퀀스명.CURRVAL
SELECT SAMPLE_SEQ.CURRVAL FROM DUAL;
-- 시퀀스 생성
CREATE SEQUENCE SAMPLE_SEQ
INCREMENT BY 10
START WITH 1; -- 생성(10씩 증가)
-- INSERT 문 정의 후 4번 실행
INSERT INTO DEPT_TEMP
VALUES(SAMPLE_SEQ.NEXTVAL, 'ACCOUNTING','NEW YORK');
사용법)
DROP SEQUENCE 시퀀스명
예 :
DROP SEQUENCE SAMPLE_SEQ;
- 컬럼에 인덱스를 지정하여 사용함
- 조회속도 향상을 위해 조건에 해당하는 컬럼에 인덱스를 생성함(지정함)
- 기본키(PK) : 중복방지 + NULL값방지 + 자동인덱스생성
사용법)
CREATE INDEX 인덱스이름 ON 테이블명(컬럼명);
예 :
CREATE INDEX IX_EMPLOYEE_ENAME ON EMPLOYEE(ENAME);
사용법)
DROP INDEX 인덱스명;
예 :
DROP INDEX IX_EMPLOYEE_ENAME;
사용법)
CREATE INDEX 인덱스명 ON 테이블명(컬럼명, 컬럼명2,...);
예 :
CREATE INDEX IX_DEPT_COM ON DEPARTMENT(DNAME, LOC);
-- 함수인덱스(수식인덱스)
CREATE INDEX IX_EMP_ANNSAL ON EMPLOYEE(SALARY * 12);
- 컬럼에 인덱스를 지정하여 사용함
- 조회속도 향상을 위해 조건에 해당하는 컬럼에 인덱스를 생성함(지정함)
- 기본키(PK) : 중복방지 + NULL값방지 + 자동인덱스생성
사용법 :
CREATE USER 계정명 IDENTIFIED BY 암호;
예 :
CREATE USER USERTEST01 IDENTIFIED BY pass1;
사용법)
GRANT 권한명 TO 유저명;
예 :
-- 사용법) GRANT 권한명 TO 유저명;
GRANT CREATE SESSION TO USERTEST01;
-- 테이블 생성 권한 주기
GRANT CREATE TABLE TO USERTEST01;
-- 공간에 대한 권한 주기(무한) : 테이블(논리공간) -> 물리공간 배정(할당)
GRANT UNLIMITED TABLESPACE TO USERTEST01;
- 롤 : 권한을 모아놓은 집합
- 접속 권한들의 모임 == CONNECT 롤
- 테이블,인덱스,함수등을 사용하는 권한 모임 == RESOURCE 롤
사용법)
GRANT 권한명 TO 유저명;
예 :
GRANT CONNECT, RESOURCE, CREATE VIEW TO USERTEST01;
사용법)
DROP USER 유저명;
예 :
DROP USER USERTEST01;
- 동의어 : 다른 데이터베이스나 다른 계정의 테이블,인덱스 등에 별명을 붙이는것
사용법)
CREATE SYNONYM 복사본명 FOR 원본명;
예 :
CREATE SYNONYM SAMPLETBL FOR SYSTEM.SAMPLETBL;
- 동의어 : 다른 데이터베이스나 다른 계정의 테이블,인덱스 등에 별명을 붙이는것
사용법)
DROP SYNONYM 동의어명
예 :
DROP SYNONYM SAMPLETBL;
- 하나 이상의 테이블이나 다른 뷰를 이용해서 생성하는 가상의 테이블
- 보안을 유지하기 위해 사용 : 사원테이블 - 급여컬럼(비밀 유지:대외비)
- SQL 문을 미리 만들어 놓고 재활용 : 코딩 생산성 향상
사용법)
CREATE OR REPLACE VIEW 뷰이름(컬럼명,컬러명2,...)
AS
SELECT 원본컬럼명, 원본컬럼명2,...
FROM 테이블명
WHERE 조건절
예 :
CREATE OR REPLACE VIEW VW_EMP_JOB(사번, 사원이름, 부서번호, 담당업무)
AS
SELECT ENO, ENAME, DNO, JOB
FROM EMPLOYEE
WHERE JOB LIKE 'SALESMAN%';
사용법)
DROP VIEW 뷰이름;
예 :
DROP VIEW VW_EMP_SALARY;