Windows Developer 썸네일형 리스트형 [Oracle] 인덱스 란? [출처]http://www.gurubee.net/pages/viewpage.action?pageId=688159 [인덱스 란?] 인덱스는 일반 테이블이나 클러스터에서 쓰여지는 선택적인 객체로서, 오라클 데이터 베이스 테이블내의 원하는 레코드를 빠르게 찾아갈 수 있도록 만들어진 데이터 구조. 옵티마이저가 최적의 경로를 결정하기 위해 사용하는 요소(Factor) 테이블 로우(Row)에 하나씩 대응되는 별도의 객체(Object) 인덱스는 하나의 테이블에 여러개를 지정할 수 있고, 하나의 컬럼은 여러개의 인덱스에 포함 될 수도 있다. 테이블과 무관하게 생성 및 삭제를 독립적으로 할 수 있다. 자동 인덱스 : 프라이머리 키 또는 UNIQUE 제약조건에 의해 자동적으로 생성되는 인덱스 수동 인덱스 : CREATE .. 더보기 [Oracle] 명시적 커서와 암시적 커서 커서는 PL/SQL에 내장된 일종의 포인터이며, 데이터베이스 쿼리와 레코드들의 세트를 얻는 작업, 그리고 결과셋의 행들을 하나씩 얻는 작업에 이용될 수 있다. 즉, 커서는 데이터에 대한 프로그래밍적인 접근을 가능하게 해준다. [명시적 커서] 명시적 커서는 커서를 관리하는데 필요한 PL/SQL코드를 PL/SQL 프로그래머가 직접 작성하는 커서이다. declare vempno number(4); vename varchar2(20); vsal number(7, 2); cursor c1 is select empno, ename, sal from emp where deptno = 20; begin open c1; dbms_output.put_line('empno ename slal'); loop fetch c1 .. 더보기 [Oracle] OUTER JOIN OUTER JOIN은 JOIN조건을 만족하지 않는 경우에도 모든 행들을 다 보고자 할 경우에 사용하는 JOIN방법이다 EMP 테이블의 EMP_NUM 컬럼과 EMP_SKILL 테이블의 EMP_NUM 컬럼을 보자. EMP_SKILL 케이블의 EMP_NUM중에 10005. 10007이 없다. 그럼 다음과 같이 검색을 하면 어떤 결과가 나올까? SELECT A.EMP_NUM, LAST_NAME, B.SKILL_NO FROM EMP A, EMP_SKILL B WHERE A.EMP_NUM = B.EMP_NUM; 만약 위의 식을 정확하게 입력했다면 7개의 검색 결과가 나타날 것이다. 중복된 것은 한번만 나타내라는 조건이 없으니 10005,10007이 없는 값들이 출력될 것이다. 그럼, 다음과 같이 검색을 해보자. S.. 더보기 [Oracle] NON-EQUJOIN NON_EQUJOIN은 등호(=)를 이용한 조건식을 사용하지 않는 경우를 말한다. 예를 들어 다음과 같이 BETWEEN를 사용하여 특정 범위를 지정할 수도 있다. SELECT A.EMP_NUM, A.DNAME, B.AMOUNT FROM DEPT A, DEPT_SALES B WHERE A.DEPTNO BETWEEN '100' AND '300'; 더보기 [Oracle] EquJoin [출처]http://www.itmembers.net/board/view.php?id=oracle&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=subject&desc=desc&no=30&PHPSESSID=0a6380ea559aaf4e033ed638baf52b0c 두개 이상의 테이블로부터 원하는 정보를 검색하기 위해서는 JOIN문을 사용한다. 그러나 JOIN이 반드시 두 개 이상의 테이블에서만 사용되는 것은 아니다. 하나의 테이블에서도 JOIN을 사용하여 마치 두개의 테이블 인 것처럼 사용할 수 있다. (이것을 Self Join이라고 한다.) EMP_NUM, SKILL_NO, SKILL_NAME을 한번에 표시하고 싶다. 그런데 EMP_NUM 컬럼은 EM.. 더보기 [Template Method design pattern 2] [활용성] - 어떤 한 알고리즘을 이루는 부분 중 변하지 않는 부분을 한번 정의해 놓고 다양해질 수 있는 부분은 서브 클래스에서 정의할 수 있도록 남겨두고자 할때 - 서브클래스 사이의 공통적인 행동을 추출하여 하나의 공통 클래스에 몰아둠으로써 코드 중복을 피하고 싶을때 - 서브 클래스의 확장을 제어할 수 있고, 특정 시점에서만 확장되도록 할 수 있다 더보기 [Template Method design pattern 1] 의도 : 객체의 연산에는 알고리즘의 뼈대만을 정의하고 각 단계에서 수행할 구체적 처리는 서브 클래스 쪽으로 미룹니다. 알고리즘의 구조 자체는 그대로 놔둔 채 알고리즘 각 단계 처리를 서브 클래스에서 재정의할 수 있게 합니다. [수정 전 코드] [수정 후 코드] virtual ph1과 ph2 함수를 재정의 함으로 인해서 해당하는 객체에 맞게 출력을 해 줄 수 있다. 더보기 [Adapter design pattern] 의도 : 클래스의 인터페이스를 사용자가 기대하는 인터페이스 형태로 적응 시킵니다. 서로 일치하지 않는 인터페이스를 갖는 클래스들을 함께 동작 시킵니다 [출력결과] [활용성] - 기존 클래스를 사용하고 싶은데 인터페이스가 맞지 않을 경우 - 아직 예측하지 못한 클래스나 실제 관련되지 않는 클래스들이 기존 클래스를 재사용하고자 하지만, 이미 정 의된 재사용 가능한 클래스가 지금 요청하는 인터페이스를 꼭 정의하고 있지 않을 때, 다시 말해, 이미 만든 것을 재사용하고자 하나 이 재사용 가능한 라이브러리를 수정할 수 없을 때 더보기 [Abstract Factory] 추상팩토리 의도 : 상세화된 서브클래스를 정의하지 않고도 서로 관련성이 있거나 독립적인 여러 객체의 군을 생성하기 위한 인터페이스를 제공한다 shapes[0] = factory->createCurvedInstance(); //shapes[0] = new Circle; shapes[1] = factory->createStraightInstance();//shapes[1] = new Square; shapes[2] = factory->createCurvedInstance();//shapes[2] = new Circle; #define ROBUST 일 경우 출력결과 Ellipse0: draw Rectangle1: draw Ellipse2: draw [활용성] - 객체가 생성되거나 구성 - 표현되는 방식과 무관하게 시스템.. 더보기 [oracle] 프로시져 생성 및 in, out, in out 파라미터 [프로시져 생성] create or replace procedure many_params : many_params는 프로시져의 이름 [파라미터 IN, OUT, IN OUT] IN : 읽기전용 파라미터 (내부에서 쓰일 변수) OUT : 프로시저에서 값을 변경할 수 있음 (외부에서 쓰일 변수) IN OUT : 읽고쓰는 작업을 동시에 할 수 있음 (내부에서 대입된 함수와 동시에 해당 변수를 리턴) [프로시져] many_params(iparam, oparam, ioparam); 첫번째 매개변수 IN mesg2 := mesg1 || 'Parameter as the out'; This is the InParmameter as the out 두번째 매개변수 OUT 받은 mesg1을 mesg2에 대입받아 mesg2를.. 더보기 이전 1 ··· 4 5 6 7 8 9 10 다음