SQL protseduurid. Videotund ja ülesanne.

Kino andmebaasi ja režissööritabelite loomine

Tabeli Loomine

create table rezisoor(
rezisoorID int,
eesnimi char(20),
perekonnanimi char(20),
synniaasta int
);

Tabeli täitmine

insert into rezisoor(rezisoorID,synniaasta,eesnimi,perekonnanimi)
insert into rezisoor(rezisoorID,synniaasta,eesnimi,perekonnanimi)
values(1,2006,'Maksim','Dotskin');

insert into rezisoor(rezisoorID,synniaasta,eesnimi,perekonnanimi)
values(2,2000,'Artur','Reyh');

insert into rezisoor(rezisoorID,synniaasta,eesnimi,perekonnanimi)
values(3,1997,'Artem','Lo');

insert into rezisoor(rezisoorID,synniaasta,eesnimi,perekonnanimi)
values(4,1987,'Farid','Ivanov');

insert into rezisoor(rezisoorID,synniaasta,eesnimi,perekonnanimi)
values(5,2008,'Leon','Kamnerov');

Proovi protseduur

DELIMITER //#разделитель
create PROCEDURE tervist()#создание процедуры
LANGUAGE SQL#задаем язык
DETERMINISTIC
comment 'A Maksim procedure'#коментарий
BEGIN#начало процедуры
	select 'Maksim Dotskin';#действия процедуры
end //#конец

Protseduuri kutse

call tervist()


Esimene protseduur

See protseduur küsib kasutajalt direktori sünniaastat, mille järel tagastatakse need direktorid, kes on sündinud parast sisestatud aastat.

delimiter //

CREATE PROCEDURE get_vanus(aasta_val int)
BEGIN
    select eesnimi, synniaasta
    from rezisoor
    where synniaasta > aasta_val;
end //

Teine protseduur

Protseduuri käigus küsitakse režissööri ID-d ja pärast protseduuri sisestamist antakse välja, mis tüüpi režissöör filme tegi

Uus tabel, kus on dilmid ja nende rezisooride_ID

BEGIN
DECLARE today timestamp default CURRENT_DATE;
select today,f.film_type, r.rezisoorID
from rezisoori_film f
inner join rezisoor r on f.rezisoorID=r.rezisoorID
and r.rezisoorID=ID;
end

Protseduur insert:

Uue direktori sisestamine direktorite tabelisse

Näidis:

Delete protseduur:

Eemaldab andmed filmitabelist filmi ID järgi

Näidis:

Leave a Reply

Sinu e-postiaadressi ei avaldata. Nõutavad väljad on tähistatud *-ga