AB Kinoteatr SQL

создаем таблицу и добавляем данные

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

Создаем процедуру для добавления type фильмов

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;
EXEC filmTypeLisamine 4, '10D', 'super smurfid'

Создаем процедуру для удаления type фильмов

EXEC filmTypeKustuta 4;
CREATE PROCEDURE filmTypeKustuta
@kustutumisID int
AS
BEGIN
SELECT * FROM filmtype;
DELETE FROM filmtype
WHERE filmtypeID = @kustutumisID;
SELECT * FROM filmtype;
END

EXEC filmTypeKustuta

Создаем процендуру для поиска по первой букве

CREATE PROCEDURE otsing1taht
@taht CHAR(1)
AS 
BEGIN
SELECT filmtype, kirjeldus
from filmtype
WHERE filmtype LIKE concat(@taht, '%');
END

EXEC otsing1taht 2

Создаем процендуру для обновления Фильм type’ов

CREATE PROCEDURE filmTypeUendamine
@id int, 
@uusfilmType varchar (25)
AS
BEGIN
UPDATE filmtype 
SET filmtype = @uusfilmType
WHERE filmtypeID = @id; 
SELECT * FROM filmtype;
END

Процедура для добавления жанра

CREATE PROCEDURE ZanrLisamine
@uuszanrNimi VARCHAR (50),
@uusZanrKirjeldus VARCHAR (250)
AS
BEGIN
INSERT INTO zanr (zanrNimi, zanrKirjeldus)
VALUES (@uuszanrNimi, @uuszanrKirjeldus);
SELECT * FROM zanr;
END;

Процедура для удаления жанра

exec ZanrKustutamine 1;
CREATE PROCEDURE ZanrKustutamine
@kustutamisID int
AS
BEGIN
SELECT * FROM zanr;
DELETE FROM zanr
WHERE zanrID = @kustutamisID;
SELECT * FROM zanr;
END;

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

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

CREATE TABLE test(
testID int);
SELECT * FROM test
exec tablekustuta test;
select * from test;

——————————————————————————————

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='kino', @veerunimi='test', @tyyp='int';
--удаление столбца
EXEC muudatus @tegevus='drop', @tabelinimi='kino', @veerunimi='test';

Итоговое количество моих процедур