Oracle 55

201105 프로시저

프로시저는 반환값이 없음 함수는 반드시 값을 반환해야함 함수는 일반쿼리에 사용가능하지만 프로시저는 반환값이없으므로 반드시 실행시키려면 1.EXCUTE어쩌고, 2.별도의익명블록 서버에 미리 저장되어서 실행가능한 (컴파일된) 모듈 캐시메모리에 저장되기 때문에 실행속도가 빠르다 반환 값이 없음 프로젝트 수행 시 분업화 지원 *사용 형식 CREATE [OR REPLACE] PROCEDURE 프로시져명[( 매개변수 IN|OUT|INOUT 타입 [:=default값], : 매개변수 IN|OUT|INOUT 타입 [:=default값])] IS|AS 변수,상수,커서 선언; BEGIN 비지니스 로직 구현; [EXCEPTION 예외처리구문; END [프로시저명]; INTOUT은 아주필요한경우가아니면 쓰지말아라 EX 사원테..

Oracle 2020.11.05

201105

2. WHILE문 - 애플리케이션 개발언어의 WHILE문과 같은 기능 제공 *사용형식 WHILE 조건 LOOP 반복처리문; END LOOP; - '조건'이 만족할 때 반복명령을 처리 EX 구구단의 7단을 춢력하시오 DECLARE V_BASE NUMBER:=7; V_CNT NUMBER:=0; V_RES VARCHAR2(50); BEGIN WHILE V_CNT> 커서가 필요함 커서와 제일 궁합이 잘맞는 건 FOR문 커서를 쓰면 반드시 반복문이 따라와야한다. 행단위로 읽어오는걸 FETCH라고 한다. 실행영역에서 오픈되어질때 커서가 실행되어짐 오픈했다고 해서 되는게아니고 들어와서 있는지없는지 확인해야함 그게 FETCH EX 회원테이블에서 마일리지가 3000이상인 회원들이 2005년에 구입한 실적을 조회하시오 구..

Oracle 2020.11.05

201104 커서

- 사용자가 실행한 쿼리에 의하여 영향받은 결과 집합 - 쿼리의 결과를 읽거나 수정, 삭제할 때 사용 - select문 결과집합에서 첫번째 행(레코드)부터 차례대로 마지막 행까지 참조 - 개발자가 PL/SQL블록에서 수동적 제어 개념 제공 - 커서는 선언, open, fetch, close 단계로 차례대로 실행 1) 커서의 선언 - 선언부(DECLARE)에서 선언 *사용형식 CURSOR 커서명[(변수명 타입,...)] IS select문; 2) 커서의 속성 6) 커서 CLOSE - 사용이 끝난 커서는 반드시 닫아주어야 함. *사용형식 CLOSE 커서명; 예 ) 사원테이블에서 100번 부서에 속한 사원명을 출력하는 커서를 작성하시오

Oracle 2020.11.05

201104 반복문

어플리케이션 언어의 반복문과 같은 기능 LOOP, WHILE, FOR 문이 제공 1. LOOP문 - 반복문의 기본 구조를 제공 (사용형식) LOOP 반복처리문(들); : [EXIT WHEN 조건;] END LOOP; -조건이 참이면 반복을 벗어남 EX 구구단의 7단을 출력하시오 DECLARE V_CNT NUMBER:=1; V_RES NUMBER:=0; BEGIN LOOP EXIT WHEN V_CNT > 9; V_RES:=V_CNT*7; DBMS_OUTPUT.PUT_LINE(7||'*'||V_CNT||'='||V_RES); V_CNT:=V_CNT+1; END LOOP; END; EX 첫날에 100원을 그 다음날부터 전날의 2배씩 저축할 때 최초로 100만원을 넘는 날과 저축 총액을 구하시오 DECLARE ..

Oracle 2020.11.04

PL/SQL

- Procedual language SQL의 약자 - 서버에서 절차적인 처리를 위하여 표준 SQL을 확장한 기능이 보완된 SQL - 모듈화(특정 기능을 수행할수있는 소스가 만들어져있음) 와 캡슐화가 가능 제공되어지는 객체 - 익명블록(Anonymous Block), 사용자 정의 함수(User Defined Function), 저장프로시저(Stored Procedure), 트리거(Trigger), 패키지(Package) 등이 제공 (익명블록위에 함수나 프로시저가 저장되면 사용자정의함수 혹은 저장프로시저가 되는거임) 함수는 반환값이 있고 프로시저는 반환값이 없다. 1. 익명블록(Anonymous Block) - PL/SQL의 기본이 되는 구조 - 선언부와 실행부로 구성 - 이름이 없어 재사용 될 수 없다...

