티스토리 뷰

데이터베이스 객체란 오라클 같은 DBMS가 데이터를 관리하기 위해 존재하는 논리적인 저장 구조를 말한다.

데이터베이스 객체의 종류를 살펴보자.

데이터베이스 객체

설명 

 테이블

데이터를 담고 있는 객체 

 뷰

하나 이상의 테이블을 연결해 마치 테이블인 것처럼 사용하는 객체 

 인덱스

테이블에 있는 데이터를 빠르게 찾기 위한 객체 

 시노님

데이터베이스 객체에 대한 별칭을 부여한 객체  

 시퀀스

일련번호 채번을 할 때 사용되는 객체 

 함수

특정 연산을 하고 값을 반환하는 객체 

 프로시저

함수와 비슷하지만 값을 반환하지는 않는 객체 

 패키지

용도에 맞게 함수나 프로시저를 하나로 묶어 놓은 객체 


테이블은 CREATE 문으로 생성하는데 기본 구문은

CREATE TABLE [스키마.]테이블명(

컬럼1 컬럼1데이터타입 [NULL, NOT NULL]

)[TABLESPACE 테이블스페이스명];

스키마명은 생략이 가능하고 생략하게 되면 현재 자신이 로그인한 스키마 이름으로 생성된다. 또한 TABLESPACE 구문도 생략 가능한데, 생략하면 해당 사용자의 디폴트 TABLESPACE에 생성된다. 


테이블명, 컬럼명의 최대 크기는 30byte까지 가능하다.


CHECK 제약조건은 컬럼에 입력되는 데이터를 체크해 특정 조건에 맞는 데이터만 입력 받고 그렇지 않으면 오류를 뱉는다.

CONSTRAINT 체크명 CHECK(체크조건)


테이블 복사

CREATE TABLE [스키마.]테이블명 AS

SELECT 컬럼1, 컬럼2,

FROM 복사할 테이블명;

CREATE TABOE EX2_9_1 AS

SELECT * FROM EX2_9;


뷰는 하나 이상의 테이블이나 다른 뷰의 데이터를 볼 수 있게 하는 데이터베이스 객체 실제 데이터는 뷰를 구성하는 테이블에 담겨 있지만 마치 테이블처럼 사용할 수 있다. 다른 뷰를 참조해 새로운 뷰를 만들어 사용할 수도 있다.


CREATE OR REPLACE VIEW [스키마.]뷰명 AS SELECT 문장;


사원 테이블에는 부서번호만 존재하고 부서명은 없다. 따라서 해당 사원이 속한 부서명을 보려면 다음과 같이 부서 테이블을 참조해야 한다.

SELECT a.employee_id, a.emp_name, a.department_id, b.department_name

FROM employees a, departments b

WHERE a.department_id = b.department_id;

위 정보를 여러 사람이 자주 사용해야 한다면 사원번호, 사원명, 부서번호, 부서명을 볼 수 있는 뷰를 만들어 놓고 뷰를 참조하면 편리하다.

CREATE OR REPLACE VIEW emp_dept_v1 AS

SELECT a.employee_id, a.emp_name, a.department_id, b.department_name

FROM employees a, departments b

WHERE a.department_id = b.department_id;

뷰 객체가 만들어졌으니 EMP_DEPT_V1 뷰만 참조하면 원하는 결과를 얻을 수 있다.

SELECT * FROM EMP_DEPT_V1;


댓글
공지사항
최근에 올라온 글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함