View
뷰(View)란 가상의 테이블
실체는 없고, 테이블에 링크된 개념
테이블의 모든 정보를 오픈하지 않고, 일부만 가상의 데이터만 오픈함
위를 보면 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 |