DB Kinoteatr SQL server

CREATE TABLE filmtype (
  filmTypeID int NOT NULL primary key,
  filmType varchar(25) NOT NULL,
  kirjeldus text DEFAULT NULL
);
SELECT * FROM filmtype;
INSERT INTO filmtype (filmTypeID, filmType, kirjeldus) VALUES
(1, '2D', '2D-arvutigraafika on pildi esitamine digitaalsete kahemõõtmeliste mudelitena, näiteks tasandilise geomeetria ja teksti abil.'),
(2, '3D', '3D-arvutigraafika on pildi esitamine digitaalsete kolmemõõtmeliste mudelitena, näiteks ruumilise geomeetria abil.\r\n\r\n3D-mudel on kolmemõõtmelise objekti matemaatiline esitus. Mudelit saab kuvada kahemõõtmelisena 3D-renderdamise kaudu või kasutada mittevisuaalse arvutisimulatsiooni või arvutuste jaoks. On olemas ka 3D-arvutigraafika tarkvara.'),
(3, '4D', '3D-arvutigraafika lisaeffektidega.');

1.Andmete lisamine tabelisse FilmType (FilmType ja Kirjeldus sisestab kasutaja kui käivatab protseduuri)

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';

2. Kustutamis protseduur, kustutab filmtüüp tema ID järgi (kasutaja sisestab ID ja siis filmtüüp kustutakse)

CREATE PROCEDURE filmTypeKustutamine
@kustutamisID int
AS
BEGIN
SELECT * FROM filmtype;
DELETE FROM filmtype
WHERE filmtypeID=@kustutamisID;
SELECT * FROM filmtype;
END;
--kontroll
EXEC filmTypeKustutamine 4;

3. Otsing sisestatud tähte järgi(kasutaja sisestab filmitüüpi Esimene täht ja siis näidatakse kõik filmitüüpid)

CREATE PROCEDURE Otsing1taht
@taht CHAR(1)
AS
BEGIN
SELECT filmtype, kirjeldus
FROM filmtype
WHERE filmtype like concat(@taht, '%');
END
--kontroll
EXEC Otsing1taht 2

4. Uuendamis protseduur. Kasutaja sisestab uuendatud filmitüübi sisestatud id järgi.

CREATE PROCEDURE filmTypeUuendamine
@id int,
@uusFilmType varchar(100)
AS
BEGIN
UPDATE filmtype
SET filmType=@uusFilmType
WHERE filmTypeID=@id;
SELECT * FROM filmtype;
END
--kontroll
EXEC filmTypeUuendamine 1, '2D'

ZanrLisamine

CREATE PROCEDURE ZanrLisamine
@id int,
@type varchar(100),
@kirjeldus TEXT
AS
BEGIN
INSERT INTO zanr (zanrID, zanrNimi, zanrKirjeldus)
VALUES (@id, @type, @kirjeldus);
SELECT * FROM zanr;
END;
--kontroll
EXEC filmTypeLisamine 4, 'Dorama', 'super sleza mama';

ZanrKustutamine

CREATE PROCEDURE ZanrKustutamine
@kustutamisID int
AS
BEGIN
SELECT * FROM zanr;
DELETE FROM zanr
WHERE zanrID=@kustutamisID;
SELECT * FROM zanr;
END;
--kontroll
EXEC ZanrKustutamine 4;

tablekustuta

CREATE PROCEDURE tablekustuta
@tableKustutamine varchar (100)
AS
BEGIN
declare @STMT as varchar(max)
SET @STMT=CONCAT('DROP TABLE ', @tableKustutamine);
END;
PRINT @STMT;
BEGIN
EXEC(@STMT);
END
--kontroll
--придворитель советую создать таблицу тест!!!!
EXEC tablekustuta test

zanrNimiUuendamine

CREATE PROCEDURE zanrNimiUuendamine
@id int,
@uusZanrNimi varchar(100)
AS
BEGIN
UPDATE zanr
SET zanrNimi=@uusZanrNimi
WHERE zanrID=@id;
SELECT * FROM zanr;
END
--kontroll
EXEC zanrNimiUuendamine 1, 'test'

TabeliZanrStruktuuriMuutmine

CREATE PROCEDURE TabeliZanrStruktuuriMuutmine
@tegevus varchar(10),
@tabelinimi varchar(25),
@veerunimi varchar(25),
@tyyp varchar(25) =null
AS
BEGIN
DECLARE @STMT as varchar(max)
set @STMT=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 @STMT;
begin 
EXEC (@STMT);
END
END;
--добавление столбца
EXEC TabeliZanrStruktuuriMuutmine @tegevus='add', @tabelinimi='zanr', @veerunimi='test', @tyyp='int';
SELECT * FROM zanr;