PLSQL Prca s PLSQL vytvor tabuku t 1

PL/SQL

Práca s PL/SQL • • vytvor tabuľku t 1 s atribútmi e, f vytvor dve premenne a, b načítaj z tabuľky hodnoty e, f a v prípade ze e>1 vlož hodnoty opačné f, e CREATE TABLE T 1( e INTEGER, f INTEGER ); DELETE FROM T 1; INSERT INTO T 1 VALUES(1, 3); INSERT INTO T 1 VALUES(2, 4); • E F ---------1 3 2 4 4 2 DECLARE a NUMBER; b NUMBER; • BEGIN SELECT e, f INTO a, b FROM T 1 WHERE e>1; INSERT INTO T 1 VALUES(b, a); • • • END; . run;

Práca s PL/SQL • vytvor dve premenne • pre hodnoty e väčšie ako 2 • ak druha hodnota je rovná 1 napíš opačné hodnoty • v opačnom prípade pridaj ku nim hodnotu 10 • DECLARE a NUMBER; b NUMBER; • BEGIN • • SELECT e, f INTO a, b FROM T 1 WHERE e>2; IF b=1 THEN • E F • --------- • 1 3 • 2 4 • 4 2 • 12 14 INSERT INTO T 1 VALUES(b, a); ELSE INSERT INTO T 1 VALUES(b+10, a+10); END IF; • END; • run;

Využitie jazyka PL/SQL • • • • 1. vytvorte tabulku t 1 s atributami a, b, c, d, kde a - cele cislo b - cele cislo c - znakova premenna pozostavajuca zo 6 znakov d - datova premenna a- primarny kluc b cudzi kluc z tabulky t 2 hodnota a 10 -20 tabulku t 2 s atributami b - cele cislo f - text g - desatinne cislo s intervalu 0. 01 -0. 05 b - primarny kluc zadajte do tabulky t 1 take hodnoty, aby v premennej c bolo aspon 2 x hodnota zzzz • • • CREATE table t 2( b number(2), f VARCHAR(5), g Number(4, 2) check (g between 0. 01 and 0. 50), PRIMARY KEY(b)); • • insert into t 2 values(1, 'asdf', 0. 5); insert into t 2 values(11, 'asdf', 0. 4); • • CREATE table t 1 ( a number(2), b number(2), c VARCHAR(5), d date, PRIMARY KEY(a), FOREIGN KEY (b) REFERENCES t 2(b), check(a between 10 and 20) ); • • insert into t 1 values(11, 1, 'zzz', TO_DATE('10 oct-1960')); insert into t 1 values(12, 11, 'zzz', TO_DATE('01 -jan-2005'));

Využitie jazyka PL/SQL • • 2. zmena hodnoty v tabulke t 1 zmente hodnotu c z hodnoty zzz na asdf ak b > 10 • • update t 1 set c = 'asdf' where b>10; • 3. pridajte do tabulky t 2 stlpce k, l celych cisel • alter table t 2 add k number(2); alter table t 2 add l number(4); • • • 4. pridavanie viac udajov pridajte desat hodnot pre b = 2, 4, 6, . . . hodnoty k= 1. . . 10, l = 1. 4, 9, 16 • declare • i number: =1; • j number; • begin • LOOP • • • j : =i*i; insert into t 2 (b, k, l) values (2*i, i, j); i: =i+1; exit when i>10; END LOOP; end;

Využitie jazyka PL/SQL • • pridajte desat hodnot pre b = 2, 4, 6, . . . hodnoty k= 1. . . 10, l = 1. 4, 9, 16 – x 1 f(x 1) – ---------– 1 1 – 2 4 – 3 9 – 4 16 – 5 25 – 6 36 – 7 49 – 8 64 – 9 81 – 10 100 • • declare i number: =1; j number; begin for i in 1. . 10 LOOP j : =i*i; insert into t 2 (b, k, l) values (2*i, i, j); • • • END LOOP; end; • • • select k"x 1", l"f(x 1)" from t 2 where k>0;

Využitie jazyka PL/SQL • • • Vypíš hodnoty funkcie F(x)=x*x Pre xo= (i. . kk) – – – – – Kde- i počiatočná hodnota x Kk - konečná hodnota x x 1 f(x 1) ---------4 16 5 25 6 36 7 49 8 64 • • declare i number: =&i; kk number: =&kk; j number; • • j : =i*i; insert into t 2 (b, k, l) values (2*i, i, j); i: =i+1; exit when i>kk; END LOOP; end; . run • • • select k"x 1", l"f(x 1)" from t 2 where k>0; begin LOOP

Práca s PL/SQL • do tabulky t 1 vlozte hodoty premennej x a jej y=x*x • pre x y intervalu 5 - 20 E F -----1 3 2 4 4 2 12 14 5 25 6 36 7 49 8 64 9 81 • DECLARE x NUMBER : = 5; • BEGIN – LOOP INSERT INTO T 1 VALUES(x, x*x); x : = x+1; – EXIT WHEN x>20; – END LOOP; • END; • run;
- Slides: 8