-- protseduur mis lisab INSERT andmeid tabelisse brands
CREATE PROCEDURE lisaBrand
@brand_nimi varchar(30)
as
BEGIN
INSERT INTO brands (brand_name) VALUES (@brand_nimi);
SELECT * from brands;
END;
-- protseduuri kutse
EXEC lisaBrand 'Audi';

-- protseduur mis kustutab (DELETE) tabelist id järgi
CREATE PROCEDURE kustutaBrand
@id int
AS
BEGIN
SELECT * FROM BRANDS;
DELETE FROM brands WHERE brand_id=@id;
SELECT * FROM BRANDS;
END;
-- protseduuri kutse
EXEC kustutaBrand 6;

-- protseduur mis otsib 1 tähe järgi brandinimed
CREATE PROCEDURE otsingiTathe
@taht char(1)
AS
BEGIN
SELECT * FROM brands WHERE brand_name LIKE @taht+'%';
END;
-- protseduuri kutse
EXEC otsingiTathe 'A';

-- protseduur mis uuendab (UPDATE) brandinimi id järgi
CREATE PROCEDURE uuendaBrand
@id int,
@uus_brandNimi varchar(30)
AS
BEGIN
SELECT * FROM brands;
UPDATE brands SET brand_name=@uus_brandNimi
WHERE brand_id=@id;
SELECT * FROM brands;
END;
-- protseduuri kutse
EXEC uuendaBrand 2, 'Abibas';

Andmebaas „Kinoteatr“
Selles ülesandes lõin ja testisin SQL salvestatud protseduure andmebaasis Kinoteater (kinoteaterlaus) kasutades phpMyAdmin keskkonda (localhost).

Näidatud järgmised protseduurid:
- INSERT – uue filmi lisamine tabelisse
film - DELETE – kirje kustutamine tabelist
zanr - DROP TABLE – tabeli kustutamine nime alusel
- UPDATE – andmete uuendamine tabelis
rezisoor - ALTER TABLE – tabeli struktuuri muutmine
- Enda loodud protseduur – filmide kuvamine pikkuse alusel
Kõik protseduurid, millest õpetaja rääkis tunnis või videos:


- Protseduur andmete lisamiseks (
INSERT) suvalisse tabelisse andmebaasis kino.

DELIMITER //
CREATE PROCEDURE lisaFilm(
IN nimetus VARCHAR(25),
IN zanr INT,
IN keel INT,
IN pikkus INT,
IN rezisor INT,
IN filmituup INT,
IN reklaam TEXT
)
BEGIN
INSERT INTO film(filmNimetus, zanrID, keelID, pikkus, rezisorID, filmtypeID, reklaam)
VALUES(nimetus, zanr, keel, pikkus, rezisor, filmituup, reklaam);
END //
DELIMITER ;
- Protseduur kirjete kustutamiseks tabelist
žanrsisestatudidalusel.

DELIMITER //
CREATE PROCEDURE kustutaZanr(IN id INT)
BEGIN
DELETE FROM zanr
WHERE zanrID = id;
END //
DELIMITER ;
- Protseduur tabeli kustutamiseks sisestatud nime alusel (tabel ei tohi sisaldada võõrvõtit / secondary key).

DELIMITER //
CREATE PROCEDURE kustutaTabel(IN tabeli_nimi VARCHAR(50))
BEGIN
SET @sql = CONCAT('DROP TABLE ', tabeli_nimi);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END //
DELIMITER ;
- üks protseduur andmete uuendamiseks (
UPDATE) tabelisrežissöör;

DELIMITER //
CREATE PROCEDURE uuendaRezisoor(
IN id INT,
IN eesnimi VARCHAR(25),
IN perenimi VARCHAR(25)
)
BEGIN
UPDATE rezisoor
SET
eesnimi = eesnimi,
perenimi = perenimi
WHERE rezisoorID = id;
END //
DELIMITER ;
- üks protseduur tabeli struktuuri muutmiseks (
ALTER) tabelisrežissöör.

DELIMITER //
CREATE PROCEDURE lisaVeerg()
BEGIN
ALTER TABLE rezisoor
ADD synniaasta INT;
END //
DELIMITER ;
