목표: 게시글의 총 갯수를 구한다. NoticeConsloe 전체 코드 /* NoticeConsole.java */ package com.newlecture.app.console; import java.sql.SQLException; import java.util.List; import java.util.Scanner; import com.newlecture.app.entity.Notice; import com.newlecture.app.service.NoticeService; public class NoticeConsole { private NoticeService service; /* page를 가질 수있는 상태변수 page추가*/ private int page; /* page내의 개시글 개수 */ ..
목표: 목록에서 이전 / 다음 구현하기 내부 프로그램부터 수정 /* program5.java */ package ex1; import java.sql.SQLException; import com.newlecture.app.console.NoticeConsole; public class program5 { /* 탑다운 방식 구현 */ public static void main(String[] args) throws ClassNotFoundException, SQLException { NoticeConsole console = new NoticeConsole(); //console객체가 page를 가지고 있는게 바람직하다. EXIT: while(true) { console.printNoticeList(); ..
목표: 목롤을 위한 View 생성하고 자바에서 활용 CREATE VIEW 사용 CREATE VIEW NOTICE_VIEW AS SELECT * FROM ( SELECT ROWNUM NUM, N.* FROM ( SELECT * FROM NOTICE ORDER BY REGDATE DESC ) N ) CREATE VIEW 를 사용해서 이전에 만들어 두었던 쿼리문을 하나의 테이블(NOTICE_VIEW)로 만들어둔다. 생성한 NOTICE_VIEW테이블로부터 정상적으로 값들이 출력된다. 자바에서 활용 할 수있도록 SQL문을 수정 CREATE VIEW를 이용하면 편리하고 간결한 SQL쿼리문을 만들수있다.
제어문[초기값, 최종값, 증가] 문자열 포맷 코드 %o : 8진수 >>>"%o" %10 12 10진수 10을 입력하면 8진수 12를 출력 %x : 16진수 >>>"%x" %319 '13f' 10진수 319를 입력하면 16진수 13f를 출력 "%0.4F" : 소숫점 4자리까지 출력 >>> "%0.4F" %3.424242424 '3.4242' 정렬 문자열 공간 10개를 만들고 우측정렬해 HI, 그 후에 JANE을 붙여서 출력 >>> "%10sJANE" %"HI" ' HIJANE' 문자열 공간 10개를 만들고 우측정렬해 HI출력 >>> "%10s" %"HI" ' HI' 문자열 공간 10개를 만들고 좌측정렬해 HI, 그 10개의 공간 이후에 JANE을 출력 >>> "%-10sJANE" %"HI" 'HI JANE..
정수형(int): 1, 2, -2 실수(float): 1.24, 34.56 컴퓨터식 지수 표현 방식: 4.24E10, 4.24e-10 2진법 -> 16진법 0101/1110 -> 5E 8421 8421 8개 한글자, 8진수 계산 -> 10진법 0o117 -> 79 64 8 7 64+8+7 / -> 나누기 결과 소수점 포함 // -> 나누기 결과 정수 % -> 나누고 남은 몫 이스케이프 코드? \ 백스페이스 >>>'Python\'s good' 'Python's good' \n 문자열 안에 줄 바꿈 \t 문자사이에 탭 \\ 문자\를 그대로 쓸떄 \' 작은 따옴표를 그대로 표현 \" 큰 따옴표 그대로 표현 \r 캐리지 리턴(줄바꿈 현재 커서 맨 앞으로) 2^6 = 64 -> BCD: 문자 2^7 = 128 -..
목표: 페이징 쿼리 이용 /* NoticeService.java */ package com.newlecture.app.service; import java.sql.Connection; import java.sql.Date; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import com.newlecture.app.entity.Notice; /* CRUD 서비스 목록을 반환하는 함수 */ publ..
목표 : 페이징을 위한 쿼리 만들기 Notice테이블 출력 SELECT * FROM NOTICE; 실행결과의 일련번호가 필요하다. 일렵번호를 ROWNUM을 사용해 출력 SELECT ROWNUM, NOTICE.* FROM NOTICE; 10줄만 출력을 위한 필터링 WHERE SELECT ROWNUM, NOTICE.* FROM NOTICE WHERE ROWNUM BETWEEN 1 AND 10; 2~10까지는 출력 불가. 이유 : rownum은 sql결과 셋에 순서를 부여하는 가상컬럼이다. fetch단계에서 추출하는 첫번째 row에 1을 부여하고, 이후 row가 추출될때마다 rownum의 값을 순차적으로 증가시킨다. 하지만 이 쿼리문에서는 rownum을 1-10까지 순서대로 증가시킬 경우라 출력이 가능하지만,..
목표 : SQL SELECT 쿼리 처리 순서를 파악한다. sqlbolt.com/lesson/select_queries_order_of_execution SQLBolt - Learn SQL - SQL Lesson 12: Order of execution of a Query Now that we have an idea of all the parts of a query, we can now talk about how they all fit together in the context of a complete query. Complete SELECT query SELECT DISTINCT column, AGG_FUNC(column_or_expression), … FROM mytable JOIN another_ta..