Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 4.73 KB | None | 0 0
  1. ------------ VIEW_1 ------------
  2. CREATE VIEW zajecia_dod(imie, nazwisko, tematyka)
  3.     AS
  4.     (
  5.     SELECT n.imie,
  6.            n.nazwisko,
  7.            z.tematyka
  8.     FROM nauczyciele n inner join Zajecia_dodatkowe z
  9.     ON z.id_nauczyciela = n.PESEL
  10.     )
  11. GO
  12.  
  13.  
  14. SELECT *
  15. FROM zajecia_dod;
  16.  
  17.  
  18. DROP VIEW zajecia_dod;
  19.  
  20.  
  21. ------------ VIEW_2 ------------
  22.  
  23. CREATE VIEW IIIa(imie, nazwisko)
  24.     AS
  25.     (
  26.         SELECT imie, nazwisko
  27.         FROM uczniowie
  28.         WHERE id_klasy = 'IIIa'
  29.     )
  30. GO
  31.  
  32.  
  33. SELECT *
  34. FROM IIIa
  35. ORDER BY nazwisko;
  36.  
  37.  
  38. DROP VIEW IIIa;
  39.  
  40.  
  41. ------------ Procedura_1 ------------
  42. CREATE PROCEDURE usuwanie_ocen
  43. @id_o  INT
  44.     AS
  45.     BEGIN
  46.          IF EXISTS (SELECT *
  47.                     FROM Oceny
  48.                     WHERE id_oceny=@id_o)
  49.     DELETE FROM Oceny
  50.     WHERE id_oceny = @id_o
  51.     ELSE
  52.    RAISERROR('Nie ma takiej oceny', 11, 1);
  53. END;
  54. GO
  55.  
  56.  
  57. EXEC usuwanie_ocen 4;
  58.  
  59.  
  60. DROP PROCEDURE usuwanie_ocen;
  61.  
  62. ------------ Procedura_2 ------------
  63. CREATE PROCEDURE nowe_nazwisko
  64. @pesel VARCHAR(11) ,
  65. @nazwisko VARCHAR (20)
  66.     AS
  67.     BEGIN
  68.     IF EXISTS (SELECT *
  69.               FROM Uczniowie
  70.               WHERE @pesel=PESEL)
  71.     UPDATE uczniowie
  72.     SET uczniowie.nazwisko=@nazwisko
  73.     WHERE pesel=@pesel
  74.       ELSE
  75.        RAISERROR('Nie ma takiego dziecka', 11, 1);
  76.        END;
  77. GO
  78.  
  79.  
  80. EXECUTE nowe_nazwisko 95041029264,niezabazdanych;
  81.  
  82.  
  83. DROP PROCEDURE nowe_nazwisko;
  84.  
  85.  
  86. ------------ Procedura_3 ------------
  87.  
  88. CREATE PROCEDURE dodaj_przedmiot
  89.     @id_przedmiotu VARCHAR(5),
  90.     @nazwa_przedmiotu VARCHAR(20),
  91.     @poziom VARCHAR(20)
  92. AS
  93. BEGIN
  94.      IF NOT EXISTS (SELECT *
  95.                     FROM Przedmioty
  96.                     WHERE id_przedmiotu=@id_przedmiotu and @nazwa_przedmiotu=nazwa and @poziom=poziom)
  97.     INSERT INTO Przedmioty VALUES
  98.     (@id_przedmiotu,@nazwa_przedmiotu,@poziom)
  99.     ELSE
  100.         RAISERROR('Taki przedmiot juz istnieje', 11, 1);
  101.  
  102. END;
  103. GO
  104.  
  105.  
  106. EXECUTE dodaj_przedmiot 'His','Historia',1;
  107.  
  108.  
  109. DROP PROCEDURE dodaj_przedmiot;
  110.  
  111.  
  112. ------------ Procedura_4 ------------
  113.  
  114. CREATE OR ALTER PROCEDURE  Rodzice_dzieciakow
  115.     @PESEL VARCHAR(11),
  116.     @imie_r VARCHAR(20) OUTPUT
  117. AS
  118. BEGIN
  119.     IF EXISTS (SELECT *
  120.                FROM Rodzice_dzieci
  121.                WHERE id_dziecka=@PESEL)
  122.        BEGIN
  123.             SELECT *
  124.             FROM Rodzice_dzieci
  125.             Where id_dziecka=@PESEL
  126.        END;
  127.     ELSE
  128.        RAISERROR('Nie ma takiego dziecka', 11, 1);
  129. END;
  130. GO
  131.  
  132.  
  133. BEGIN TRY
  134.     DECLARE  @imie_rodzica VARCHAR(20);
  135.  
  136.     EXEC Rodzice_dzieciakow     -- EXEC jest aliasem dla EXECUTE
  137.        97020345161,
  138.          @imie_rodzica OUTPUT;
  139.  
  140.     PRINT @imie_rodzica;
  141. END TRY
  142. BEGIN CATCH
  143.     SELECT ERROR_NUMBER()  AS 'NUMER BLEDU',
  144.            ERROR_MESSAGE() AS 'KOMUNIKAT';
  145. END CATCH;
  146.  
  147.  
  148. DROP PROCEDURE Rodzice_dzieciakow;
  149.  
  150.  
  151. ------------ Funkcja_1 ------------
  152.  
  153. CREATE FUNCTION ile_nb
  154.     (
  155.     @PESEL VARCHAR(11)
  156.     )
  157.     RETURNS INT
  158.     AS
  159.     BEGIN RETURN(SELECT COUNT(id_ucznia)
  160.                          FROM Frekwencja
  161.                          WHERE id_ucznia=@PESEL and obecnosc='nb')
  162. END;
  163. GO
  164.  
  165.  
  166. SELECT  dbo.ile_nb (97080714219) AS 'liczba niebecnosci';
  167.  
  168. DROP FUNCTION ile_nb;
  169.  
  170. ------------ Funkcja_2 ------------
  171.  
  172. CREATE FUNCTION Ocenki
  173. (
  174.     @PESEL VARCHAR(11)
  175. )
  176.     RETURNS TABLE
  177.     AS
  178.         RETURN   SELECT ocena, id_przedmiotu, data_oc
  179.                  FROM   Oceny
  180.                  WHERE  Oceny.id_ucznia = @PESEL;
  181.  
  182. GO
  183.  
  184.  
  185. Select *
  186. FROM Ocenki (97080714219)
  187. ORDER BY id_przedmiotu, data_oc;
  188.  
  189.  
  190. DROP FUNCTION Ocenki;
  191.  
  192.  
  193. ------------ Trigger_1 ------------
  194.  
  195. CREATE TRIGGER nowa_ocena
  196. ON Oceny
  197. AFTER INSERT  
  198.     AS
  199.     PRINT 'Pracownik ' + user_name() + ' dodal oceny'
  200. GO
  201.  
  202.  
  203. INSERT INTO Oceny(ocena,id_ucznia,id_nauczyciela,id_przedmiotu,typ_oceny,waga,data_oc) VALUES
  204. (4,'97080714219','75010482946','Mat','sprawdzian',2,'2018-06-12');
  205.  
  206.  
  207. DROP TRIGGER nowa_ocena;
  208.  
  209.  
  210. ------------ Trigger_2 ------------
  211.  
  212. CREATE TRIGGER delete_ocena
  213. on Oceny
  214. AFTER DELETE
  215.     AS
  216.     PRINT 'Pracownik ' + user_name() + ' usuna oceny'
  217. GO
  218.  
  219.  
  220. DELETE FROM Oceny
  221. WHERE id_ucznia = '97080714219';
  222.  
  223.  
  224. DROP TRIGGER delete_ocena
  225.  
  226.  
  227. ------------ Trigger_3 ------------
  228.  
  229. CREATE TRIGGER trig_oceny
  230. on Oceny
  231. AFTER INSERT, UPDATE, DELETE
  232.     AS
  233.     SELECT * FROM deleted;
  234.     SELECT * FROM inserted
  235. GO
  236.  
  237.  
  238. UPDATE Oceny
  239. SET ocena = 5
  240. WHERE id_ucznia = '97012511534'
  241. AND id_przedmiotu = 'Inf';
  242.  
  243.  
  244. DROP TRIGGER trig_oceny
  245.  
  246.  
  247. ------------ Trigger_4 ------------
  248. CREATE TRIGGER nowy_uczen
  249. ON Uczniowie
  250. AFTER INSERT
  251.     AS
  252.     PRINT 'Pracownik ' + user_name() + ' dodaje ucznia'
  253. GO
  254.  
  255.  
  256. INSERT INTO Uczniowie VALUES
  257. ('97122654895','Marek','Kalina','1997-12-26','IIa');
  258.  
  259.  
  260. DROP TRIGGER nowy_uczen;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement