뇌를 자극하는 SQL Server 2012 기본편 110페이지
——–뷰(View)———–
뷰는 가상의 테이블.
CREATE VIEW uv_memberTBL
AS
SELECT memberName, memberAddress FROM memberTBL;
뷰(uv_memberTBL)에 접근하면 SELECT 문이 작동하게 됨.
USE ShopDB;
SELECT * FROM uv_memberTBL;
이렇게 사용함. 뷰를 생성할 때 입력한 SELECT문이 작동.
———저장 프로시저(Stored Procedure)———
저장 프로시저는 SQL Server에서 제공하는 프로그래밍 기능. SQL 문을 하나로 묶어서 편리하게…(+프로그래밍 언어 측면도 제공)
USE ShopDB;
SELECT * FROM memberTBL WHERE memberName=’당탕이’;
SELECT * FROM productTBL WHERE productName=’냉장고’;
이렇게 매번 입력하는 게 번거롭다면…
CREATE PROCEDURE myProc
AS
SELECT * FROM memberTBL WHERE memberName=’당탕이’;
SELECT * FROM productTBL WHERE productName=’냉장고’;
GO
저장 프로시저 생성.
저장 프로시저 실행 시.
——–트리거(Trigger) 개요——
트리거는 테이블에 INSERT, UPDATE, DELETE 작업이 발생하면 실행되는 코드.
‘만약 어떤 테이블에 삭제 작업이 일어날 때 미리 해당 데이터를 다른 곳에 자동으로 저장하는 기능이 있다면?’
——–실험을 해보자————
INSERT INTO memberTBL VALUES (‘Figure’, ‘연아’, ‘경기도 군포시 당정동’);
memberTBL에 새 회원을 입력.
연아가 추가됨.
UPDATE memberTBL SET memberAddress=’서울 강남구 역삼동’
WHERE memberName=’연아’;
연아의 주소를 수정.
업데이트 됨.
DELETE memberTBL WHERE memberName=’연아’;
연아 회원 삭제
(이렇게 하면 연아의 회원 정보를 살릴 방법이 없다)
———실험을 해보자2———–
CREATE TABLE deletedMemberTBL
(memberID char(8),
memberName nchar(5),
membertAddress nchar(20),
deleteDate date –삭제한 날짜
);
먼저 지워진 데이터를 보관할 테이블을 만듦
CREATE TRIGGER trg_deletedMemberTBL –트리거 이름
ON memberTBL — 트리거를 부착할 테이블
AFTER DELETE — 삭제 후 작동하게 지정
AS
–deleted 테이블의 내용을 백업 테이블에 삽입
INSERT INTO deletedMemberTBL
SELECT memberID, memberName, memberAddress, GETDATE()
FROM deleted;
GO
memberTBL에 삭제 작업이 일어나면 해당 행이 deletedMemberTBL에 저장됨
현재 memberTBL 내용.
당탕이를 제거함.
memberTBL과 deletedMemberTBL의 내용. 신기하구만. ㅎㅎ