전체 글 47

27.[오라클]트랜잭션

트랜잭션은 거래라는 뜻으로 거래의 안정성을 확보하는 방법으로 데이터 베이스에서 처리방법으로는 특정 테이블에서 데이터를 읽어 조작 후 다른 테이블에 데이터를입력하거나 갱신,삭제하는데 처리 도중 오류가 발생하면 모든 작업을 원상태로 되돌리고, 처리 과정이 모두 성공했을때 최종적으로 데이터 베이스에 반영하는 것이 바로 트랜잭션 처리이다. COMMIT COMMIT을 실행하게 되면 DB에 가해진 변경사항을 반영한다. (만약 반영이 되었다면 AUTO COMMIT이 되어있는 상태..) 사용법) COMMIT [WORK] ROLLBACK ROLLBACK을 실행하게 되면 DB에 가해진 변경사항을 취소하여 기존 그대로를 유지한다. 사용법)ROLLBACK [WORK][TO [SAVEPOINT] 세이브포인트명]; SAVEPOI..

DB/ORACLE 2024.02.24

26.[오라클]예외처리

예외는 두가지로 나뉘는데 오라클에서 발생시키는 시스템예외와 사용자가 의도적으로 발생시키는 사용자 정의 예외로 나뉜다. [예외 처리 구문] EXCEPTION WHEN 예외명1 THEN 예외처리 구문1 WHEN 예외명2 THEN 예외처리 구문2 ... WHEN OTHERS THEN 예외처리구문n; 만약 예외처리 구문을 넣지 않고 프로시저를 실행하면 시스템에서 예외를 발생시켜 프로시저 실행을 중단하지만 사용자 정의 예외를 하게 되면 프로그램 제어권을 획들하여 여러 단계에 걸쳐 수행되는 프로그램의 정상동작을 보장할수 있지만 하지 않게 된 경우 프로그램의 흐름의 끊어져 버린다. [SQLCODE,SQLERRM부분 정리] SQLCODE : 실행부에서 발생한 예외에 해당하는 코드를 반환한다. SQLERRM : 발생한 ..

DB/ORACLE 2024.02.23

25.[오라클]프로시저 정리

