한글화 및 브라우저 작동 툴




실행하면


아래와 같은 화면이 나온다. (한글화를 하기 전이라서 영어판으로 보인다.)




좌측의 네모난 아이콘을 누르면 검색창이 하나 나오는데




파란색 네모를 따라서 korean을 검색하고 선택하여 설치를 눌러준다.


사진에는 이미 설치를 했기 때문에 제거 버튼이 보인다.


설치하고 나서 재시작을 요구하는 팝업창이나 버튼이 활성화 된다, 눌러서 재시작





작성한 HTML을 브라우져로 작동시키기 위한 툴을 아까와 같이 설치








HTML 파일 생성




좌측의 종이 두장 모양을 클릭





폴더 열기 버튼을 눌러 마음에 드는곳에 HTML파일을 생성할 폴더를 지정한다.




파란색 표시 부분을 누르면 박스가 나오는데 이름.html을 입력하면 html 파일이 만들어진다.





브라우저로 작동 방법







HTML 파일을 만들어 작성 한 후






ctrl + shift + p를 누르면 위와 같이 검색 창이 나오는데


저번에 설치한 view in browser을 누르면 바로 브라우저로 실행된다.


실행 전에는 꼭 ctrl + s를 눌러 저장을 해야 수정한 내용이 실행된다.







또한 Internet Explorer의 옛날 버젼은 작동이 안될수도 있고, 최신 버젼이라도 지원 안되는 기능들이 있을 수 있으므로


크롬이나 파이어폭스 같은 브라우져를 사용하여 공부하길 권장한다.


HTML은 다양한 에디터가 있는데 그 중 프로그램이 살짝 무겁지만 무료인게 Visual Studio Code 이다.




설치 방법은 아래와 같이 간단하다.




구글에 visual studio code 검색





최 상단에 visualstudio 사이트로 들어가서






메인 페이지가 나오는데 스크롤을 쭉 아래로 내리면








자신의 환경에 맞는 다운로드 버튼이 있다.



설치는 따로 중요한점이 없어 그냥 더블클릭 하고 진행하면 된다.


트리거는 사전적 의미로는 방아쇠를 의미한다


말 그대로 트리거는 방아쇠를 당겼을때 총이 나가는 것 처럼


트리거를 실행하면 안에 담겨있는 실행문이 그대로 실행되는 것이다.


VIEW에 대해서는 트리거를 이용할 수 없고 INSERT, UPDATE, DELETE문만 사용가능하다.



CREATE OR REPLACE TRIGGER 트리거 이름


[BEFORE|AFTER]


[INSERT|UPDATE|DELETE] ON 테이블 이름


[FOR EACH ROW] …


Pl/sql 실행문


와 같은 익숙한 구조로 만들어진다.



안의 옵션의 설명은


[BEFORE|AFTER] : 문장이 실행 되기 전/후에 실행된다.


[INSERT|UPDATE|DELETE] ON 테이블 이름 : 작동할 구문


[FOR EACH ROW] : 이 옵션은 행 트리거가 된다.





행/문장 트리거


행 Trigger     : 컬럼의 각 행의 데이터 변화가 생길 때마다 실행 (데이터 행 제어 O)


문장 Trigger  : 트리거 사건에 의해 단 한번만 실행(데이터 행 제어 X)




SET SERVEROUTPUT ON;

-- 사용 테이블 2개 생성

CREATE TABLE emp01(
    empno NUMBER(4) PRIMARY KEY,
    ename VARCHAR2(20),
    job VARCHAR2(20)
);

CREATE TABLE emp02(
    empno NUMBER(4) PRIMARY KEY,
    ename VARCHAR2(20),
    job VARCHAR2(20)
);

-- INSERT TRIGGER
-- emp01에 데이터가 들어가면 emp02에도 들어간다.
CREATE OR REPLACE TRIGGER tri_insert
    AFTER INSERT ON emp01
-- emp01에서 insert가 일어난 후에 작동하여라
    FOR EACH ROW
-- 각 행의 데이터를 변화를 감시, 감지되면 아래 구문을 실행
    BEGIN
        -- :NEW 는 새로 들어온 데이터를 의미
        INSERT INTO emp02 VALUES(:NEW.empno, :NEW.ename, :NEW.job);
    END;
/

-- 데이터 삽입
INSERT INTO emp01 VALUES(1, 'kim', '개발자');
INSERT INTO emp01 VALUES(2, 'lee', '디자이너');
INSERT INTO emp01 VALUES(3, 'park', '기획자');
-- 트리거 결과 확인
SELECT * FROM emp01;
SELECT * FROM emp02;



-- UPDATE TRIGGER
-- emp01이 수정되면 emp02도 수정된다.
CREATE OR REPLACE TRIGGER tri_update
    AFTER UPDATE ON emp01
    FOR EACH ROW
    BEGIN
        UPDATE emp02 SET ename = :NEW.ename, job = :NEW.job WHERE empno = :NEW.empno;
    END;
/

-- 데이터 변경
UPDATE emp01 SET ename = 'oh', job = '개발자' WHERE empno = 2;

-- 트리거 결과 확인
SELECT * FROM emp01;
SELECT * FROM emp02;




-- DELETE TRIGGER
-- emp01이 삭제되면 emp02도 삭제된다.
CREATE OR REPLACE TRIGGER tri_del
    AFTER DELETE ON emp01
    FOR EACH ROW
    BEGIN
        -- OLD는 이전 데이터를 의미하지만 DELETE문에서는 삭제할 자료를 의미
        DELETE FROM emp02 WHERE empno = :OLD.empno;
    END;
/

-- 데이터 삭제
DELETE FROM emp01 WHERE empno = 2;

-- 트리거 결과 확인
SELECT * FROM emp01;
SELECT * FROM emp02;


-- 트리거 조회
SELECT * FROM USER_TRIGGERS;
-- 트리거 소스 확인
SELECT * FROM USER_SOURCE WHERE type = 'TRIGGER' AND name = 'TRI_INSERT';
-- 트리거 삭제
DROP TRIGGER tri_insert;


이와같이 데이터의 변경을 감지 할 수 있으므로 백업같은 작업에 잘 사용한다.


+ Recent posts