집합연산자 set operator
A = { a, x, b, e, g } - - B = { c, d, a, b, y, k, m} - -
1. union
테이블(뷰)과 테이블(뷰)를 행과 행으로 합침
공통을 묶어서(합집합, 중복행제거) 첫번째 컬럼 기준 오름차순 정렬
select
from
UNION
select
from...
A ∪ B = {a, b, c, d, e, g, k, m, x, y}
2. union all
정렬, 중복행제거 없이 union한 순서대로 행을 붙임
select
from
UNION ALL
select
from...
A ∪ B = {a, x, b, e, g, c, d, a, b, y, k, m}
3. intersect
교집합
select
from
INTERSECT
select
from...
A ∩ B= {a,b}
4. minus
차집합
select
from
MINUS
select
from
A - B = {x,e,g}
B - A = {c,d,y,k,m}
의사(Pseudo) column
rowid
오라클이 내부적으로 사용하기 위해 만든 행에 대한 id값 ⇒ 오라클전체내에서 고유한값 가짐
select rowid
from 테이블
where rowid > '...C'
rownum
웹에서 많이 사용됨
행번호 ⇒ 기본적으로 insert되어진 순서대로 나옴
rownum, row_number()함수는 where절에 바로 사용 X ⇒ inline view로 rownum을 가지는 컬럼의 별칭을 만들어야함
**예>페이징처리 ⇒ 1페이지에 1부터 10행까지 출력**
boardno ⇒ 나중에 쓴 글이 가장 위에 나옴 (desc)
1) rownum 사용
select boardno
from
(
select rownum as RNO
from
(
select boardno
from
order by boardno desc
) V
)T
where RNO between 1 and 10
where RNO between 11 and 20...
2) row_number() 사용
select boardno
from
(
select row_numer() over(order by boardno desc) as RNO
from
) V
where RNO between 1 and 10
where RNO between 11 and 20...
**페이징 공식**
where RNO between ( 조회하고자하는페이지번호 * 한페이지당보여줄행의개수 ) - (한페이지당보여줄행의개수 - 1) and ( 조회하고자하는페이지번호 * 한페이지당보여줄행의개수 )
where RNO between (1 * 10) - (10 - 1) and (1 * 10)
where RNO between (2 * 10) - (10 - 1) and (2 * 10)...