상세 컨텐츠

본문 제목

PL/SQL 기본 문법 (반복문 LOOP, WHILE, FOR / 조건문 IF, CASE )

DataBase/Oracle

by H_Develop 2022. 6. 14. 08:46

본문

선언적인 SQL 언어와는 달리, SQL을 프로그래밍해서 처리하는 기법.

 

set serveroutput on;

begin
 dbms_output.put_line('Hello world');
end;
/

Hello world
PL/SQL 처리가 정상적으로 완료되었습니다.

set serveroutput on;   // 화면에 출력되게 해준다는 뜻.

declare
l_message varchar2(100);
begin
 l_message := 'Hello world';
dbms_output.put_line(l_message);
end;
/

Hello world
PL/SQL 처리가 정상적으로 완료되었습니다.

 

1. 상수 / 변수

  + , - , * , / , **(제곱) , = ,< , > , <= , >= , <> , != , ~= , ^= , IS NULL

 ( !=와 <>, ^= 모두 NOT EQUAL을 의미, 어느 DB를 사용하더라도 <>는 똑같이 적용 가능, 가급적 <> 사용 )

if number >= 0 && number <= 10 {  
}
if 0...10 ~= number {  
}

// ~= 연산자

if 200..<300 ~= response.statusCode {
}
// 200이상 300미만

https://eunjin3786.tistory.com/44

 

 선언

// 변수 선언
변수_명 데이터타입 : = 초기값;
EX_NUM NUMBER := 1;   // ':=' 는 같다라는 뜻.
EX_STR VARCHAR2(10) := 'STR1';

// 상수 선언
상수_명 CONSTANT 데이터타입 : = 상수값;
EX_NUM CONSTANT NUMBER := 1;

DECLARE
EX_NUM CONSTANT NUMBER := 10;  // 상수 선언
EX_STR VARCHAR2(10) // 변수 선언
BEGIN
 EX_STR := 'EXAMPLE'; // 변수 초기값 설정
 DBMS_OUTPUT.PUT_LINE(EX_NUM); // 상수 출력
 DBMS_OUTPUT.PUT_LINE(EX_STR); // 변수 출력
END;

DECLARE
VN_NUM NUMBER := 1;
VN_NUM2 NUMBER := 2;
BEGIN
 DBMS_OUTPUT.PUT_LINE(VN_NUM + VN_NUM2);
END;

2. 반복 LOOP, WHILE, FOR / 조건 IF, CASE 

// LOOP
DECLARE
NUM1 NUMBER := 1;
BEGIN
 LOOP
  DBMS_OUTPUT.PUT_LINE(NUM1); // 출력
  NUM1 := NUM1+1;
 EXIT WHEN NUM1 > 10; // NUM1이 10보다 크면 LOOP 종료
 END LOOP;
END;

// WHILE
DECLARE
NUM1 NUMBER := 1;
BEGIN
 WHILE(NUM1<10) // NUM1이 10보다 작을 때, LOOP 실행
  LOOP
   DBMS_OUTPUT.PUT_LINE(NUM1); // 출력
   NUM1 := NUM1 + 1;
  END LOOP;
END; 

// FOR
BEGIN
 FOR I IN 1..9
  LOOP
  DBMS_OUTPUT.PUT_LINE('방가방가'); // 출력
  END LOOP;
END

// IF
DECLARE
SCORE NUMBER := 80;
BEGIN
 IF SCORE >= 90 THEN
  DBMS_OUTPUT.PUT_LINE('A');
 ELSIF SCORE >= 80 THEN
  DBMS_OUTPUT.PUT_LINE('B');
 ELSE
  DBMS_OUTPUT.PUT_LINE('C');
 END IF;
END;

// CASE
DECLARE
SCRE NUMBER := 80;
BEGIN
CASE SCORE
 WHEN >= 90 THEN
  DBMS_OUTPUT.PUT_LINE('A');
 WHEN SCORE >= 80 THEN
  DBMS_OUTPUT.PUT_LINE('B');
 ELSE
  DBMS_OUTPUT.PUT_LINE('C');
 END CASE;
END;

● 1~10까지 합을 LOOP 반복문으로 구하라.

 

 

● 1~10까지 FOR 반복문으로 출력하라.

 

 

 

 

 

 

 

 

 

 

 

 

'DataBase > Oracle' 카테고리의 다른 글

SQL developer  (0) 2022.06.14
Procedure (프로시저)  (0) 2022.06.14
TRIGGER  (0) 2022.06.13
CURSOR (커서)  (0) 2022.06.13
Data Dictionary  (0) 2022.06.13

관련글 더보기