본문 바로가기

분류 전체보기

(198)
04/17 6일차 DECODE, CASE WHEN THEN, 올림 내림(ROUND, CEIL, FLOOR, TRUNC) CNT10 CNT20 CNT30 ----- ----- ----- 3 5 6 대쉬보드에서 많이 쓰는 쿼리 SELECT(SELECT COUNT(1) FROM emp WHERE deptno = 10) ,(SELECT COUNT(1) FROM emp WHERE deptno = 20) ,(SELECT COUNT(1) FROM emp WHERE deptno = 30) FROM dual; 각 부서별 사원수를 출력하시오. -조건1. 부서별 사원수가 없더라도 부서번호, 부서명은 출력 -조건2. 부서별 사원수가 0인 경우 ‘없음’ 출력 -조건3. 부서번호 오름차순 정렬 SELECT d.deptno, d.dname, COUNT(e.deptno) FROM dept d LEFT OUTER JOIN emp e ON d.deptn..
04/16 5일차 서브쿼리 Lecture 6 서브쿼리 서브쿼리는 SELECT, FROM, WHERE 조건에도 올 수 있다. 서브쿼리는 어디에는 넣을 수 있다.(복잡한 서브쿼리 가능) 서브쿼리 잘하는 방법 : 안에서부터 하나하나씩 구현, 만들고 실행시켜본다. Buttom-up 방식으로 타이핑한다. 급여가 2850보다 많은 사원 SELECT * FROM emp WHERE sal>2850; BLAKE의 급여 SELECT sal FROM emp WHERE ename = 'BLAKE'; 급여를 BLAKE보다 많이 받는 사원 SELECT * FROM emp WHERE sal > (SELECT sal FROM emp WHERE ename='BLAKE'); 주의해야 할 점 서브쿼리 결과가 하나라면 =을 쓴다. 서브쿼리 결과가 여러개라면 IN 문..
컬렉션 프레임웍 Collection Framework : Arrays Arrays 클래스에는 배열을 다루는데 유용한 메서드가 정의되어 있다. 배열의 복사 : copyOf(), copyOfRange() int[] arr = {0,1,2,3,4}; int[] arr2 = Arrays.copyOf(arr,arr.length); // arr2=[0,1,2,3,4] int[] arr3 = Arrays.copyOf(arr,3); // arr3 = [0,1,2] int[] arr4 = Arrays.copyOf(arr,7); // arr4 = [0,1,2,3,4,0,0] int[] arr5 = Arrays.copyOfRange(arr,2,4); // arr5 = [2,3] int[] arr6 = Arrays.copyOfRange(arr,0,7); // arr6 = [0,1,2,3,4,0..
04/15 4일차 JOIN, GROUP BY Lecture 4 JOIN SELECT * FROM emp,emp; // 모호한 정의 SELECT e1.empno, e2.ename FROM emp e1, emp e1; SELECT e.empno, d.dname FROM emp e, dept d; SELECT e.name, d.deptno FROM emp e, dept d; 1.Cardition Product SELECT e.ename, d.deptno FROM emp e, dept d; SELECT e.ename, d.deptno FROM emp e, dept d WHERE e.deptno = d.deptno; // 조인 PK=FK 2.ORACLE : OUTER JOIN SELECT e.ename, d.deptno FROM emp e, dept d W..
다이나믹 프로그래밍_10844 : 가장 긴 증가하는 부분 수열 JAVA 문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) 출력 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. 예제 입력 1 복사 6 10 20 10 30 20 50 예제 출력 1 복사 4 다이나믹 프로그램 Buttom-up 방식으로 풀었다. import java.io.*; import java.util.*;..
04/12 3일차 RDBMS 개념, SELECT, Sorting 무결성 제약 조건이란? 테이블에 부적절한 자료가 입력되는 것을 방지하기 위해 테이블 생성 시 각 컬럼에 적용하는 여러 가지 규칙 관계 데이터 모델의 개념 도메인 : 한 애트리뷰트에 나타날 수 있는 값들의 집합 예) ename에 나타날 수 있는 값들의 집합 차수(degree): 한 릴레이션(테이블)에 들어 있는 애트리뷰트(열)의 수, 유효한 릴레이션의 최소 차수는 1, 릴레이션의 차수는 자주 바뀌지 않음 카디날리티(cardinality) 릴레이션의 튜플(행) 수 유효한 릴레이션은 카디날리티 0을 가질 수 있음 시간이 지남에 따라 계속해서 변함 널값(null value) ‘알려지지 않음’ 또는 ‘적용할 수 없음’을 나타내기 위해 널값을 사용 예: 사원 릴레이션에 새로운 사원에 관한 튜플을 입력하는데, 신입 ..
컬렉션 프레임웍 Collection Framework : Iterator, ListIterator, Enumeration Iterator, ListIterator, Enumeration은 컬렉션에 저장된 요소를 접근하는데 사용되는 인터페이스이다. Enumeration은 Iterator의 구버젼이며, ListIterator은 Iterator의 기능을 향상 시킨 것이다. Iterator 컬렉션에 저장된 요소들을 읽어오는 방법을 표준화하였다. 저장된 각 요소에 접근하는 기능을 가진 Iterator 인터페이스를 정의하고, Collection 인터페이스에는 Iteratro를 반환하는 iterator() 메서드를 정의하였다. public interface Iterator{ boolean hasNext(); // 읽어 올 요소가 남아있는지 확인한다. Object next(); // 다음 요소를 읽어 온다. void remove(); /..
컬렉션 프레임웍 Collection Framework : Stack, Queue 스택은 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 LIFO(Last In First Out) 구조이고,큐는 처음에 저장한 데이터를 가장 먼저 꺼내게 되는 FIFO(First In First Out)구조로 되어있다. 예를 들자면 스택은 동전통과 같은 구조로 양 옆과 바닥이 막혀 있어서 한 방향으로만 뺄 수 있는 구조이고, 큐는 양 옆만 막혀있고 위아래로 뚫려 있어서 한 방향으로 넣고 한 방향으로 빼는 구조로 되어 있다. 그렇다면 스택과 큐를 구현하기 위해서 어떤 컬랙션 클래스를 사용하는 것이 좋을까? 순차적으로 데이터를 추가하고 삭제하는 스택에는 ArrayList와 같은 배열기반의 컬렉션 클래스가 적합하지만, 큐는 데이터를 꺼낼 때 항상 첫 번째 저장된 데이터를 삭제하므로, ArrayList를 사용하..