본문 바로가기
Today I Learned

2021.02.01(Mon) 📌 TIL

by Elin J 2021. 2. 1.

 

---------------------------------[오전]---------------------------------

💻 페이징, 검색, 댓글
     ㅣ- select ~~ select 중복쿼리 = 서브쿼리 = subQuery
     ㅣ- A테이블 sabun필드 B테이블 idx, writer, sabun
          연결을 조인 inner join 사용해서 댓글

 

==> guest316개데이타(email).txt 파일 db복붙해서 입력하기

 

SQL> 게스트테이블 guest테이블 필드크기조절
set pagersize 1500
set linesize 1500
col name for a10
col title for a10
col email for a12
select rownum as rn, g.* from guest g;

 


조회 name 필드 a 건
SQL> select rownum as rn, g.* from guest g
        where name like '%a%' ;                      --이름(name)에 a가 들어간 글 찾기

 

SQL> select count(*) as cnt from guest where name like '%a%' ;     --이름(name)에 a가 들어간 글 갯수 찾기

 

조회 name 필드 b 62건 ==> 7페이지목록
SQL> select rownum as rn, g.* from guest g where name like '%b%' " ;

 

조회 name 필드 c 48건
SQL> select rownum as rn, g.* from guest g where name like '%c%' ;  --이름(name)에 c가 들어간 글 찾기

 

조회 title 필드 p 13건
SQL> select rownum as rn, g.* from guest g where title like '%p%' ;  --title에 p가 들어간 글 찾기


💻 Web0105 에 이어서 작업 ==> 페이징처리, 검색처리, guestList.jsp문서
      l-guestList.jsp문서 페이징 및 검색 (bbsList.jsp문서참고)
      l-guestDetail.jsp문서 댓글 (bbsDetail.jsp문서참고)
      l-guestreplay.jsp문서 댓글 (bbsreplay.jsp문서참고)

 

 

---------------------------------[오후]---------------------------------

 

💻Web0105 오후수업 이어서 · · · 
      l-guestList.jsp문서 페이징 및 검색 작업

[이전][11] ~~[16]클릭~~[20][다음]
<a href = guestList.jsp?pageNum=16>[16]
    Gtotal
    pnum문자형 = request.getParameter("pageNum");
    pageNUM = Integer.parseInt(pnum);
    start
    end
    pagecount
    tmp=(pageNUM-1)%10 ;
    startpage
    endpage
    if( endpage>pagecount){ endpage=pagecount; }

 

 

이전 if(startpage>10){ startpage-10 [이전] }
        for(int i=startpage; i<=endpage; i++){ }
다음 if(endpage<pagecount){ startpage+10 [다음] }

 


[pm3:10~ 검색작업 시작]


skey = request.getParameter("keyfield");
sval = request.getParameter("keyword");
if(skey==null || skey=="" || skey.equals("") || sval=="" || sval==null){
        skey="title";
        sval="";
     }
//select * from guest where title like '%p%' ;
//select * from guest where title like '%%' ;  --p검색어를 빼면 에러일까? noRows? 전체출력? ==> 전체출력
sqry=" select * from guest where " + skey + " like '%" + sval + "%' ";
//System.out.println("선택필드: " + skey +" 키워드: " + sval);
System.out.println("sqry= " + sqry );

 


[문제5] name필드 b포함 글자 조회 62건 행번호 및 필드 출력
          62건중에서 21~30행 번호 데이터 출력
       

      rn    sabun    name        title       wdate      pay     hit      email
      21     8890     hb           hb        21/02/01   50       0    bc@tis.com
      22     8891     banana    bank1     21/02/01   51       bc@tis.com
      23     8896     bbb6       bank6    21/02/01    56      0    bc@tis.com
      24     8897     bbb7       bank7    21/02/01    57      0    bc@tis.com
      25     8898     bbb8       bank8    21/02/01    58      0    bc@tis.com
      26     9998     blue        last8      21/02/01    68      0    bc@tis.com
      27     5911     brown1    bb1       21/02/01    51      0    bc@tis.com
      28     5977     blue7      bb7        21/02/01   57      0    bc@tis.com
      29     5988     black8     bb8        21/02/01   58      0    bc@tis.com
      30     5391     banana    board1   21/02/01   51      0    bc@tis.com

 

 

SQL> select * from guest where name like '%b%' ; 기본

검색구현X, 페이징구현
   select * from (
   select rownum as rn, sabun, name, title, wdate, pay, hit, email from guest
   ) where rn between 21 and 30 ;

 

검색구현, 페이징X
select rownum as rn , sabun,name,title,wdate,pay,hit,email from guest where name like '%b%' ;

 

-------------------------------=>정답
검색구현 + 페이징구현
a변수 select * from (
b변수 select rownum as rn, sabun, name, title, wdate, pay, hit, email from
y변수 ( select * from guest where name like '%b%' )
c변수 ) where rn between 21 and 30 ;

 

 

검색구현 + 페이징구현
a변수 select * from (
b변수 select rownum as rn, sabun, name, title, wdate, pay, hit, email from
y변수 ( select * from guest where skey변수 like '%sval변수%' )
c변수 ) where rn between start변수 and end변수 ;

 

 

 

'Today I Learned' 카테고리의 다른 글

2021.02.08(Mon) 📌 TIL  (0) 2021.02.08
2021.02.05(Fri) 📌 TIL  (0) 2021.02.08
2021.02.04(Thu) 📌 TIL  (0) 2021.02.04
2021.02.03(Wed) 📌 TIL  (0) 2021.02.03
2021.02.02(Tue) 📌 TIL  (0) 2021.02.02