정보처리기사(18)

서창민·2024년 1월 23일
0

자격증

목록 보기
54/70
post-thumbnail

정보처리기사

SQL응용과 S/W 개발 보안구축

레코드 추가(INSERT문)

테이블에 레코드를 추가할 때 사용
값을 직접 지정하여 추가하거나 다른 테이블의 레코드를 추출하여 추가 가능
레코드의 전체 필드를 추가할 경우에는 필드명 생략 가능

형식1
INSERT INTO 테이블명(필드이름1, 필드이름2...)
VALUES(필드값1, 필드값2...)

형식2
INSERT INTO 테이블명(필드이름1, 필드이름2...)
SELECT 필드이름
FROM 테이블명
WHERE 조건 -- 테이블에서 추가

INSERT 형식 1 예시

INSERT 형식 2 예시

레코드 삭제(DELETE문)

테이블에서 조건에 부합하는 행을 삭제하거나 전체 행을 삭제

형식
DELETE FROM 테이블명
[WHERE 조건]

DELETE 예시

레코드 내 데이터수정(UPDATE문)

테이블의 필드값을 변경할 때 사용
조건을 지정하여 한번에 여러 레코드의 필드값을 변경

형식
UPDATE 테이블이름
SET 필드이름1=값1, 필드이름2=값2...
[WHERE 조건]

UPDATE 형식 예시

저장 프로시저(STORED PROCEDURE)

특정 작업을 수행하기 위해 연속된 SQL문을 하나로 모아 SQL 서버에 미리 컴파일하여
저장해 뒀다가 클라이언트로부터 호출문을 통해 일괄작업을 수행
여러 프로그램에서 호출하여 사용 가능
시스템의 일일 마감 작업, 일괄작업등에 주로사용

프로시저 생성방법
CREATE [OR REPLACE] PROCEDURE 프로시저명(파라미터)
       └> 동일한 프로시저 이름이 이미 존재시 기존 프로시저 대체
[지역변수선언]
BEGIN
프로시저 BODY; -- 프로시저의 코드를 기록하는 부분
END;

파라미터 종류
IN : 호출 프로그램이 프로시저에게 값을 전달할 때 지정
OUT : 프로시저가 호출 프로그램에 값을 반환 (=return)
INOUT : 호출 프로그램이 프로시저에게 값을 전달, 프로시저 실행 후 호출 프로그램에 값을 반환할때 지정

프로시저 생성 예시

프로시저 세부구성

구성 
: 선언부(내포된 서브프로그램 선언부분), 실행부(코드 실행제어, 데이터 조작문장 작성), 예외 처리부(예외처리부분)

프로시저 실행

작성한 프로시저를 실행- EXECUTE,CALL 명령어 사용

형식
EXECUTE 프로시저명;
또는 CALL 프로시저명;

프로시저 제거작업

형식
DROP PROCEDURE  프로시저명;

트리거(TRIGGER) 개념 및 정의

- DB시스템에서 데이터 입력, 갱식, 삭제등의 이벤트를 발생할 때 마다 자동적으로 수행되는 프로시저
- SQL의 제약조건 방법을 통해 테이블 데이터를 일치시킬 때 주로 사용
- DB에 저장되며 데이터 변경 및 무결성 유지, 로그메시지 출력등에 사용
- 트리거 구문에는 DCL을 사용할 수 없음, DCL이 포함된 프로시저나 함수를 호출할 경우 오류발생
- 오류가 있는경우 트리거가 처리하는 데이터에도 영향을 줌 생성시 주의

형식
CREATE TRIGGER 트리거명 [AFTER | BEFORE] [동작 옵션] ON 테이블명
REFERENCING [NEW | OLD] TABLE AS 테이블명
FOR EACH ROW -- 각 튜플마다 트리거를 적용
[WHEN 조건식] -- 트리거를 적용할 튜플의 조건을 지정
BEGIN
트리거 BODY; -- 트리거의 본문 내용 입력하는 부분
END;

트리거의 동작시기 
AFTER: 테이블이 변경된 후 트리거 실행
BEFORE: 테이블이 변경되기 전에 트리거 실행

동작 옵션
INSERT : 테이블에 새로운 레코드 삽입할 때 트리거 실행
DELETE : 테이블에 레코드 삭제할 때 트리거 실행
UPDATE : 테이블에 레코드 수정할 때 트리거 실행

트리거 적용 될 테이블의 종류 
NEW: 새로 추가되거나 변경에 참여할 튜플의 집합에 트리거 적용
OLD : 변경된 튜플의 집합에 트리거 적용

트리거 BODY부분은 BEGIN ~ END 구문으로 구성

트리거 예시

트리거 제거작업

형식
DROP TRIGGER  트리거명;

체크포인트

문제 1

정답 : INTO

문제 2

정답 : UPDATE

문제 3

정답 
DELETE FROM 학생
WHERE 이름='Scott';

문제 4

정답
INSERT INTO 학생(학번, 성명, 학년)
VALUES(202012, '정처기', 3);

문제 5

정답 : 트리거(TRIGGER)
profile
Back-end Developer Preparation Students

0개의 댓글

Powered by GraphCDN, the GraphQL CDN