Facebook
From Beige Tern, 6 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 217
  1. Zadanie 1-3. Done.
  2. Zadanie 4.
  3. a)
  4. CREATE TABLE Benefit(
  5. id_benefitu INT AUTO_INCREMENT PRIMARY KEY,
  6. nazwa VARCHAR(20) NOT NULL,
  7. cena INT,
  8. opis LONGTEXT,
  9. rodzaj ENUM('lekarz','sport','przedszkole'),
  10. );
  11.  
  12. b)
  13. CREATE TABLE Uzytkownik(
  14. id_uzytkownika INT PRIMARY KEY NOT NULL,
  15. rodzaj ENUM('pracownik','prezes','rodzina') DEFAULT 'pracownik',
  16. imie VARCHAR(32) NOT NULL,
  17. nazwisko VARCHAR(20) NOT NULL,
  18. zarobki INT UNSIGNED DEFAULT 2000,
  19. dataur DATE,
  20. id_benefitu INT,
  21. FOREIGN KEY (id_benefitu) REFERENCES Benefit(id_benefitu)
  22. ON DELETE CASCADE
  23. );
  24.  
  25. Zadanie 5.
  26. INSERT INTO Benefit(id_benefitu,nazwa,cena,opis,rodzaj) SELECT idZasobu,nazwa,waga,'brak','sport' FROM zasob;
  27.  
  28. Zadanie 6.
  29. ALTER TABLE Uzytkownik MODIFY COLUMN rodzaj ENUM('pracownik','prezes','rodzina') DEFAULT 'prezes';
  30.  
  31. Zadanie 7.
  32. UPDATE Benefit SET nazwa = 'Granie' WHERE nazwa LIKE '%an%';
  33.  
  34. Zadanie 8.
  35. DELETE FROM Benefit WHERE cena > 76;
  36.  
  37. Zadanie 9.
  38. a)SELECT imie,nazwisko FROM zawodnik WHERE klub IS NOT NULL AND YEAR(dataUrodzenia) BETWEEN 1990 AND 2000;
  39. b)SELECT k.nazwa, count(z.idZawodnika) FROM zawodnik z JOIN kraj k ON z.idKraju = k.idKraju  WHERE YEAR(dataUrodzenia) BETWEEN 1990 AND 2000 GROUP BY k.nazwa;
  40. c)SELECT m.nazwa, avg(w.wynik) FROM wyniki w JOIN konkurencja k ON w.idKonkurencji = k.idKonkurencji JOIN miejsce_zawodow m ON k.idMiejsca = m.idMiejsca WHERE k.nazwaKonkurencji = 'bieg' GROUP BY m.nazwa;
  41. d)SELECT Year(dataUrodzenia), GROUP_CONCAT(imie,' ',nazwisko) FROM zawodnik GROUP BY YEAR(dataUrodzenia);
  42. e)SELECT CONCAT(z.imie,' ',z.nazwisko), k.nazwaKonkurencji, count(k.idKonkurencji) FROM zawodnik z JOIN wyniki w ON z.idZawodnika = w.idZawodnika JOIN konkurencja k ON w.idKonkurencji = k.idKonkurencji GROUP BY CONCAT(z.imie,' ',z.nazwisko), k.nazwaKonkurencji;
  43. f)SELECT k.nazwa FROM kraj k LEFT JOIN miejsce_zawodow m ON k.idKraju = m.idKraju WHERE m.idKraju IS NULL;
  44. g)SELECT * FROM miejsce_zawodow m JOIN kraj k ON m.idKraju = k.idKraju GROUP BY k.nazwa HAVING count(k.nazwa) = 1 ORDER BY k.nazwa;
  45.