oracle 개념 정리(20220105)

홍륜건·2022년 1월 5일
0

스키마란

스키마는 데이터베이스 구조와 명세를 기술해 놓은것 (테이블, 뷰, 인덱스 등 객체와 제약조건등의 구조도 또는 명세서). 논리적 개념의 일반적인 데이터베이스 용어. 유저의 스키마는 유저의 테이블 및 구조를 한눈에 볼 수 있는 ERwin 다이어 그램을 가리키는 것

일반적으로 프로젝트에서 말하는 스키마는 개념스키마를 뜻한다.
개념 스키마는 사용자 관점을 통합한 조직 전체의 DB를 기술하는 것.
모든 응용 시스템이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 DB를 기술한 것으로 DB에 저장하는 데이터와 그들의 관계를 표현한 스키마

Oracle을 이용한 스키마 구축 절차

  • 스키마 생성
  • 테이블 생성
  • 데이터 입력
  • 데이터 활용

테이블 외의 데이터베이스 개체의 활용

  • 인덱스
  • 스토어드 프로시저
  • 트리거

SELECT문

  • 테이블 전체 조회
SELECT * from [테이블명];
  • 테이블내의 몇가지 컬럼조회
SELECT 컬럼1, 컬럼2 from [테이블명];
  • 테이블내의 몇가지 컬럼중 특정 데이터만 조회
SELECT 컬럼1,컬럼2 from [테이블명] where 컬럼3="값"
  • 별칭으로 컬럼 조회
SELECT 컬럼1 "별칭1", 컬럼2 as "별칭2" , 컬럼 별칭3 from [테이블명];
  • [distinct]로 중복된 값 제거하고 조회
SELECT DISTINCT 칼럼1,칼럼2 from 테이블명;

INSERT문

  • 일반적인 INSERT문
INSERT INTO [테이블명] (컬럼1, 컬럼2, 컬럼3......) VALUES (값1, 값2, 값3......)
  • 컬럼명을 생략한 INSERT문
    컬럼의 순서에 맞게 값을 입력해야한다.
INSERT INTO [테이블명] VALUES (값1, 값2, 값3......)
  • SELECT문을 사용한 INSERT문
    대규모의 데이터를 삽입할때 SELECT로 조회한 값을 테이블에 INSERT하는 방법.
INSERT INTO [테이블명] (컬럼1, 컬럼2, 컬럼3......) SELECT문
  • INSERT 묵시적 형변환
    데이터를 삽입할때는 데이터 형을 맞춰주어야한다.
    숫자로 이루어진 '문자열' 데이터를 삽입시,
    데이터 타입이 맞지 않더라도 숫자형으로 묵시적형변환이 일어나 삽입 될 수 있다.

DROP, DELETE, TRUNCATE

  • DROP 명령어는 데이블 전체를 삭제, 공간, 객체를 삭제한다. 삭제 후 절대 되돌릴 수 없다.
DROP TABLE [테이블명]; 
  • DELETE 명령어는 데이터는 지워지지만 테이블 용량은 줄어 들지 않는다. 원하는 데이터만 지울 수 있다. 삭제 후 잘못 삭제한 것을 되돌릴 수 있다.
DELETE TABLE [테이블명];
  • TRUNCATE 명령어는 용량이 줄어 들고, 인덱스 등도 모두 삭제 된다. 테이블은 삭제하지는 않고, 데이터만 삭제한다. 한꺼번에 다 지워야 한다. 삭제 후 절대 되돌릴 수 없다.
TRUNCATE TABLE [테이블명];

VIEW

오라클에서 뷰(VIEW)는 테이블과 흡사한 오브젝트이다. 뷰는 실제로 데이터를 저장하고 있지는 않지만 DML 작업이 가능한 가상의 테이블이라고 생각하면 된다.

복잡한 쿼리를 view로 저장시켜놓으면 다음부터는 저장한 view의 정보만 가져오면 되므로 쉽게 좀 더 편리하게 사용할 수 있다.

뷰는 데이터 보안에서도 유리하다. 뷰는 컬럼과 데이터만 공개되므로 원천 테이블은 알 수 없다.

  • VIEW 생성
CREATE VIEW [스키마.][뷰 NAME] AS
SELECT문;
  • VIEW 수정
REPLACE VIEW [스키마.][뷰 NAME] AS
SELECT문;
  • VIEW 삭제
DROP VIEW [스키마.][뷰 NAME]
  • VIEW 구조 확인
desc [스키마.][뷰 NAME];

스토어드 프로시저

스토어드 프로시저는 DB 내부에 저장된 일련의 SQL 명령문들을 하나의 함수처럼 실행하기 위한 쿼리의 집합이다.

  • 프로시저 생성
CREATE [OR REPLACE] PROSEDURE [프로시저 명]
	[ 선언 ]
BEGIN
	[ 실행 ]
EXCEPTION
	[ 예외처리 ]
END;
  • 프로시저 삭제

DROP PROCEDURE [프로시저 명]

트리거

트리거란 테이블에 부착되어서, 테이블에 insert나 update 또는 delete작업이 발생되면 실행되는 코드를 말함.

CREATE [ OR REPLACE ]TRIGGER 트리거명

BEFORE | AFTER

[ 동작(INSERT,UPDATE,DELETE) ] ON 테이블명 

[ REFERENCING  NEW | OLD  TABLE AS 테이블명 ]

[ FOR EACH ROW ]

[ WHEN 조건식 ]

[ 동작(INSERT,UPDATE,DELETE) ] ON 테이블명 


profile
초보 개발자 지망생

0개의 댓글