>[프로시저 생성 문법 정리] CREATE OR REPLACE PROCEDURE 프로시저 이름 (매개변수명1[IN |OUT |IN OUT]) 데이터 타입[:=디폴트값] , 매개변수명2[IN |OUT |IN OUT]) 데이터 타입[:=디폴트값] ~~~~~~~~~) IS[AS] 변수, 상수등을 선언 BEGIN 실행부 [EXCEPTION 예외처리부] END [프로시저 이름]; CREATE OR REPLACE PROCEDURE 프로시저 이름 : 프로시저 생성 매개변수 : IN은 입력,OUT은 출력 IN OUT은 입력과 출력을 동시에 진행 (미명시할 경우 디폴트로 IN) ※SQL문으로 프로시저 생성하기 CREATE OR REPLACE PROCEDURE KSW.TEST_PRO( PARAM_JOB_ID IN JOBS..

DB/ORACLE 2024.02.20

24.[오라클]PL/SQL 사용자 함수(FUNCTION)

※PL/SQL사용자 정의 함수 함수 생성 CREATE OR REPLACE FUNCTION 함수이름(매개변수1, 매개변수 2,....) RETURN 데이터타입; IS[AS] 변수,상수등 선언 BEGIN 실행부 RETURN 반환값; [EXCEPTION 예외처리부] END [함수이름]; CREATE OR REPLACE FUNCTION : CREATE OR REPLACE구문을 사용하여 함수를 생성. 최초 함수를 만들고 난 다음 수정을 하더라도 구문을 사용해 계속 컴파일 할 숭 있고, 마지막으로 수정된 최종본이 반영 매개변수 : 함수로 전달되는 매개변수로,"매개변수명 데이터 타입"형태로 명시한다. 매개변수는 생략이 가능하다. RETURN 데이터 타입 : 함수가 반환할 데이터 타입을 지정한다. RETURN 반환값 ..

DB/ORACLE 2024.02.20

23.[오라클]PL/SQL제어문 정리

※PL/SQL제어문 정리 제어문 설명 예시 IF문 IF 조건 THEN 조건처리 END IF; ->위와 같이 DECLARE후 IF문을 쓴다. CASE문 CASE문은 2가지 형식으로 처리 가능 1.CASE 표현식 WHEN 결과1 THEN 처리문1; WHEN 결과2 THEN 처리문2; ELSE 기타 처리문; END CASE; 2.CASE THEN 표현식1 THEN 처리문1; THEN 표현식2 THEN 처리문2; ELSE 기타 처리문; END CASE; ->위의 IF문과 같은 결과를 얻을수 있음. LOOP문 LOOP 처리문; EXIT [WHEN 조건]; END LOOP; ->3단에 대한 부분을 위와 같이 처리 LOOP DBMS_OUTPUT.PUT_LINE (SAMPLE_NUMBER ||'*'|| SAMPLE_C..

DB/ORACLE 2024.02.20

21.[오라클]분석함수와window

분석함수 : 테이블에 있는 로우에 대해 특정 그룹별로 집계값을 산출할때 사용 window함수 : 분석함수에서 사용하는 로우별 그룹(로우의 범위를 결정) ※분석함수에 대한 구문 분석함수(매개변수) OVER (PARTITION BY exp1,exp2........ ORDER BY exp3,exp4... WINDOW 절) 분석함수 : 특정그룹별 집계를 담당하므로 집계함수에 속한다. (집계값을 산출할때 사용된다.) PARTITION BY : 분석함수로 계산될 대상 로우의 그룹(파티션)을 지정한다. WINDOW : 파티션으로 분할된 그룹에 대해서 더 상세한 그룹으로 분할할때 사용 (로우의 범위를 결정한다.) ※분석함수 함수명 설명 예시 ROW_NUMBER() ROWNUM의사컬럼과 비슷한 기능으로 파티션으로 분할된..

DB/ORACLE 2024.02.14

19.[오라클]계층형쿼리

계층형 쿼리 : 2차원형태의 테이블에 저장된 데이터를 계층 구조로 반환하는 쿼리 계층형 구문 SELECT exp1,exp2,exp3..... FROM [테이블] WHERE 조건 = 조건 START WITH [최상위에 대한 조건] CONNECT BY [NOCYCLE][PRIOR 계층형 구조 조건]; START WITH 계층형에서 최상위 계층의 로우를 식별하는 조건을 명시. START WITH는 시작한다는 의미로 조건에 맞는 로우부터 시작 CONNECT BY 계층형이 어떤식으로 연결되는지를 기술하는 부분으로 상위에 대한 정보를 CONNECT BY PRIOR [부서] = [상위]로 기술한다. PRIOR는 계층형 쿼리에서만 사용할수 있는 연산자로 '앞서의,직진의'란 뜻. 'CONNECT BY [부서]=PRIOR..

DB/ORACLE 2024.02.12

18.[오라클]서브쿼리 정리

서브쿼리란 sql문장안에서 보조로 사용되는 또다른 SELECT문을 말한다. 메인쿼리 : 최종결과를 출력하는 쿼리 서브쿼리 : 중간단계 혹은 보조역할을 하는 SELECT문을 서브 쿼리라고 한다. 유형 설명 예시 연관성 없는 서브쿼리 메인과 연관성이 없는 쿼리 SELECT count(*) FROM employees WHERE salary >= ( SELECT AVG(salary) FROM employees ); -> 메인과 연관성없는 서브쿼리 연관성 있는 서브쿼리 메인과 연관성이 있는 쿼리 SELECT a.department_id, a.department_name FROM departments a WHERE EXISTS ( SELECT 1 FROM job_history b WHERE a.department_..

DB/ORACLE 2024.02.11