AB Kinoteater SQL Server

PROTSEDUURID :

  1. Andmete lisamine tabelisse FilmType (Filmtype ja kirjaldus sisestab kasutaja kui käivitab protseduuri)
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.');

Tulemus :

2. 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 film';

Tulemus :

3. FilmTypeKustuta

CREATE PROCEDURE FilmTypeKustuta
@kustutamisID int
AS
BEGIN
SELECT * FROM filmtype;
DELETE FROM filmtype
WHERE filmtypeID = @kustutamisID;
SELECT * FROM filmtype;
END;

--kontroll

EXEC FilmTypeKustuta 4

Tulemus :

4. otsing1taht

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

--kontroll

EXEC otsing1taht 2

Tulemus :

5. FilmTypeUendamine

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

--kontroll

EXEC FilmTypeUendamine 1, '2D'

Tulemus :


Iseseisev töö

1. FilmTypeLisamineRezisoor (добавление данных в любую произвольную таблицу из БД кинотеатр)

CREATE PROCEDURE FilmTypeLisamineRezisoor
@id int, 
@nimi varchar(100), 
@perenimi varchar(100) 
AS
BEGIN
INSERT INTO rezisoor (rezisoorID, eesnimi, perenimi)
VALUES (@id, @nimi, @perenimi);
SELECT * FROM rezisoor; 
END;

--kontroll
EXEC FilmTypeLisamineRezisoor 4, 'Valeria', 'Allik';

Tulemus :

2. zanrKustuta (удаление записей в таблице žanr по введенному id)

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

--kontroll

EXEC zanrKustuta 4

Tulemus :

3. удаление таблицы

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

------------
CREATE TABLE test(
testID int);
select * from test;
exec TableKustuta test;
select * from test;

4. изменение (ALTER) таблицы режисер

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;
--dobavlenie stolbca
EXEC muudatus @tegevus='add', @tabelinimi='...',@veerunimi='test', @tyyp='int';
SELECT * FROM rezisoor
-- udalenie stolbca
EXEC muudatus @tegevus='drop', @tabelinimi='...',@veerunimi='test';

Comments

Lisa kommentaar

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