АБкинотеатр в SQL Server

filmTypeLisamine:

create procedure filmTypeLisamine
@id int,
@type varchar(100),
@kirjeldus text

as
begin
insert into filmtype(filmTypeID, filmType, kirjeldus)
values(@id, @type,@kirjeldus);
select * from filmtype;

end;

-- kontroll

exec filmTypeLisamine 4, '10D', 'Super filmid';


FilmTypeKustutamine

create procedure filmTypeKustuta
@kustutamisID int
as
begin
select * from filmtype;
delete from filmtype
where filmTypeID = @kustutamisID
select * from filmtype;


end;

-- kontroll

exec filmTypeKustuta 4;

Filmi otsing tahtedega:

create procedure filmTypeotsingtaht
@taht char(1)
as
begin
select filmtype, kirjeldus
from filmtype
where filmtype like concat(@taht, '%');
select * from filmtype;


end;

-- kontroll

exec filmTypeotsingtaht '3'

filmi tüüp uuendamis:

create procedure filmTypeUuendamis
@id int,
@uueFilmType varchar(100)
as
begin
select filmtype, kirjeldus
from filmtype;
update filmtype
set filmtype = @uueFilmType
where filmTypeID = @id;
select * from filmtype;


end;

-- kontroll

exec filmTypeUuendamis 1, '2D';


Loo uus tabeli ‘Zanr’:


--
-- Структура таблицы `zanr`
--

CREATE TABLE zanr (
  zanrID int NOT NULL primary key,
  zanrNimi varchar(25) NOT NULL,
  zanrKirjeldus text NOT NULL
);

select * from zanr;

--
-- Дамп данных таблицы `zanr`
--

