10/19 24-1 [PL/SQL] IF문
IF문
자바랑 비슷 하지만 문법도 조금씩 다르니 잘 확인하자!!
IF문 기본형식 (기본틀 만들어 놓고 시작하는게 편함!)
DECLARE --- 변수 선언 부! 오라클은 특이한게 변수 선언 부가 따로 있어서 거기서 변수 선언 해야 함! BEGIN 에서 시작하면 에러난다~~
BEGIN -----요기 안에서 명령문을 작성 해야 함
IF 조건 THEN
참이면 실행 할 명령문들 ;
ELSE
아니면 다른 거 실행 할 명령문2 ;
END IF; ---또 특이한게 오라클은 IF 문 쓰면 마지막에 요걸 꼭 써줘야 한다! ; 이거도 잊지 말고!!
END;
/
[홀수/짝수 구분하기]
우선 시작 전
SET SERVEROUT ON 선언 하고 시작!!
VAR RT VARCHAR2(10)
SET SERVEROUT ON
DECLARE
num NUMBER := 10;
BEGIN
IF MOD(NUM,2) = 0 THEN --- 오라클은 %연산이 없기 때문에 함수 MOD(,)를 써야한다!!
:RT :='EVEN';
DBMS_OUTPUT.PUT_LINE('짝수');
ELSE
:RT :='ODD';
DBMS_OUTPUT.PUT_LINE('홀수');
END IF;
END;
/
PRINT RT -- 출력
[홀짝 구분 -- 사용자 입력 받아보기]
ACCEPT NUM PROMPT '숫자를 입력하세요?' ---> 요거 자바에서 SACANNER 같은거! 사용자 입력 받기위한 명령어!
DECLARE
num NUMBER := &num ;
---> 변수 num 이랑 구분하기 위해서 사용자받은거는 &를 써서 구분! 자바에서 this와 같은 역할이다
BEGIN
if mod(num,2) = 0 then
DBMS_OUTPUT.PUT_LINE('Input Number is'|| num);
else
DBMS_OUTPUT.PUT_LINE(num ||"is EVEN");
end if ;
DBMS_OUTPUT.PUT_LINE(num ||"is ODD");
END;
/
[국영수 점수 받아서 총점과 평균 학점 구하기 ]
ACCEPT kor PROMPT '국어 점수 입력?'
ACCEPT eng PROMPT '영어 점수 입력?'
ACCEPT math PROMPT '수학 점수 입력?'
DECLARE
kor NUMBER(3) := &kor;
eng NUMBER(3) := ŋ
math NUMBER(3); 문제)math는 실행부에서 초기화 하라
total NUMBER(3); 문제) 총합을 저장하는 변수와 평균을 저장하는 변수 선언
avgg NUMBER(5,2);
BEGIN
문제) 90점 이상이면 a학점 출력.... b,c,d,f 학점까지 출력!
math := &math ;
total := kor+eng+math;
avgg := total/3;
if avgg >= 90 then
DBMS_output.put_line('A score');
elsif avgg >= 80 then
DBMS_output.put_line('B score');
elsif avgg >= 70 then
DBMS_output.put_line('C score');
elsif avgg >= 60 then
DBMS_output.put_line('D score');
else
DBMS_output.put_line('F score');
end if;
END;
/
하기전에!! 아 이거 쓰임을 이제 제대로 깨달았으!!
오라클에서도 걍 연산같은거 출력 해보고 싶을 때
SELECT 100/3 from dual; --- 이렇게 활용 가능!!!!!
[if문으로 배수/공배수 구분하기]
ACCEPT num PROMPT '숫자를 입력하세요?'
BEGIN
if mod(&num,15)=0 then
DBMS_output.put_line('3과5의 공배수');
elsif mod(&num,5)=0 then
DBMS_output.put_line('5의배수');
elsif mod(&num,3)=0 then
DBMS_output.put_line('3의배수');
elsif
DBMS_output.put_line('3과5의 배수가 아니다');
end if ;
END;
/