본문 바로가기

SQL

[PL/SQL] DML(INSERT, UPDATE ,DELETE ) 연습

 

연습 테이블 

INSERT

CREATE OR REPLACE PROCEDURE ADDPLEMP( 
     P_EMPNO IN PLEMP.EMPNO%TYPE,
     P_ENAME IN PLEMP.ENAME%TYPE,
     P_JOB IN PLEMP.JOB%TYPE)
     IS
     BEGIN
     INSERT INTO PLEMP(EMPNO,ENAME,JOB) VALUES(P_EMPNO,P_ENAME,P_JOB);
      COMMIT;
    DBMS_OUTPUT.PUT_LINE(P_JOB||'부서 INSERT SUCCESS');
    END ADDPLEMP;
  • CREATE OR REPLACE PROCEDURE [프로시저 이름] : 프로시저 생성
  • ( P_EMPNO IN PLEMP.EMPNO%TYPE, ....) : 프로시저내에서 사용할 변수를 선언한다
  • 여기에서는PLEMP 에 있는 EMPNO 를 P_EMPNO로 설정하고 %TYPE 같은 타입으로 설정한다.
  • DBMS_OUTPUT.PUT_LINE(P_JOB||'부서 INSERT SUCCESS') : INSERT가 완료되면 '부서 INSERT SUCCESS' 문구가 뜬다.

프로시저 성공 메세지

EXEC ADDPLEMP(50,'seonzone','SALESMAN');
  • 실제로 넣을 데이터를 입력한다.

seonzone이 추가되었다.

UPDATE

CREATE OR REPLACE PROCEDURE UPDATE_SAL(V_EMPNO IN NUMBER) 
IS
BEGIN
 UPDATE PLEMP
 SET SAL = SAL * 1.5
 WHERE EMPNO = V_EMPNO;
 COMMIT;
END UPDATE_SAL;
  • V_EMPNO IN NUMBER : V_EMPNO 를 숫자타입으로 지정한다.
  • UPDATE PLEMP ... : 일반 SQL문과 같이 UPDATE를 해준다.
  • EMPNO = V_EMPNO : 사원번호와 V_EMPNO 의 번호가 같은것만 SAL * 1.5한다.
EXECUTE UPDATE_SAL(7369);
  • 7369의 사원번호의 연봉을 1.5배 한다.

800이었던 연봉이 업데이트 되었다.

 

DELETE

CREATE OR REPLACE PROCEDURE DELETE_EMP(P_NAME IN PLEMP.ENAME%TYPE)
IS
BEGIN
   DELETE FROM PLEMP
   WHERE P_NAME = ENAME;
   COMMIT;
END DELETE_EMP;
  • DELETE_EMP(P_NAME IN PLEMP.ENAME%TYPE) : P_NAME은 PLEMP.ENAME의 타입과 같게 한다.
  • DELETE FROM PLEMP .... : 일반 SQL문과 같이 DELETE 문을 작성한다.
EXECUTE DELETE_EMP('seonzone');
  • DELETE 할 이름을 넣어준다.

INSERT로 추가했던 사원이름 'seonzone'이 삭제되었다.

'SQL' 카테고리의 다른 글

[PL/SQL] RECORD  (0) 2021.08.06
[PL/SQL]IF, CASE  (0) 2021.08.06
[PL/SQL] 개념, 기본문법  (0) 2021.08.05
[ORACLE]JOIN ( INNER, OUTER) + ANSI  (0) 2021.08.01
[ORACLE]VIEW , 계층구조  (0) 2021.08.01