INSERT INTO zanr (zanrID, zanrNimi, zanrKirjeldus) 
VALUES
(1, 'Draama', 'Tõsise teema, sisu, ainestiku ja süžeega, realistlikus elu- ja tegevuskeskkonnas ning usutavates elusituatsioonides tegutsevate realistlike tegelastega lavastatud filmiteos, mis on rajatud filmikangelaste (aktiivsele) suhtlemisele, tegevusele, karakterite muutumisele ja arengule. Tavaliselt ei kasutata filmiefekte, komöödia- või märulielemente. Väga levinud filmižanr, mille peamised alaliigid on melodraama, ajalooline (eepiline) draama, romantiline draama ja elulooline film, mida on käesolevas loendis käsitletud eraldiseisvate kategooriatena.'),
(2, 'Fantaasia', 'Žanr, milles toimub või kujundatud midagi ebareaalne elus.'),
(3, 'Animatsioon', 'Teemad on enamasti mõeldud lastele ja käsitlus on lastepärane ja lastele lihtsalt arusaadav ja mõistetav. Filmi kangelased on tavaliselt lapsed, nende vanemad (kes vahel asuvad kaugel või on tegu), loomad, ka kurjad tegelased, kellest tuleneb oht.'),
(4, 'Komöödia', 'Komöödiafilm on enamasti kergema sisu ja tahtlikult meelelahutusliku, publikut lõbustava, lõõgastava ja naerma ajava eesmärgiga tehtud filmiteos rõhutatult, liialdatult ja ülemäärase situatsioonilahenduse, keelekasutuse, tegevuse, suhete ja karakteritega.'),
(5, 'Krimi', 'Krimi- ja gangsterfilmide tegevus hargneb kriminaalkurjategijate, kuritegelike jõukude ja sündikaatide, enamasti pangaröövlite, allmaailma tegelaste ja pättide ümber, kes tegutsevad väljaspool seadust, tegelevad narkootikumidega, võitlevad omavahel, varastavad ja tapavad. Film keskendub enamasti kurjategijate mõttemaailmale, ambitsioonidele, suurusehullustusele ja kompleksidele, mis lõpuks viivad nende hukkumiseni. Sageli liigitatakse need krimifilme sarnasuse tõttu ka film noir või detektiiv/uurijafilmideks. Sellesse kategooriasse peaks paigutama ka filmid sarimõrvaritest. Sageli soovitatakse kasutada (kui võimalik) spetsiifilisemad žanrimääratlusi: röövlifilm, film noir, gangsterifilm, uurijafilm, politseifilm või põnevusfilm '),
(6, 'Müsteerium', 'Detektiiv/uurijafilmi peetakse tavaliselt kriminaalfilmi (krimifilmi), film noir või põnevusfilmi (põneviku) alaliigiks. Film põhineb enamasti lahendamata mõrva või kadumise loo uurimisele, filmi peategelaseks on tugeva ja omapärase karakteri ja tegutsemisviisiga detektiiv-uurija, kes tegutseb metoodiliselt ja sihikindlalt kurjategija või mõrvari tabamiseks.'),
(7, 'Õudus', 'Filmilavastused, mis tegelevad elu varjatud, tundmatu, keelatud, üleloomuliku või seletamatu poolega, kutsuvad esile varjatud alateadvuslikku pinget, kartust, hirmutunnet või õudust, millel on reeglina hirmus või šokeeriv lõpplahendus, kuid mis samal ajal köidavad vaatajat ja lahutavad meelt siduva vaatamispinge tekitamise, kaasaelamise ja tugeva läbielamise (katarsise) kaudu. Filmide stilistika on mitmekesine, ulatudes õudusfilmide klassikast (Nosferatu) kuni arvutites loodud üleloomulike lugudeni. Õudusfilmides tegutsevad kummitused, vaimud, libahundid, zombid, vampiirid, saatanad, monstrumid.   Nüüdisajal on õudusfilmi žanr sageli kombineeritud ulmefilmiga, kus monstrumeid sünnitab tehnoloogiline viga, väärkäsitlus, võimu-, raha- või kättemaksiha, korruptsioon või Maad ohustavad tulnukad. Õudusfilmides võib leida sarnaseid elemente muinasjuttfilmide ja üleloomulikele nähtustele rajatud filmidega. Õudusfilmidel on mitmeid alaliike: filmid lõikujatest, sarimõrvaritest, noorteõudukad, satanismifilmid, Dracula, Frankenstein jm. Vajadusel tuleks kasutada lisamääranguid (sagedasemad Ulmefilm, Üleloomulik film).         '),
(8, 'Thriller', 'Põnevusfilmid on enamasti žanrihübriidid – esineb märulipõnevik (Action-Thriller), krimipõnevik (Crime-Caper-Thriller), vesternipõnevik (Western-Thriller), film noir põnevik, isegi romantilise komöödia põnevik (Romantic comedy-Thriller). Põnevikud on lähedalt seotud õudusfilmižanriga. Põnevikud haaravad sellega, et kutsuvad esile intensiivse erutuse, pakuvad põnevust ja kaasaelamisvõimalust, tekitavad rahutut ootust ja närvesöövat pinget. Põnevikud on sageli seotud krimiteemaga, ent põhirõhk ei ole detektiividel, gangsteritel, röövlitel, isegi krimiaktil mitte. Selle asemel fokuseerub narratiiv põnevusel, mis tuleneb sellest, et indiviid või grupp tegelasi on ohtlikkus olukorras, millest pääsemine sõltub juhuslikust saatuse pöördest. Sageli on filmiteemaks poliitiline vandenõu, terrorism, süütu süüdistatava põgenemine, mõrvani viiv armukolmnurk, psüühikahäiretega tegelased.'),
(9, 'Seiklus', 'Enamasti köitvad filmilavastused eksootilistes paikades, seotud uue kogemuse ja tundmatu avastamisega, sageli sarnane märuližanriga. Tegutsevad uljad ja julged inimesed, tegemist võib olla eepilistele ja ajaloolistele filmidele omaste lahendustega (kus kangelased on sageli julged, altruistlikud, patriootilised inimesed, kes tegutsevad oma ideaalide nimel), kadunud kontinentide otsimise, džungli- ja kõrbefilmidega, aaretejahiga, katastroofide, otsingute ja avastamisega, võitlusega vabaduse eest ja vallutajate vastu, püüdega aidata taastada õiglust ja mõistlikku ühiskonnakorraldust jms.   LOC žanrinimistu: seotud sisu- ja žanrikategooriad: seiklusfilm, antiikmaailma film, loomafilm, lennundusaineline film, röövlifilm, krimifilm, katastrooffilm, spioonifilm, muinasjuttfilm, gangsterifilm, džunglifilm, võitluskunstide film, uurijafilm, politseifilm, eelajalooline film, vanglafilm, ulmefilm, laulev kauboi, spordifilm, ellujäämise film, õudusfilm, sõjafilm, vestern. '),
(10, 'Action', 'Aktiivse, enamasti katkematu tegevusega, paljude kaskadöörinippidega filmid, tagaajamise ja jälitamisega, võitluse, päästeaktsioonide, lahingute, põgenemiste, kriiside ja katastroofidega (üleujutused, plahvatused, loodusõnnetused), võitluskunste kasutavad, seikluslikud, köitva rütmi ja tempoga ning vastuoluliste positiivsete kangelastega, kes võitlevad halbade vastu. Loodud ennekõike vaataja köitmise ja meelelahutuse eesmärgil. ');

