group by 절 - 레코드들을 특정 컬럼 값에 맞춰서 그룹을 나누는 작업.- 편가르기 그룹을 왜묶을까? 1. 그룹을 나눠서 구분해서 관리하려고? 따로 정렬을 하기 위해서? : X2. 나눠놓은 그룹들을 완전분리 -> 별도의 테이블로 관리하기 위해서? : X 3. 각각의 나눠놓은 그룹별로 집계함수를 적용하기 위해서 : O(group by 절의 목적) - group by 컬럼명 : 그룹을 나누는데 기준이 되는 컬럼명(1개 or 그이상) - group by 구문- select 컬럼리스트 from 테이블명 [where절] [group by 절] [order by절]- group by 사용시 컬럼리스트에 올수있는 대상 1. 집계함수(주목적) 2. group by의 대상 컬럼 3. 1과 2를 제외하고는 모두 불가..
컬렉션의 종류와 인터페이스이전 컬렉션1. ArrayList : 순차배열2. HashMap : 연관배열3. Stack : 스택배열4. Queue : 큐배열.- 자바는 모든 컬렉션이 특정 인터페이스를 구현한다. 1. Collection 인터페이스 - List 와 Set의 부모 역할 2. List 인터페이스 - 순서가 있는 데이터 집합 - 방번호가 있다. 첨자. 인덱스. -> 방번호를 이용하여 요소 접근. - 데이터 중복을 허용한다. ex) ArrayList , Stack , Queue, LinkedList, Vector 3. Set 인터페이스 - 순서가 없는 데이터 집합 - 방번호가 없다(첨자가 없다.) - 데이터 중복을 허용 안한다.************** - 순서가 중요하지 않은 데이터 집합. ex) ..
Stack, Queue Stack 스택- 자료구조 중 하나- 후입선출- LIFO( Last In First Out ) 0. 객체 생성Stack stack = new Stack(); 1. 요소삽입stack.push("빨강");stack.push("파랑");stack.push("노랑"); 2. 요소 제거- 값 반환과 동시에 요소를 제거- 반환은 가장 나중에 넣은 "노랑" 부터...System.out.println(stack.pop()); //노랑System.out.println(stack.size()); // 2System.out.println(stack.pop()); // 파랑System.out.println(stack.size()); // 1System.out.println(stack.pop()); //..
ArrayList와 HashMap의 비교 1. ArrayList - 요소에 대한 접근 : index사용 - 요소에 순서가 존재 - 첨자 : 정수사용.(0부터 시작, Zero-based Index) - 스칼라 배열(Scalar Array) (HashMap과의 비교) : 방들을 일괄 접근하기 용이(***)- for문 : 요소간의 구분이 쉽지 않다.(3번째 방? 27번째 방?) 2. HashMap - 요소 접근 -> 키(key)사용 - 키 : 숫자, 문자, 문자열(***이것만쓴다거의***) 등... - 방번호(인덱스) X,- 요소에 순서도 없음. -연관 배열, 사전구조 -Key, Value (ArrayList와의 비교) : 일괄 접근이 불리(거의 사용 안함)- for문과 잘 연동 안함- 요소 하나하나를 직접 ..
컬렉션, Collection - 배열의 업그레이드 버전 - 길이 가변(늘이거나 줄이는게 가능) - 배열을 사용 목적에 따라 사용법이나 구조를 특화시켜서 제공함.(=자료구조) 기존의 순수 배열방식 배열 생성. - 타입명시(int) - 길이 명시([3])int[] nums1 = new int[3];초기화 or 요소접근 -> 인덱스 사용nums1[0]=100;nums1[1]=200;nums1[2]=300;배열의 길이 or 탐색for( int i =0; i
예외, Exception - 컴파일 발견 X 런타임발견 O - 실행중 발생하는 에러 - 개발자가 예측을 할수도 없을수도 있다. -> 예측을 하더라도 발생할 수 있는 에러. - 주로 발생하는 경우 : 프로그램 외부와의 소통을 하는 업무(파일 입출력, DB입출력, 네트워크 입출력 등...) 예외처리, Exception Handling 1. 전통적인 방식. (*조건문*) 2. 특화된 구문. (**try-catch(finally)문**) 전통적인 방식( 하드코딩의 하드코딩의 하드코딩 ) 사용자로부터 숫자1개 입력받기. > 업무진행.int num = 0; // 0이 아닐때만 일을 한다.if (num != 0) { // 업무 코드, *비즈니스코드*System.out.printf("100 / %d = %d\n", n..
update문 - DML(insert,delete,update)- 데이터를 수정하는 명령어- update 테이블명 set 컬럼명 = 수정할값[, 컬럼명 = 수정할 값]xN [where 절]- 테이블의 모든행에 대한 수정.- where 절 : 수정하고 싶은 레코드 지정 예제로 살펴보기 update tblname set gender='f'; --> 이건 전체 레코드의 gender 값을 'f'로 바꾸는것.update tblname set gender='f' where last='유'and first='재석'; 승진한 임직원의 직위 변경하기- 홍길동 부장 -> 이사로 진급 -> 직급을 이사로 수정해야한다.- ****** : 수정할 대상이 1개행(유일한 행) -> 그 행을 반드시 다른행과 구분해야한다. 식별가능해..
Insert문- DML(insert, update, delete)- insert into 테이블명(컬럼리스트) values(값리스트); create table tblMemo( seq number primary key, name varchar2(30) not null, memo varchar2(1000) not null, regdate date default sysdate not null, etc varchar2(500) default '비고없음' null, page number null);create sequence memoSeq; --메모테이블의 시퀀스 객체 생성한다. select * from tblMemo; insert 문 여러가지 사용 패턴 1. 표준 : 원본테이블에 정의된 컬럼 순서대로 컬럼리스트..