Oracle 2020.11.04

201104

CREATE [UNIQUE | BITMAP] INDEX 인덱스명 ON 테이블명(컬럼명1[,컬럼명2,...])[ASC|DESC]; -'ASC|DESC' : 오름차순 또는 내림차순으로 인덱스 생성, default는 ASC EX 사원테이블에 사원명으로 인덱스를 생성하시오 CREATE INDEX idx_emp ON EMPLOYEES(EMP_NAME); 임플로이테이블의 핸드폰번호 뒷자리를 가지고 인덱스를 만들어보자 CREATE INDEX idx_emp02 ON EMPLOYEES(SUBSTR(PHONE_NUMBER,9,4)); 인덱스파일에 대한 업데이트를 강제할수있다 > ALTER라는 명령어 **인덱스의 재구성 - 삽입, 삭제 등의 동작이 빈번히 발생되는 경우 - 인덱스를 다른 워크스페이스로 이동한 경우 (사용형식..

Oracle 2020.11.04

201103

SELECT MAX (LPROD_ID) FROM LPROD; 1. 시퀀스객체만들어야함 CREATE SEQUENCE SEQ_LPROD START WITH 11; 2. 자료삽입 INSERT INTO LPROD SELECT SEQ_LPROD.NEXTVAL, 'P502','농산물' FROM DUAL; 유일하게 서브쿼리쓸때 괄호가 생략되는것은 INSERT문에서... 3. SYNONYM - 동의어 - 오라클 객체에 부여하는 별칭 - 다른소유자의 오라클 객체에 접근하기 위해서 '스키마명.객체명'으로 접근해야 함 *사용형식 CREATE [OR REPLACE] SYNONYM 시노늄이름 FOR 객체명; EX DEPARTMENTS 테이블을 DEPT라는 이름을 부여하여 사용하시오 CREATE SYNONYM DEPT FOR D..

Oracle 2020.11.03

201103 VIEW

1. VIEW - 가상의 테이블 - 쿼리가 내보내는 결과가 VIEW 임. 다음거 보려면 사라짐 - 필요한 정보가 여러 테이블에 분산되어 있고 JOIN이 자주 발생되는 경우 매번 JOIN연산 수행대신 뷰를 생성하여 처리 - 특정 자료에 대한 접근을 제한하고자 하는 경우 왜 날라갔을까? 이름이 없어서.. 이름이 없으면 저장이 안됨 자바의 익명클래스 (GUI쓸때 많이씀. 클릭했을때 실행되는것들을 클래스로...왜? 누를때마다만 실행되믄되니까.함수의 매개변수자리에 이름없는 클래스를ㄹ 집어넣는다. ) 오라클에서, 셀렉트에 의해서 영향받은 행들의 집합 >커서 >뷰랑비슷 뷰는 실시간으로 변형되어지는.. 홈피의 접속자 통계같은거 정규화를 시킬수록 분할이 됨.. 특정 컬럼을 조회하려는데 조회하는 컬럼들잉 고정이 되어잇는데..

Oracle 2020.11.03

201103

INSERT DELETE UPDATE 세가지 이벤트가 일어났을때 자동으로 갱신해주는프로그램 >> 트리거 거의 대부분의 업무프로그램에서 사용되어짐 오늘이 2005년 5월 31일이라고 가정하고 5월 입고 및 판매실적을 조회하여 재고수불테이블을 갱신하시오 (우리는 지금 트리거가 없으니꼐......) (자료를 모았다가 한번에 처리해주는 형식) 메인쿼리 > 재고수불업뎃 서브쿼리 > 입/출고수량조회 (해서 메인쿼리의 업뎃을 지원해주기) 2005년 5월 입/출고조회 (제품별 입고수량 및판매수량 집계 BUYPROD 에 BUYDATE와 CART테이블의 CART_DATE가 다르기떄문에 둘중하나라도 기간에 안맞으면 안나와버림.. 우선 입고, 판매실적 조회해야함 SELECT C.PROD_ID 제품코드, A.IAMT 입고수량,..

Oracle 2020.11.03
반응형