MapleStory Finger Point Cute Line Smiley Blinking Hello Kitty Angel MapleStory Finger Point

๐Ÿ’Ž DataBase/๐Ÿ’Ž SQL-PL,SQL

หšโ‚Šโœฉโ€งโ‚Š [PL/SQL] ํ”„๋กœ๊ทธ๋žจ SQL ๊ฐœ๋…, ๋ฌธ๋ฒ• หšโ‚Šโœฉโ€งโ‚Š

HYEJU01 2024. 6. 27. 23:40

[PL/SQL ์ด๋ž€?]
Program language SQL ์˜ ์ค„์ž„๋ง๋กœ
์˜ค๋ผํด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ ˆ์ฐจ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค.
์ฟผ๋ฆฌ๋ฌธ์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋™์ž‘์„ ์ผ๊ด„์ฒ˜๋ฆฌ ํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„๋กœ ์“ฐ์ธ๋‹ค.
์ €์žฅ ํ”„๋กœ์‹œ์ €, ํ•จ์ˆ˜, ํŠธ๋ฆฌ๊ฑฐ ๋“ฑ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

(์ ˆ์ฐจํ˜•SQL ์ฝ”๋“œ๋ถ€๋ถ„๋งŒ ์„ ํƒํ•˜์—ฌ F5๋กœ ์ปดํŒŒ์ผํ•ด์„œ ์‹คํ–‰ํ•œ๋‹ค.)

 

 



[์ต๋ช…๋ธ”๋ก]

set serveroutput on; -- ์˜ค๋ผํด์—์„œ ์ถœ๋ ฅ์„ ์‚ฌ์šฉํ•จ

DECLARE
   ๋ณ€์ˆ˜
BEGIN
   ์ฒ˜๋ฆฌํ•  ๋‚ด์šฉ
	 DBMS_OUTPUT.PUT_LINE(์ถœ๋ ฅ๋ฌธ)
END;


declare -- ๋ณ€์ˆ˜์„ ์–ธ๋ถ€
begin -- ๋กœ์ง ์‹œ์ž‘
exception -- ์˜ˆ์™ธ
end -- ๋กœ์ง ์ข…๋ฃŒ
DBMS_OUTPUT.PUT_LINE(์ถœ๋ ฅ๋ฌธ)

 

 


[์—ฐ์‚ฐ์ž]

+, -, /, MOD(), *, ** 

>, >=, <, <=, =, <>, :=

 



[DML๋ฌธ์„ ์ต๋ช…๋ธ”๋ก์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ]

 

DDL๋ฌธ์€ ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅ

์ผ๋ฐ˜์ ์ธSQL๋ฌธ์˜ select์ ˆ์„ ์‚ฌ์šฉ

ํŠน์ดํ•œ ์ ์€ select์ ˆ ์•„๋ž˜์— into ์ ˆ์„ ์‚ฌ์šฉํ•ด ๋ณ€์ˆ˜์— ํ• ๋‹น


employees.first_name %TYPE  (ํƒ€์ž…์„ ๋”ฐ๋ผ๊ฐ€๊ฒ ๋‹ค) : ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ํƒ€์ž…์˜ ์ปฌ๋Ÿผ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ

DECLARE
  v_emp_name employees.first_name%TYPE;
BEGIN
  SELECT first_name
    INTO v_emp_name --๋Œ€์ž…์„ ์˜๋ฏธ
    FROM employees
    WHERE employee_id = 100;

	  DBMS_OUTPUT.PUT_LINE( v_emp_name || ' - ' || v_dep_name);
END;

 

 

 

 


[์กฐ๊ฑด๋ฌธ IF]

-- IF ~ THEN
-- ELSIF ~ THEN
-- ELSE ~ 
-- END IF

DECLARE
    NUM1 NUMBER := 5;
    NUM2 NUMBER := TRUNC(DBMS_RANDOM.VALUE(1, 11)); -- 1~11๋ฏธ๋งŒ ๋žœ๋ค์ˆ˜ ์ €์žฅ
BEGIN
    
    IF NUM1 >= NUM2 THEN
        DBMS_OUTPUT.PUT_LINE(NUM1 || '์ด ํฐ์ˆ˜ ์ž…๋‹ˆ๋‹ค');
    ELSE
        DBMS_OUTPUT.PUT_LINE(NUM2 || '์ด ํฐ์ˆ˜ ์ž…๋‹ˆ๋‹ค');
    END IF;
END;

 



[์กฐ๊ฑด๋ฌธ SWITCH]

-- CASE WHEN ์กฐ๊ฑด THEN
--			WHEN ์กฐ๊ฑด THEN
--			ELSE 
-- END CASE;

DECLARE
    NUM1 NUMBER := 5;
    NUM2 NUMBER := TRUNC(DBMS_RANDOM.VALUE(1, 11)); -- 1~11๋ฏธ๋งŒ ๋žœ๋ค์ˆ˜ ์ €์žฅ
BEGIN

  CASE WHEN NUM1 >= NUM2 THEN
            DBMS_OUTPUT.PUT_LINE(NUM1 || '์ด ํฐ์ˆ˜ ์ž…๋‹ˆ๋‹ค');
       ELSE 
            DBMS_OUTPUT.PUT_LINE(NUM2 || '์ด ํฐ์ˆ˜ ์ž…๋‹ˆ๋‹ค');
  END CASE;

END;

 


[๋ฐ˜๋ณต๋ฌธ WHILE]

DECLARE
   vn_base_num NUMBER := 3;
   v_count     NUMBER := 1;
BEGIN
   
   WHILE  v_count <= 9 -- vn_cnt๊ฐ€ 9๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์„ ๊ฒฝ์šฐ์—๋งŒ ๋ฐ˜๋ณต์ฒ˜๋ฆฌ 
   LOOP
      DBMS_OUTPUT.PUT_LINE (vn_base_num || '*' || i || '= ' || vn_base_num * i);
      v_count := v_count + 1; -- vn_cnt ๊ฐ’์„ 1์”ฉ ์ฆ๊ฐ€
   END LOOP;
END;

 


[๋ฐ˜๋ณต๋ฌธ FOR]

DECLARE
   vn_base_num NUMBER := 3;
BEGIN
   
   FOR i IN 1..9 -- ..์„ ๋‘๊ฐœ์”€
   LOOP
      DBMS_OUTPUT.PUT_LINE (vn_base_num || '*' || i || '= ' || vn_base_num * i);
   END LOOP;
END;

 

 


[ํƒˆ์ถœ๋ฌธ EXIT WHEN ์กฐ๊ฑด , CONTINUE WEHN ์กฐ๊ฑด]