Data Handling/MySQL

3장 - 4,5교시 정리

아네스 2021. 6. 12. 18:01
반응형

View

뷰(View)란 가상의 테이블

실체는 없고, 테이블에 링크된 개념

테이블의 모든 정보를 오픈하지 않고, 일부만 가상의 데이터만 오픈함

 

 

memberTBL
uv_memberTBL(뷰)

위를 보면 memberTBL엔 memberID, memberName, memberAddress가 있지만

뷰에 보면 memberID, memberAddress만 접근가능하다. (memberName은 접근 불가)

 

스토어드 프로시져(Stored Procedure)

Mysql에서 제공하는 프로그래밍 기능(다른 프로그래밍 언어와 같은 기능을 담당)

 

저 당탕이와 냉장고를 부르는 쿼리를 자주 부른다고 가정해보자. 위와같이 procedure를 만들고

호출하게 되면 일일이 저 두 쿼리를 작성하고 호출하지 않고 myProc를 호출하는 것 만으로도 실행할 수 있다.

 

트리거

다른 테이블에 부착되어서 테이블에 INSERT, UPDATE, DELETE 작업이 발생되면 실행되는 코드.

예를들어 학생테이블을 관리하다가 특정학생이 다시 자퇴한다면...

학생테이블 Delete -> 자퇴학생 테이블 INSERT 하는 식으로 관리하면 되지만, 

사람이 하나하나 잘 컨트롤 하지 못했다면 Delete만 하고 INSERT안해줘서 이후에 자료가 없는 경우도 생긴다.

자동으로 Delete된 학생의 행이 자퇴학생 테이블로 INSERT된다면 좋겠다.

이런 역할이 트리거의 역할임.

멤버테이블에 '연아'(님;;) 을 넣고 UPDATE 구문을 통해서 주소를 변경해 줄 수 있다.

그리고 DELETE으로 삭제하면 잘 삭제 될것이다.

트리거를 사용해서 deletedmembertbl을 관리하려면 어떻게 해야할까 ?

 

일단 테이블을 하나 만들고, 

DELIMITER (아직 안배움) 사이 구문을 보면 트리거 이름을 정의하고

AFTER DELETE = DELETE 쿼리 이후에 작동하는 트리거로 설정해줌

ON memberTBL = memberTBL에서 DELETE 구문이 작동한 이후 트리거 작동할것.

for EACH ROW = 모든 행에 대한 DELETE에 대해서.

 

BEGIN - END 사이 구문

OLD가 정확히 뭐로 날아오는지 모르겠지만, 아무래도 문맥상 하나의 row겠지요.

트리거가 작동되면 BEGIN  - END 사이의 쿼리가 진행된다.

deletedMemberTBL에 INSERT시키는데, 지워진 것의 ID, Name, Address, 지워진 날짜를 행으로 추가해준다.

 

당탕이를 membertbl에서 DELETE시키면 자동으로 deletedMemberTBL에 삽입된다.

 

 

백업과 복원

백업 : 현재 데이터베이스를 다른 매체에 보관

DBA가 해야할 가장 중요한 일을 꼭한가지만 뽑으라면 이 백업과 복원이다.

Export - restore

enterprise tool 이 있으니 실무에선 이걸 써라.

 

 

반응형

'Data Handling > MySQL' 카테고리의 다른 글

7장 SQL 고급(1장 , 2장)  (0) 2022.02.23
6장(SQL기본)  (0) 2022.02.11
03장- 1/2/3 교시 내용 정리  (0) 2021.06.01