ROWNUM
ROWNUM : 일련번호
중간에 데이터가 삭제되어도 자동으로 일련번호를 매긴다.
--가장 최근에 입사한 7명의 사원의 이름과 입사날짜를 출력하시오
SELECT ROWNUM,PNAME,STARTDATE FROM (SELECT PNAME,STARTDATE FROM PERSONNEL
ORDER BY STARTDATE DESC)
WHERE ROWNUM<=7;
먼저 FROM 내에서 SELECT문을 통해 출력할 컬럼과
정렬순서를 정해주어 ROWNUM으로 일련번호를 생성할 수 있도록 설정한다.
이후 7명을 출력할 것이기 때문에, ROWNUM에 조건을 주어 최종 결과물을 산출한다.
SYNONYM
SYNONYM : 동의어
CREATE OR REPLACE SYNONYM INSA
FOR KIM.PERSONNEL;
KIM.PERSONNEL은 INSA와 같아지는 것이다.
즉, INSA를 검색해도 KIM.PERSONNEL이 나오게 된다.
Index Architecture
- BLOCK
데이터베이스에서 데이터를 저장 및 처리할 때 사용되는 가장 기본적인 입출력단위
블럭단위 (8KB)로 저장한다.
- EXTENT
공간 여러개를 할당한다.
MS-SQL은 BLOCK 8개를 연속되게 구성하며
오라클은 원하는 만큼 자유롭게 할당한다.
- 클러스터드 테이블 (Clustered Table)
인덱스 순서는 데이터를 입력하자마자 정렬되어 저장된다.
테이블에 하나만 적용가능하다.
SELECT 속도는 빠르지만 INSERT, UPDATE, DELETE 처리 속도는 상대적으로 느리다.
- 논클러스터드 테이블 (Non Clustered Table)
인덱스 순서는 데이터를 삽입하는 순서대로 저장된다.
테이블에 여러 개 적용가능하다.
SELECT 속도는 느리지만 INSERT, UPDATE, DELETE 처리 속도는 상대적으로 빠르다.
- Index
데이터와 별도로 다른 장소에 저장한다.
데이터 저장 크기의 5~20%이다.
인덱스를 재설정해야 하며 단편화해야 한다는 단점이 있다.
B-Tree (Balanced Tree) 자료 구조이다.
SEQUENCE
CREATE SEQUENCE PER_PNO
START WITH 90
INCREMENT BY 1
MAXVALUE 99
NOCYCLE
NOCACHE;
PER_PNO는 90부터 시작해 99까지 1씩 증가하도록 만들었다.
NOCYCLE : MAXVALUE이후로 더 이상 값을 추가할 수 없다.
CYCLE : 다시 첫 값으로 돌아간다.
NOCACHE : 캐시가 없다
CACHE 10 : 캐시 양을 10과 같이 지정할 수 있다.
- NEXTVAL : SEQUENCE의 사용 번호
- CURRVAL : SEQUENCE의 현재 번호
또한 ALTER로 수정해줄 수도 있다.
#국비39일차
'개발 교육 TIL > back-end' 카테고리의 다른 글
[PL/SQL] EXCEPTION, CURSOR, TRIGGER트리거 (0) | 2022.02.05 |
---|---|
[PL/SQL] 프로시저 만들기 (0) | 2022.02.04 |
[오라클] GRANK/REVOKE, VIEW, COMPLEX VIEW (0) | 2022.02.02 |
[오라클] 제약 조건 생성, ALTER, DROP, MODIFY, UNUSED, TRUNCATE (0) | 2022.02.01 |
[오라클] ANY/ALL, 상관/하위쿼리, 테이블 생성+데이터 타입 (0) | 2022.01.28 |