Advertisement
MagnusArias

BD | function

Jun 6th, 2016
303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 5.00 KB | None | 0 0
  1. Ćwiczenie 1.
  2. Utwórz funkcję o nazwie napiszImie, która wyświetli w postaci łańcucha znaków twoje imię. Wywołaj
  3. funkcję za pomocą odpowiedniego polecenia. Usuń funkcję za pomocą odpowiedniego polecenia.
  4. Ćwiczenie 2.
  5. Utwórz funkcję o nazwie dodaj pobierającą w postaci parametrów 2 liczby całkowite, która zwróci wynik
  6. ich dodawania. Funkcja w przypadku, gdy pierwszy parametr będzie większy od 10, powinna przypisać mu
  7. wartość 10. Wywołaj funkcję za pomocą odpowiedniego polecenia, kolumna z wyświetloną nazwą wyniku
  8. powinna nazywać się wynik.
  9. Ćwiczenie 3.
  10. Zmodyfikuj funkcję z ćwiczenia 2 (ALTER) w taki sposób, aby pobierała tylko jeden parametr i zwracała w
  11. wyniku SUMę jego kwadratu oraz jego wartości. Wywołaj funkcję za pomocą odpowiedniego polecenia.
  12. Usuń funkcję za pomocą odpowiedniego polecenia.
  13. Ćwiczenie 4.
  14. Utwórz i uruchom funkcję, która pobiera w postaci parametru id klienta i zwraca nazwę miasta, w którym
  15. mieszka. Kolumna z wyświetloną nazwą wyniku powinna nazywać się miasto. Usuń funkcję za pomocą
  16. odpowiedniego polecenia.
  17. Ćwiczenie 5.
  18. Utwórz i uruchom funkcję, która pobiera w postaci parametru id osoby i zwraca imię i nazwisko osoby oraz
  19. imię i nazwisko jej szefa oraz id szefa (zastosuj odpowiednie aliasy dla kolumn). Usuń funkcję za pomocą
  20. odpowiedniego polecenia.
  21. Ćwiczenie 6.
  22. Utwórz i uruchom funkcję, która pobierze nazwę działu, zwróci nazwę tego działu ,dane osób: imię,
  23. nazwisko, które są wzrostu niższego niż 1.70. Usuń funkcję za pomocą odpowiedniego polecenia.
  24. Ćwiczenie 7.
  25. Utwórz i uruchom funkcję, która pobiera w postaci parametru nazwę producenta i zwraca nazwę kategorii
  26. towarów, jakie produkuje oraz liczbę towarów dla każdej z tych kategorii. Usuń funkcję za pomocą
  27. odpowiedniego polecenia.
  28. Ćwiczenie 8.
  29. Utwórz i uruchom funkcję, która pobierze nazwę województwa i zwróci liczbę klientów pochodzących z
  30. tego województwa. Usuń funkcję za pomocą odpowiedniego polecenia.
  31. Ćwiczenie 9.
  32. Utwórz funkcję o nazwie podajDate, która zwróci w postaci łańcucha znakowego bieżąc dzień miesiąca
  33. oraz poda nazwę dnia tygodnia w języku polskim. (wykorzystaj CASE-WHEN-THEN). Wywołaj funkcję za
  34. pomocą odpowiedniego polecenia. Usuń funkcję za pomocą odpowiedniego polecenia.
  35.  
  36.  
  37. /* TWORZENIE FUNKCJI SKALARNEJ */
  38. CREATE FUNCTION dbo.liczbaOsob( @frazaNazwiska VARCHAR(25) ) RETURNS INT
  39. AS
  40. BEGIN
  41.     DECLARE @ile INT;
  42.  
  43.     SELECT @ile = COUNT(idOsoby) FROM Osoby
  44.     WHERE nazwisko LIKE @frazaNazwiska+'%';
  45.  
  46.     IF (@ile IS NULL) SET @ile = 0;
  47.  
  48.     RETURN @ile;
  49. END;
  50.  
  51.  
  52. DECLARE @wyn INT;
  53. EXEC @wyn = dbo.LiczbaOsob @frazaNazwiska = 'G';
  54. print @wyn;
  55.  
  56. /* ALBO */
  57.  
  58. SELECT dbo.liczbaOsob(1.80) AS Wynik;
  59. GO
  60.  
  61. /* MODYFIKACJA FUNKCJI SKALARNEJ */
  62. ALTER FUNCTION dbo.LiczbaOsob (@wzrost DECIMAL(3,2) ) RETURNS INT
  63. AS
  64. BEGIN
  65.     DECLARE @ile INT;
  66.  
  67.     SELECT @ile = COUNT(idOsoby) FROM Osoby
  68.     WHERE Wzrost > @wzrost
  69.  
  70.     IF (@ile IS NULL) SET @ile = 0;
  71.  
  72.     RETURN @ile;
  73. END;
  74.  
  75. /* USUWANIE */
  76. DROP FUNCTION dbo.liczbaOsob
  77.  
  78.  
  79. /* TWORZENIE FUNKCJI TABLICOWEJ */
  80. CREATE FUNCTION dbo.pokazMiasta (@fraza VARCHAR(25)) RETURNS @tab TABLE (id INT, nazwa VARCHAR(30))
  81. AS
  82. BEGIN
  83.     INSERT INTO @tab SELECT idMIasta, Miasto FROM Miasta WHERE Miasto LIKE @fraza+'%';
  84.     RETURN;
  85. END;
  86. GO
  87.  
  88. CREATE FUNCTION dbo.pokazMiasta2 (@fraza VARCHAR(25)) RETURNS TABLE
  89. AS
  90.     RETURN(SELECT idMIasta, Miasto FROM Miasta WHERE Miasto LIKE @fraza+'%');
  91. GO
  92.  
  93. SELECT * FROM dbo.pokazMiasta('Bi') AS Wynik;
  94. GO
  95.  
  96. SELECT * FROM dbo.pokazMiasta2('Go') AS Wynik;
  97. GO
  98.  
  99.  
  100.  
  101. Ćw 1
  102. CREATE FUNCTION dbo.napiszImie() RETURNS VARCHAR(20)
  103. AS
  104. BEGIN
  105.     RETURN ('siema');
  106. END;
  107. GO
  108.  
  109. SELECT dbo.napiszImie();
  110. DROP FUNCTION dbo.napiszImie;
  111.  
  112. Ćw 2
  113. CREATE FUNCTION dbo.dodaj ( @a INT, @b INT) RETURNS INT
  114. AS
  115. BEGIN
  116.     DECLARE @wynik INT;
  117.     SET @wynik = 0;
  118.  
  119.     IF (@a > 10)
  120.     BEGIN
  121.         SET @wynik = 10;
  122.     END
  123.     ELSE
  124.     BEGIN
  125.         SET @wynik = @a + @b;
  126.     END;
  127.  
  128.     RETURN @wynik;
  129. END;
  130. GO
  131.  
  132. SELECT dbo.dodaj (19,8);
  133. GO
  134.  
  135. Ćw 3
  136. ALTER FUNCTION dbo.dodaj ( @a INT) RETURNS INT
  137. AS
  138. BEGIN
  139.     DECLARE @wynik INT;
  140.     SET @wynik = 0;
  141.  
  142.     SET @wynik = POWER(@a, 2) + POWER(@a, 2);
  143.  
  144.     RETURN @wynik;
  145. END;
  146. GO
  147.  
  148. SELECT dbo.dodaj (5);
  149. GO
  150.  
  151. Ćw 4
  152. CREATE FUNCTION dbo.gdzieMieszka( @id INT) RETURNS VARCHAR(50)
  153. AS
  154. BEGIN
  155.     DECLARE @miasto VARCHAR(50);
  156.  
  157.     SELECT @miasto = m.Miasto FROM Klienci k
  158.     JOIN Miasta m ON m.IdMiasta=k.IdMiasta
  159.     WHERE k.IdKlienta = @id;
  160.  
  161.     RETURN @miasto;
  162. END;
  163. GO
  164.  
  165. SELECT dbo.gdzieMieszka (45);
  166. GO
  167. DROP FUNCTION dbo.gdzieMieszka;
  168.  
  169. ĆW 5
  170. CREATE FUNCTION dbo.podajSzefa (@idOsoby INT) RETURNS TABLE
  171. AS
  172.     RETURN SELECT   o.Imie AS 'imie osoby',
  173.                     o.Nazwisko AS'nazwisko osoby',
  174.                     s.Imie AS 'imie szefa',
  175.                     s.Nazwisko AS 'nazwisko szefa',
  176.                     s.IdSzefa AS 'id szefa' FROM Osoby o
  177.                     JOIN Osoby s ON s.idOsoby = o.IdSzefa
  178.                     WHERE o.IdOsoby = @idOsoby;
  179. GO
  180.  
  181. SELECT * FROM dbo.podajSzefa(17);
  182. GO
  183. DROP FUNCTION dbo.podajSzefa;
  184.  
  185. Ćw. 6
  186. CREATE FUNCTION osobyDzial (@nazwaDzialu VARCHAR(20))
  187.  
  188. TU BI KONTINUED...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement