- 스토어드 프로시저는 프로그래밍 기능을 합니다.
- 스토어드 프로시저는 쿼리 문의 집합으로 볼 수 있습니다.
- 한 번 만들어 놓고, 필요할 때 마다 호출해서 사용합니다.
- 스토어드 프로시저는 테이블 안에 저장됩니다.
정답 : 4. 스토어드 프로시저는 테이블 안에 저장됩니다.
스토어드 프로시저는 데이터베이스 내부에 저장된다.
- DELIMITER ;로 시작합니다.
- MAKE PROCEDURE문으로 생성합니다.
- START와 END 사이에 코드를 작성합니다.
- IN 또는 OUT 매개변수를 사용할 수 있습니다.
정답 : 4. IN 또는 OUT 매개변수를 사용할 수 있습니다.
정답 : 4. 출력 매개변수는 프로시저를 실행할 때 아무것도 보내지 않습니다.
출력 매개변수는 CALL 프로시저_이름(@변수명) 형식을 사용한다.
- IF~ELSE 조건문을 사용할 수 있습니다.
- FOR 반복문을 사용할 수 있습니다.
- WHILE 반복문을 사용할 수 있습니다.
- 동적 SQL을 사용할 수 있습니다.
정답 : __2. FOR 반복문을 사용할 수 있습니다.
- 스토어드 함수는 RETURNS 문으로 반환할 값의 데이터 형식을 지정합니다.
- 스토어드 함수는 본문 안에서 RETURN 문으로 하나의 값을 반환해야 합니다.
- 스토어드 프로시저는 CALL로 호출하지만, 스토어드 함수는 SELECT 문장 안에서 호출합니다.
- 스토어드 함수 안에서도 SELECT를 사용할 수 있습니다.
정답 : 4. 스토어드 함수 안에서도 SELECT를 사용할 수 있습니다.__
CLEAR, RETURNS, DELIMITER, SET, DECLARE, RETURN, CALL
CREATE FUNCTION 스토어드_함수_이름(매개변수) _____ 반환 형식 BEGIN # 이 부분에 프로그래밍 코딩 _____ 반환값 END
정답 : RETURNS, RETURN
커서 닫기, 데이터 가져오기 및 데이터 처리하기, 커서 열기, 반복 조건 선언하기, 커서 선언하기
정답 : 커서 선언하기, 반복 조건 선언하기, 커서 열기, 데이터 가져오기 및 데이터 처리하기, 커서 닫기
SEARCH, SELECT, FETCH, LEAVE, BYE, QUIT, WHILE, LOOP, CONTINUE
cursor_loop: ____ ____ memberCursor INTO memNumber;
IF endOfRow THEN
____ cursor_loop;
END IF;
SET cnt=cnt+1;
SET totNumber = totNumber + memNumber;
END ____ cursor_loop;
정답 : <span style = "color:red">__LOOP, FETCH, LEAVE, LOOP__</span>
<br><br><br><br>
## 07-3. 자동 실행되는 트리거
#### 1. 다음은 트리거의 기본 작동에 대한 설명입니다. 가장 거리가 먼 것을 하나 고르세요.
>1. SELECT, INSERT, UPDATE, DELETE문이 발생할 때 작동됩니다.
2. 트리거는 자동으로 작동됩니다.
3. 트리거는 테이블에 부착됩니다.
4. 스토어드 프로시저와 문법은 비슷합니다.
정답 : <span style = "color:red">__1. SELECT, INSERT, UPDATE, DELETE문이 발생할 때 작동됩니다.__</span>
SELECT는 트리거를 작동시키지 않는다.
<br><br>
#### 2. 다음은 트리거와 스토어드 프로시저의 차이점입니다. 가장 옳은 것을 하나 고르세요.
>1. 트리거는 CALL로 실행할 수 있습니다.
2. 트리거는 스토어드 프로시저와 마찬가지로 매개변수를 사용할 수 있습니다.
3. 트리거는 입력 매개변수만 사용할 수 있습니다.
4. 트리거는 이벤트가 발생되면 자동으로 실행됩니다.
정답 : <span style = "color:red">__4. 트리거는 이벤트가 발생되면 자동으로 실행됩니다.__</span>
<br><br>
#### 3. 다음은 트리거의 형식입니다. 빈 칸에 들어갈 것을 보기에서 고르세요.
>AFTER, FRONT, FORE, ROW, COLUMN, TABLE
```sql
DELIMITER $$
CREATE TRIGGER myTrigger
____ DELETE
ON trigger_table
FOR EACH ____
BEGIN
# 이 부분이 작동함;
END $$
DELIMITER;
정답 : AFTER, ROW
- SELECT
- DELETE
- TRUNCATE
- UPDATE
정답 : 2. DELETE
AFTER DELETE 트리거는 오직 DELETE문에서만 작동한다.
- INSERT가 실행되면 NEW 테이블에 새 값이 저장도비니다.
- DELETE가 실행되면 OLD 테이블에는 기존 값이 저장됩니다.
- UPDATE가 실행되면 OLD 테이블에는 기존 값이, NEW 테이블에는 새 값이 저장됩니다.
- TRUNCATE가 실행되면 OLD 테이블에는 기존 값이, NEW 테이블에는 새 값이 저장됩니다.
정답 : 4. TRUNCATE가 실행되면 OLD 테이블에는 기존 값이, NEW 테이블에는 새 값이 저장됩니다.
TRUNCATE는 트리거를 작동시키지 못한다.