DB관련 (37) 썸네일형 리스트형 jpa 기본 문법 1. Entity -1. entity의 생성 = 테이블의 생성 -- 엔티티 이름은 @Entity @Table(name="테이블") 정할 수 있다. -- 엔티티 이름은 @Entitiy(name="Mebmer") 와 같이 정할 수도 있지만 -- 정하지 않으면 클래스 이름이 Entitiy 클래스의 이름이 된다. -2. 칼럼값들의 생성 --1. @Id : pk와 매칭이되는 필수 어노테이션이다. --2. @GeneratedValue: @Id 가 선언된 필드에 대한 값을 자동 생성한다. -- 자동 생성 패턴은 다음과 같이 설정이 가능하다. @GeneratedValue(strategy="GenerationType.패턴") -- 패턴 유형 1. TABLE : db 테이블을 사용한 pk 값 생성, pk 값 생성을 위한 .. 서브 프로그램 4 - 트리거 (TRIGGER) 트리거 콜백 메소드라 생각하면 된다. 사용자가 지정해서 제어할 수 없다. 특정 이벤트가 일어날때 자동적으로 실행된다. 너무 많으면 퍼포먼스 저하 우려가 있다. 트리거에 관한 기능을 수행할때 생성 CREATE TRIGGER 수정 ALTER TRIGGER 삭제 DROP TRIGGER 의 권한이 다 필요한다. 트리거의 몸체에는 TCL 사용은 불가능하다. B>트리거의 구조 실행 시점 실행시키는 이벤트 트리거의 BODY 로 구성되어 있다. C> 종류 DML과 관련된 트리거 시스템과 관련된 트리거가 있다. D>사용 E>예시 서브 프로그램 3 - 패키지 (ORACLE PACKAGE) A>패키지 1.패키지란 연관성이 높은 함수나 프로시저를 묶어놓은 그룹 PL/SQL 이나 복합 유형의 데이터 함수나 프로시져 등이 패키지라는 그룹으로 묶여있다. 2.구성 선언부와 몸체부로 구성된다. 2-1 . 선언부 함수나 프로시져, 변수 등의 정의 선언 부분 B.사용 문형 선언부 CREATE PACKAGE 패키지 이름 IS 함수, 프로시저 ,변수 등의 선언부 END 패키지 이름; 몸체부 CREATE PACKAGE BODY 패키지 이름 IS 실제 실행문 구현부 END 패키지 이름 C> 삭제 둘다 할수도 있고 둘 중 하나만 할 수도 있다. DROP PACKAGE package_name ; DROP PACKAGE BODY package_name ; D> 예시 1) 예시1 --패키지 선언부 생성 CREATE O.. 서브 프로그램 - 내장함수(FUNCTION) A>선언 CREATE FUNCTION 이름 [ 파라미터 ] RETURN 데이터 타입 IS PL/SQL블록 B>수정 DROP FUNCTION 으로 삭제 ALTER FUNCTION 으로 수정 C>예시 1.예시 CREATE OR REPLACE FUNCTION s_max_sal return number IS max_sal emp.sal%TYPE; BEGIN SELECT max(sal) INTO max_sal (s_deptno emp.deptno%TYPE) FROM emp WHERE deptno = s_deptno; RETURN max_sal; --3번째 줄의 리턴타입과 같아야한다. END; / --결과 출력 SELECT s_max_sal(10) FROM dual; 2)예시2 CREATE OR REPLACE FU.. 서브 프로그램 - 프로시져(PROCEDURE) PL/SQL은 재사용을 못한다. 서브 프로그램은 된다. 종류는 프로시저, 함수, 패키지 ,트리거 등이다. A>서브 프로그램은 1. 이름이 지정된 PL/SQL 블록이다. 2. 최초 실행될때 한번만 컴파일 된다. 3. 데이터 베이스에 저장이 된다. 4. 다른 응용프로그램에서 호출이 가능하다. 5. 함수일 경우 리턴값이 존재할 수 있다. 6. 파라미터를 사용가능하다. B>프로시져 1.생성 문법 CREATE[OR REPLACE] PROCEDURE 프로시져 이름 IS|AS PL/SQL블록 2.파라미터 IN, OUT, INOUT 모드로 나뉘어 진다. 선언시 데이터 타입은 명시하되 크기는 명시하지 않는다. 선언부의 파라미터 = 형식 파라미터 실행시 파라미터 = 실행 파라미터 선언시 default 사용해 기본값 부여 .. 예외와 예외처리 A>예외 오라클 예외와 사용자 정의 예외가 있다. 1.오라클 예외 오라클이 정의한 상황에서 자동 발생 예외명이 정해진것과 없는것이 있다. 2. 사용자 정의 예외 사용자가 예외처리를 정의 예외처리부에서 RAISE 문을 통해 명시적으로 예외를 발생시킨다. B>종류 ACCESS_INTO_NULL CASE_NOT_FOUND COLLECTION_IS_NULL CURSOR_ALREADY_OPEN :이미 커서가 열려있음 JUP_VAL_ON_INDEX: 인덱스 중복 INVALID_NUBER:문자 to 숫자 실패 등 C> 사용 주의점 : 예외 종류가 중복되면 안된다. 문형1. DECLARE BEGIN 실행문 실행문 EXCETPION WHEN 오류 THEN 실행 내용 END; 문형2. 사용자 정의 오류 DECLARE 예외.. PL/SQL -4 CURSOR A> CURSOR SQL에서 커서란 SQL문을 실행, 처리를 위한 메모리공간에서 특정한 레코드에 위치한 포인터와 비슷한 개념 커서의 위치를 변경해서 특정 실행 결과를 가지고 온다. 커서의 서브쿼리는 select문만 올 수가 있다. B> 종류 묵시적/ 명시적 1.묵시적 커서 오라클 서버가 만듦 SQL% 이 있으면 묵시적 커서 하나만 선언 가능 1-1.문형 SQL%속성 1-2. 종류 1)SQL%ROWCOUNT 해당 커서에서 실행한 총 행의 개수 2)SQL%FOUND 커서 안에 데이터가 있느냐 없느냐 TURE, FALSE 리턴 3)SQL%ISOPEN 메모리에 OPEN되어 있으면 true 아니면 false 4)예시 DECLARE v_deptno number := &dno; BEGIN delete emp wher.. PL/SQL 3- 복합 변수, 제어문 레코드 타입과 테이블 타입이 있다. A>레코드 타입 1.정의와 선언 TYPE 타입 이름 IS RECORD( 필드 선언 ); 식별자 TYPE_NAME 2. 예시 이때는 %TYPE 은 되어도 %ROWTYPE은 안된다. 예시2. 입력받고 출력 B>테이블 타입 변수 =컬렉션 이라고도 한다. 배열이 여러개 중첩된 것 같은 테이블 모양 키와 값으로 구성되어 있다. 0.종류 1.키 UNIQUE 속성이며 숫자일 경우 :BINARY INTEGER 또는 PLS_INTEGER 문자일 경우 :VARCHAR2 2.값 스칼라 데이터 유형도 가능 레코드 타입도 가능 3.정의와 선언 예시1. 사번이 7499 사람 이름 인덱스 0에 저장하고 출력 DECLARE t_name VARCHAR2(20); TYPE tbl_emp_name IS.. 이전 1 2 3 4 5 다음