일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 이진법
- 부스트코스
- 객체지향
- WebProgramming
- Java Programming
- CS 기초지식
- Compute Science
- til
- ssafy
- ERD
- 면접을 위한 CS 전공지식 노트
- 모두를 위한 컴퓨터 과학
- 삼성청년SW아카데미
- CS50
- java
- 상속
- 기초프로그래밍
- 알고리즘
- exception
- SSAFY 9기
- 예외처리
- edwith
- 모두를 위한 컴퓨터 과학(CS50)
- Computer Science
- w3schools
- CS 기초
- SW
- 관계형 데이터베이스
- CS기초지식
- 데이터베이스 모델링
- Today
- Total
Joslynn의 하루
MSA Full-Stack 개발자 양성 과정 -24일차 노트 필기_데이터베이스(Oracle) Rownum, View_220824 본문
MSA Full-Stack 개발자 양성 과정 -24일차 노트 필기_데이터베이스(Oracle) Rownum, View_220824
Joslynn 2022. 8. 25. 01:16Rownum
: 레코드의 순서를 자동으로 만들어준다. 즉, 레코드의 행 번호를 만들고 싶을 때 사용
: Rownum을 사용할 때, 인라인 뷰가 많이 쓰여진다.
**인라인 뷰
: SUBQUERY의 종류 중 하나인 인라인뷰
: FROM 절 뒤에 서브쿼리가 오는 것을 인라인 뷰라고 한다.
-- EX) 급여를 기준으로 정렬해서 ROWNUM을 출력하고 싶다.
SELECT ROWNUM 번호, EMPNO, ENAME, JOB, SAL
FROM EMP
ORDER BY SAL;
**주의사항
Rownum
: Select 절 실행에 따라 레코드가 만들어지면서 번호가 순차적으로 부여되는 것으로 Rownum 1이 없으면 2가 실행될 수 없다.
: 따라서, Rownum을 가지고 조건을 줄 때, ~보다 작다 또는 1부터 조건을 사용해야 한다.
: ~보다 크다 또는 중간에 있는 Rownum을 조건으로 사용하고 싶을 때 인라인 뷰를 사용해야 한다.
--EX) ~보다 크다라는 조건식에 ROWNUM을 사용할 때
-- ROWNUM을 만든 테이블을 인라인뷰로 다시 만들어서 조건을 검색한다.
SELECT *
FROM (SELECT ROWNUM 번호, EMPNO, ENAME, JOB, SAL
FROM (SELECT * FROM EMP ORDER BY SAL DESC))
WHERE 번호 > 3;
/* WHERE 절에 ROWNUM 그대로 사용하면 인라인뷰 외부의 SELECT 절 ROWNUM이라고 여기기 때문에
인라인뷰 내부의 ROWNUM에 별칭 붙여야 함*/
View
: 가상테이블
- 실제 존재하지 않지만 실제 테이블과 똑같이 사용함 (select , insert , delete, update 가능)
: 생성할 때 옵션을 어떻게 설정하느냐에 따라 DML 여부가 달라진다.
: JOIN을 뷰로 만들었을 때는 DML 안됨
- 사용 이유
: 복잡한 쿼리문을(조인, 서브쿼리)미리 뷰로 만들어 사용하면 간단하게 검색 가능함.(단,insert , delete, update 안됨)
: 보안을 위해 사용함(관리자 유형에 따라 특정 컬럼 만 선택하여 보여줌)
- 테이블의 특정한 컬럼과 레코드를 선택해서 뷰를 만들어 권한에 제한이 있는 DBA에게 원본 테이블이 아니 뷰의 이름 을 알려줌으로써 DBA는 뷰만 접근할 수 있도록 제한
- 뷰 생성 방법
CREATE VIEW 뷰이름
AS 뷰의내용;
--뷰 수정
CREATE OR RELACE VIEW VIEW 뷰이름
AS 뷰의내용;
-- ** REPLACE: 뷰의 내용 교체
-- 뷰 삭제
DROP VIEW 뷰이름;
**뷰를 생성하는 옵션 설정
1) WITH CHECK OPTION : 뷰를 생성할 때, 조건을 이용해서 만들게 되면, insert , delete, update를 할 때 조건에
충족하지 않는 정보는 DML을 할 수 없도록 하는 것
2) WITH READ ONLY: 읽기 전용(데이터 조작X)