반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

bro's coding

SQL.Paging 본문

[IT]/Oracle DB

SQL.Paging

givemebro 2021. 5. 3. 09:48
반응형

paging 방법

Paging SQL(row_number() 와 subquery의 inline view를 이용하고회원 테이블과 join)

drop table player;
create table player(
 no number primary key,
 title varchar2(100) not null,
 singer varchar2(30) not null,
 price number not null
)

select * from player;

create sequence mp3_seq;

insert into player(no,title,singer,price) values(mp3_seq.nextval,'가을아침','아이유',700);
insert into player(no,title,singer,price) values(mp3_seq.nextval,'noting better','양형조',1000);
insert into player(no,title,singer,price) values(mp3_seq.nextval,'밤편지','김지은',1000);
insert into player(no,title,singer,price) values(mp3_seq.nextval,'연결고리','장지훈',1000);
insert into player(no,title,singer,price) values(mp3_seq.nextval,'No matter where','김수권',1000);
insert into player(no,title,singer,price) values(mp3_seq.nextval,'피 땀 눈물','BTS',500);
insert into player(no,title,singer,price) values(mp3_seq.nextval,'연가','정우',600);
insert into player(no,title,singer,price) values(mp3_seq.nextval,'i am','nirinjan kaur',1000);
commit
select count(*) from player;

/*
 		Oracle row_number() over() : 조회된 ROW(행)에 대한 순차적인 번호를 제공하는 오라클 함수 
 		
 		Inline View : SQL 문장에서 From 절에 사용되는 Subquery 
 					   FROM 절에 서브쿼리로 SELECT 되는 조회결과를 테이블처럼 사용 
 					   
 		EX)    SELECT 
 				FROM (
 					서브쿼리 
 				) 별칭 			   
 		
 */
-- 내림차순 정렬 
select * from player order by no desc;

-- row_number() over(정렬) 


delete from player where title='Power';

-- row_number()는 조회된 결과행에 대해서 행번호를 매긴다 
-- 아래의 where 조건절에서는 사용할 수 없다 


-- SubQuery의 InlineView를 이용하면 된다 

-- rnum이 4이상 6이하인  곡들을 조회 


-- Board Paging SQL 
-- 게시물 rnum 이 1 이상 5 이하인 게시물 정보를 조회 
/*
	SELECT B.*,M.NAME 
	FROM(
	
	) B , MEMBER M 
	WHERE 조인조건 AND rnum between 1 and 5 
*/
-- step1 : 게시물을 내림차순 정렬하고 row number를 생성한다 

SELECT row_number() over(ORDER BY NO DESC) as rnum, no, title, hits, to_char(time_posted,'YYYY.MM.DD')as time_posted,id FROM board

-- step2 : step1을 인라인뷰로 이용하고 member 와 join 한다 

SELECT B.*,M.name
FROM(
	SELECT row_number() over(ORDER BY NO DESC) as rnum, no, title, hits, to_char(time_posted,'YYYY.MM.DD')as time_posted,id 
	FROM board
) B,board_member M
WHERE B.id=M.id AND rnum BETWEEN 1 AND 5;

 

 

java.Paging

package org.kosta.webstudy25.model; /** * 페이징 처리를 위한 비즈니스 계층의 클래스 PagingBean method 구현순서 * getStartRowNumber() * getEndRowNumber() * getTotalPage() * getTotalPageGroup() * getN..

broscoding.tistory.com

 

 

JSP.Paging

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 번호 제목 작성자 작성일 조회 ${pvo.no } ${pvo.t..

broscoding.tistory.com

 

반응형

'[IT] > Oracle DB' 카테고리의 다른 글

OracleDB.DATE  (0) 2021.04.20
oracleDB.Transaction(트랜잭션)  (0) 2021.03.26
oracleDB.sequence(시퀀스)  (0) 2021.03.25
oracleDB.insert into(row 삽입)  (0) 2021.03.24
oracleDB.create table(테이블 생성)  (0) 2021.03.24
Comments