Advertisement
Guest User

Untitled

a guest
Dec 14th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.21 KB | None | 0 0
  1. napisz procedure wybierajaca kraj , ktorego kod podajemy jako parametr wywolania.wynikiem dzialanie prodecury bedzie tabela skladajaca sie z 1 wiersza zawierajacego: kod kraju , nazwa kraju ,kontynent , ilosc oficjalnych jezyków , ilosc nieoficjanlych jezykow , jezyk. jezeli ilosc oficjalnych jezykow wynosi wiecej niz 1 to tabela powinna w kolumnie jezyk wypisac jezyk ktorym posluguje sie najwieksza liczba mieszkajacych
  2.  
  3. ----------------------------------------------------------------------------------------------------------------------
  4.  
  5. CREATE PROCEDURE zadanie_1(u_kod char(3))
  6. BEGIN
  7. DECLARE oficjalne integer;
  8. DECLARE nieoficjalne integer;
  9. DECLARE jezyk char(30);
  10.  
  11. SELECT COUNT(*) INTO oficjalne FROM CountryLanguage WHERE CountryCode=u_kod AND IsOfficial="T";
  12. SELECT COUNT(*) INTO nieoficjalne FROM CountryLanguage WHERE CountryCode=u_kod AND IsOfficial="F";
  13.  
  14. IF il_oficjalne>1 THEN
  15. SELECT LANGUAGE into jezyk FROM CountryLanguage WHERE IsOfficial="T" and CountryCode=u_kod ORDER by Percentage DESC Limit 1;
  16. ELSE
  17. SELECT LANGUAGE into jezyk from CountryLanguage WHERE IsOfficial="T" AND CountryCode=u_kod;
  18. END IF;
  19.  
  20. SELECT Code,Name,Continent,oficjalne,nieoficjalne,jezyk FROM Country WHERE CODE=u_kod;
  21. END
  22.  
  23. Separator $$
  24.  
  25. call zadanie_1("kodkraju(np. POL)")
  26.  
  27.  
  28. ----------------------------------------------------------------------------------------------------------------------
  29.  
  30. Napisz procedurę o nazwie ZADANIE_2 wybierającą kraj, którego kod podajemy jako parametr wywołania. Wynikiem działania procedury będzie tabela składająca się z jednego lub kilku wierszy zwierających: Kod(Country.Code), nazwę kraju(Country.Name), kontynent(Country.Continent) jaki procent w sumie stanowią języki oficjalne a jaki nieoficjalne oraz język. Ostatnia kolumna zwiera języki które w sumie stanowią większość.
  31.  
  32.  
  33. create Procedure Zadanie_2(u_kod varchar(50))
  34.  
  35. BEGIN
  36.  
  37. DECLARE procent_nieoficjalnych decimal(50,2);
  38. DECLARE procent_oficjalnych decimal(50,2);
  39.  
  40. SELECT sum(countrylanguage.percentage) into procent_nieoficjalnych FROM countrylanguage WHERE countrylanguage.CountryCode=u_kod and countrylanguage.IsOfficial="F";
  41.  
  42. SELECT sum(countrylanguage.percentage) into procent_oficjalnych FROM countrylanguage WHERE countrylanguage.CountryCode=u_kod and countrylanguage.IsOfficial "T";
  43.  
  44.  
  45. ----------------------------------------------------------------------------------------------------------------------
  46.  
  47.  
  48. napisz procedure wybierajaca kraj ktorego kod podajemy jako parametr wywolania. wynikiem dzialania prodecury bedzie tabla skladajaca sie z 1 wiersza zawierajacego : kod kraju,nazwe kraju,kontynent,stolice,ilosc miast oraz nazwe miasta o najwiekszej liczbie mieszkancow nie będącej stolicą.jezeli ilosc miast mnijesza od 2 to zamiast nazwy miasta komunikat brak miejscowości
  49.  
  50.  
  51. create procedure zadanko(kod(char3))
  52. BEGIN
  53.  
  54. DECLARE stolica varchar(30);
  55. DECLARE miasto varchar(30);
  56. DECLARE ilosc_miast int DEFAULT 0;
  57.  
  58.  
  59. SELECT City.Name into stolica FROM City INNER JOIN Country on Country.Capital = City.Id WHERE Country.Code=kod;
  60. SELECT Count(*) into ilosc_miast from City WHERE City.CountryCode = kod;
  61. if ilosc_miast<2 then
  62. SELECT "brak miejscowości" into miasto;
  63. ELSE
  64. SELECT City.Name into miasto from City INNER JOIN Country on City.CountryCode=Country.Code WHERE Country.Capital <> City.id and Country.Code=kod ORDER by City.Population desc limit 1;
  65. end if;
  66.  
  67. SELECT Code,Name,Continent,ilosc_miast,stolica,miasto FROM Country WHERE Country.Code=kod;
  68.  
  69. END
  70.  
  71.  
  72. ----------------------------------------------------------------------------------------------------------------------
  73.  
  74. napisz procedure otrzymujaca jeden parametr nazwe dzialu i zwraca jeden wiersz zawierajacy informacje ile jest osob zarabiajacych wiecej oraz ile osob zarabiajacych mniej niz wynosi srednia pensja dzialu podanego jako parametr wywolania
  75.  
  76. CREATE PROCEDURE zadanie3(dzial_a varchar(100))
  77. BEGIN
  78. DECLARE srednia decimal;
  79. DECLARE ilosc_mniej integer;
  80. DECLARE ilosc_wiecej integer;
  81.  
  82. SELECT avg(pensja) into srednia FROM lista_plac WHERE dzial=dzial_a;
  83. SELECT count(*) into ilosc_mniej from lista_plac WHERE pensja<srednia;
  84. SELECT count(*) into ilosc_wiecej from lista_plac WHERE pensja>srednia;
  85.  
  86. SELECT ilosc_mniej,ilosc_wiecej;
  87. end
  88.  
  89.  
  90. ----------------------------------------------------------------------------------------------------------------------
  91.  
  92. napisz procedure zawierajaca 3 parametry kazdy z tych parametrow bedzie zawieral nazwe dzialu procedura wyswietli wszystkich pracownikow tego dzialu ktorego jest najwiecej posrod podanych parametrow
  93.  
  94. CREATE PROCEDURE zadanie3(dzial_a varchar(100))
  95.  
  96. BEGIN
  97. declare dzial1 int;
  98. declare dzial2 int;
  99. declare dzial3 int;
  100.  
  101. SELECT count(*) into dzial1 FROM lista_plac WHERE dzial=dzial1;
  102. SELECT count(*) into dzial2 FROM lista_plac WHERE dzial=dzial2;
  103. SELECT count(*) into dzial3 FROM lista_plac WHERE dzial=dzial3;
  104. IF dzial1>dzial2 AND dzial1>dzial3_il THEN
  105. SELECT imie, nazwisko FROM lista_plac WHERE dzial=dzial1;
  106. ELSEIF dzial2>dzial1 AND dzial2>dzial3 THEN
  107. SELECT imie, nazwisko FROM lista_plac WHERE dzial=dzial2;
  108. ELSE
  109. SELECT imie, nazwisko FROM lista_plac WHERE dzial=dzial3;
  110.  
  111. END IF;
  112. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement