본문 바로가기

국비

11.30 국비학원 40일차 (TRIGGER 객체, FUNCTION 객체, 회원가입 종합 문제)

  • TRIGGER 객체

        - PL/SQL 구문을 사용하여 생성할 수 있는 객체

        - 테이블 또는 뷰에  INSERT, UPDATE, DELETE 문에 의한 변경이 발생할 경우 자동으로 실행할 내용을 정의하여

           실행하게 하는 객체

        - 변경 전/후를 구분하여 자동으로 실행할 내용을 정의할 수 있다.

TEST1 에 INSERT 작업을 하면 TEST2 에 (:NEW.ID, :NEW.NAME) 값이 들어가는 트리거 생성

        - FOR EACH ROW (행 트리거) : 각 행마다 인서트가 동작 (트리거 발생) 할 수 있도록 해준다.

        - :NEW.COLUMN_NAME, :OLD.COLUMN_NAME 형식 필요

        - INSERT, UPDATE 문에는 :NEW.COLUMN_NAME 이 쓰이고 DELETE,UPDATE 문에는 :OLD.COLUMN_NAME

NAME 컬럼이 UPDATE 되면 동작하는 트리거

 

  • FUNCTION 객체

        - PL/SQL 구문을 사용하여 생성할 수 있는 객체

        - 프로시져와 유사하며, 일반 프로그래밍 언어의 함수와 같이 값을 리턴(반환) 한다.

        - FUNCTION 은 PROCEDURE 와 다르게 SQL 구문 안에서 사용할 수 있다.

JOBS 테이블에서 JOB_TITLE 데이터를 VAR_JOB_TITLE에 부여하여 반환하는 FUNCTION
SQL 구문 안에서 사용 가능

 

<종합 문제>

# 웹 사이트에 사용할 회원 관리용 테이블을 생성하고 다음의 요구사항에 적합한 SQL 문과 ORACLE 객체를 생성한다.
     - 일반 사용자는 웹사이트 이용을 위해 회원 가입을 진행해야 한다.
     - 회원 가입은 즉시 이루어 지지 않으며, 관리자의 승낙을 통해서만 이루어져야 한다.
     - 회원 가입에 필요한 정보는 닉네임과 이메일만 있으면 된다.

        (관리를 위해서 추가 정보가 필요하지만 사용자가 입력하는 정보는 닉네임과 이메일 뿐이다.)
     - 회원 가입을 요청한 사용자는 관리자의 승낙 이후 전달되는 메일 메시지 안의 암호를 통해 로그인을 할 수 있다.
     - 최초 로그인을 시도하는 회원은 필수적으로 암호를 변경해야 하며, 암호를 변경할 때는 회원이 사용할 암호만
       있으면 된다.
 

  테이블은 총 3개의 테이블을 생성하도록 한다.
     - 회원 테이블 : 회원으로 가입된 사용자의 정보가 기록되는 테이블
     - 회원 요청 테이블 : 회원 가입을 위해 가입 요청 정보가 기록되는 테이블
     - 접속 이력 테이블 : 로그인 및 로그아웃한 회원의 접속 시간을 기록하기 위한 테이블