>>>>> DATABÁZE ---------------------------------------------------------- ---- hotové procedury ------------- --------------------- - První procedura ----------------------- delimiter // create procedure Pozdrav() begin select 'Ahoj!'; end// DELIMITER ; >> Volání procedury >> Call call Pozdrav() ------------------------------- -- Druhá -------------------------------- --------- pomocna tabulka CREATE TABLE `studenti` ( `uzivatele_id` int, `jmeno` varchar(60), `prijmeni` varchar(60), `pohlavi` varchar(1), `PLAT` int, `datum_narozeni` date, `mesto` varchar(20), `fakulta` int ); insert into studenti values ('1', 'jana', 'krátka', 'f', '23500', '1954-12-22', 'Brno', '0'); insert into studenti values ('2', 'Jana', 'Nováková', 'F', '42261', '2016-11-11', 'Brno', '1'); insert into studenti values ('3', 'Sophia', 'Santiago', 'F', '20758', '1962-11-16', 'Brno', '8'); insert into studenti values ('4', 'Jarek', 'Benes', 'M', '52483', '2017-01-11', 'Praha', '8'); insert into studenti values ('5', 'Petr', 'Malý', 'M', '10000', '2001-09-23', 'Praha', '8'); ------------- vlastní procedura vsichni studenti - Test funkce DELIMITER // create procedure Ukaz() begin select * from studenti; end// DELIMITER ; ---------------------------------- -- Procedura 3 -- prebírá jeden parametr ---------------------------------- delimiter // create procedure S_M(ZadaneMesto varchar(100)) begin select * from studenti where mesto = ZadaneMesto; end // delimiter ; ---------------------------------- -- Procedura 4 -- více parametrů ---------------------------------- delimiter // create procedure Studenti_ID(od int, do int) begin select * from studenti where uzivatele_id between od and do; end // delimiter ; ---------------------------------- -- Procedura výpočet ---------------------------- delimiter // create procedure Vypocet(in var1 int) begin select var1 + 2 as result; end// delimiter ; ---------------------------------- -- sloupec tridení ----------------------------------- >> Poznámka: Může zlobit :( delimiter $$ create procedure SS_SL(sloupec int) begin select * from studenti ORDER BY sloupec limit 5; end $$ delimiter ; ------------------------------ - Procedura vkládání --------------------------- delimiter $$ create procedure VlozRadek(id int, jmeno varchar(60)) begin insert into studenti (uzivatele_id, jmeno) values (id, jmeno); end $$ delimiter ; >> DU vylepšit o zápis všech údajů pro tabulku studenti -------------------------------------------- - Procedura vkládání/aktualizace -------------------------------------------- delimiter // create procedure Vloz_Aktualizuj (radek int, novejmeno varchar(50)) begin if exists(select * from studenti where uzivatele_id = radek) then update studenti set jmeno = novejmeno where uzivatele_id = radek; else insert into studenti (uzivatele_id, jmeno) values (radek, novejmeno); end if; end // --------------------------------------------------- - Hrátky vnitřini a vnější proměnné --------------------------------------------------- ------ - Proměnné vnější ------ delimiter // create procedure TestFunkce(out var1 varchar(100)) begin set var1="MUNI je super škola!"; end// call TestFunkce(@MUNI); select @MUNI ------ - Proměnné vnitřní ------ delimiter // create procedure Hlaska(inout msg varchar(100)) begin set msg = concat(@msg, " je super škola"); end// select 'MUNI' into @msg; ... select @msg call Hlaska(@msg); ------ - Smazat ------