Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- static
- singleton
- 다중 모달창
- 객체협력
- 템플릿
- 모달창 여러개
- 오라클 비교연산자
- 형변환
- 이클립스 오라클 연동
- 리스트 모달창
- GROUP BY
- 다운캐스팅
- static 예제
- IP
- SUB Query
- 추상 메서드
- order by
- react
- AOP란?
- 상속
- Servlet 맵핑
- oracle 연동
- 싱클톤패턴
- 스프링 모달창
- Java
- 사용자 데이터그램 프로토콜
- spring annotation
- static메서드
- 깃 명령어
- downcasting
Archives
- Today
- Total
모든지 기록하자!
[Oracle] VIEW 생성/삭제/예시 본문
728x90
뷰(View)란?
- 뷰는 하나의 가상 테이블이라고 생각하면 된다.
- 뷰는 실제 데이터가 저장되는 것은 아니지만 뷰를 통해 데이터를 관리할 수 있다.
- 뷰는 복잡한 query를 통해 얻을 수 있는 결과를 간단한 query를 써서 구할 수 있게 한다.
- 한 개의 뷰로 여러 테이블에 대한 데이터를 검색할 수 있다.
뷰(View)를 사용하는 경우
- 복잡한 질의를 쉽게 만들어 준다. group이나 oder by와 같은 복잡한 질의의 정보를 view로 저장시켜 놓으면 다음부터는 view의 정보만 가져오면 되므로 쉽게 사용 가능하다.
- 데이터의 독립성을 허용하기 위해서 사용한다.
- 다양하고 빠른 조회를 위해 사용한다.
- 데이블의 수를 줄이고 성능향상을 가져온다.
뷰 생성
서브쿼리에서 함수나 중복된 칼럼명으로 사용하여 컬럼명으로 사용되지 못한 경우는
알리아스로 지정해야 된다.
CREATE OR REPLACE VIEW [뷰NAME]
AS
SELECT 컬럼명
FROM 테이블명;
--뷰 생성시 에러 발생(알리어스를 설정하지 않았기 때문에)
CREATE VIEW UV_TEST_02
AS
SELECT JOB_ID, JOB_TITLE, MIN_SALARY * 1.1
FROM HR.JOBS;
-- "must name this expression with a column alias"
--문제 발생부분 수정
CREATE OR REPLACE VIEW UV_TEST_02
AS
SELECT JOB_ID, JOB_TITLE, MIN_SALARY * 1.1 AS NEXT_SALARY
FROM HR.JOBS;
-- OR REPLACE 옵션을 설정하고
-- AS NEXT_SALARY 알리어스를 설정한다
뷰 삭제
뷰 삭제는 생성한 사용자나 DROP ANY VIEW 권한이 있는 사용자만 가능하다.
다른 뷰에 사용이 되었더라도 경고 없이 바로 삭제가된다.
DROP VIEW 뷰명;
뷰 사용 예시
COMMIT; -- 적용
ROLLBACK; -- 커밋을 하면 롤백할수없음
--임시 테이블 생성
CREATE TABLE TB_EMP
AS
SELECT employee_id, first_name, salary
FROM employees;
SELECT * FROM tb_emp; --테이블 확인
-- VIEW 생성
CREATE OR REPLACE VIEW UB_VIEW(empno, ename, sal)
AS
SELECT employee_id, first_name, salary
FROM TB_EMP
WITH READ ONLY; -- 읽기전용
--WITH CHECK OPTION : CHECK 제약
INSERT INTO UB_VIEW(empno, ename, sal)
VALUES(101, '임꺽정', 10000); --제약조건 가지고오지 않아서 삽입가능
SELECT * FROM tb_emp;
SELECT * FROM UB_VIEW; --동일한 데이터를 가지고 있는지 확인
-- 사원번호, 이름, 부서번호, 부서명, 지역명
--미리 뷰로 만들어서 조인을 매번 해야하는 불편함을 줄인다.
CREATE OR REPLACE VIEW DEFT_EMP_LOC_VIEW
AS
SELECT e.employee_id, e.first_name, d.department_id, d.department_name, l.city
FROM employees e, departments d, locations l
WHERE e.department_id = d.department_id
AND d.location_id = l.location_id;
728x90
'Database' 카테고리의 다른 글
[Oracle] 이클립스와 오라클 연동하기 (0) | 2021.06.08 |
---|---|
[Oracle] SEQUENCE와 동의어 생성/삭제/수정 (0) | 2021.06.01 |
[Oracle] 테이블 작성 예시 (0) | 2021.06.01 |
[Oracle] 무결성 제약 조건 (0) | 2021.06.01 |
[Oracle] SUB QUERY 예제 (0) | 2021.05.31 |
Comments