1] 내장 SQL

 1. 커서 (Cursor)

- 내장 SQL문의 실행 결과로 반환된 복수 개의 튜플들을 접근할 수 있도록 해주는 개념

- 질의 실행 결과로 반환된 테이블의 튜플들을 순서대로 가리키는 튜플에 대한 포인터.

- 한번에 하나씩 튜플들을 처리할 수 있음

* 커서 관련 명령어

DECLARE

커서를 정의하는 등 커서에 관련된 선언을 하는 명령어

OPEN

커서가 질의 결과를 첫 번째 튜플을 가리키도록 설정하는 명령어

FETCH

질의 결과에 대한 튜플들 중 현재의 다음 튜플로 커서를 이동시키는 명령어

CLOSE

질의 실행 결과에 대한 처리 종료 시 커서를 닫기 위해 사용하는 명령어

 

2] 스토어드 내장 프로시저

1. 스토어드 프로시저(Stored Procedure)

- 프로시저 : 특정한 작업을 수행하는 SQL문을 논리적으로 그룹화한 것. 그 자체만으로도 완전한 프로그램의 축소판.

- 스토어드 프로시저 : 연속된 SQL문을 하나로 모아 SQL서버에 미리 컴파일해서 저장해 놓은 것. 호출문을 통하여 일괄 작업 수행에 적합.

구성

장점

- 선언부 : 타입, 커서, 상수, 변수, 내포된 서브 프로그램 선언부

- 실행부 : 코드 실행 제어, 데이터 조작 문 작성

- 예외처리부 : 예외 처리

모듈별 프로그래밍 허용.

빠른 SQL 실행 시간

보안성 향상

네트워크 통신량 감소

 

2. 생성, 제거, 실행

CREATE [OR REPLACE] PROCEDURE 프로시저명(파라미터)

[지역변수 선언]

프로시저 BODY;

- OR REPLACE : 선택적 예약어.

파라미터

IN : 프로시저에 값 전달하는 것 지정

OUT : 프로시저가 반환하는 값 지정

INOUT : 프로시저에 값 전달하고 프로시저 가 반환하는 값 지정

BODY : 본문 코드. BEGIN~ END. 적어도 하나의 SQL문 있어야 함.

SET : 변수에 값 치환 예약어

CREATE OR REPLACE PROCEDURE change_s(IN 사원번호 INTERGER)

BEGIN

UPDATE 급여

SET 지급방식 = ‘S’

WHERE 사원번호 = 사원번호;

END;

 

 

DROP PROCEDURE 프로시저명;

EXECUTE 프로시저명;

EXEC 프로시저명;


3] 이상

1. 이상의 개념

- 테이블에서 일부 속성들의 종속으로 인해 데이터의 중복이 발생

-> 이 중복으로 인해 테이블 조작 시 문제가 발생하는 현상

 

2. 이상의 종류

삽입 이상

테이블에 데이터를 삽입할 떄 의도와는 상관없이 원하지 않는 값들로 인해 삽입할 수 없게 되는 현상

삭제 이상

테이블에서 한 튜플을 삭제할 떄 의도와는 상관없는 값들도 함께 삭제(연쇄삭제)되는 현상

갱신 이상

튜플에 있는 속성 값 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상


+ Recent posts