Tee uue procedure koos zanr lisamine:

create procedure zanrLisamine
@id int,
@zanrnimi varchar(50),
@zanrKirjeldus text
as
begin
insert into zanr(zanrID, zanrNimi, zanrKirjeldus)
values(@id, @zanrnimi, @zanrKirjeldus);
select * from zanr;


end;
-- kontroll

exec zanrLisamine 11, 'Triller', 'Triller ehk põnevik on kirjandus- ja filmižanr. Sel on mitmeid alamžanre. Erinevus põnevike ja trillerite vahel tuleneb teoste sündmuste vormist ja stiilist';


Protseduur žanritabelis kirjete kustutamiseks sisestatud id abil

create procedure zanrKustutamine
@kustutamisID int

as
begin
select * from zanr;
delete from zanr
where zanrID = @kustutamisID
select * from zanr;


end;

Teine protseduur ‘ZanrUuendamis’, kus uuenda zanr nimi

create procedure zanrUuendamis
@id int,
@uueZanrNimi varchar(20)
as
begin
select zanrNimi, zanrKirjeldus
from zanr;
update zanr
set zanrNimi = @uueZanrNimi
where zanrID = @id;
select * from zanr;

END;



-- kontroll

exec zanrUuendamis 10, 'Horror';

Teeme protseduur ‘tabeli kustutamine’

create procedure tabeliKustutamine
@tabeliKustutamine varchar(100)
as
begin
declare @STMT as varchar(max);
set @STMT = concat('drop table ', @tabeliKustutamine);
end;
print @STMT;
BEGIN
EXEC(@STMT);
END

teeme tabeli test:

create table test(
testID int);

kustuta tabeli:

exec tabeliKustutamine test;

На 4

Процедура на добавление столбца и его удаления

CREATE PROCEDURE muudatus
@tegevus varchar(10),
@tabelinimi varchar(25),
@veerunimi varchar(25),
@tyyp varchar(25) =null
AS
BEGIN
DECLARE @sqltegevus as varchar(max)
set @sqltegevus=case 
when @tegevus='add' then concat('ALTER TABLE ', 
@tabelinimi, ' ADD ', @veerunimi, ' ', @tyyp)
when @tegevus='drop' then concat('ALTER TABLE ', 
@tabelinimi, ' DROP COLUMN ', @veerunimi)
END;
print @sqltegevus;
begin 
EXEC (@sqltegevus);
END
END;
--добавление столбца
EXEC muudatus @tegevus='add', @tabelinimi='zanr', @veerunimi='test', @tyyp='int';
@veerunimi='test';


Удаление столбца:

--удаление столбца
EXEC muudatus @tegevus='drop', @tabelinimi='zanr',