Advertisement
Guest User

Untitled

a guest
Apr 7th, 2020
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 5.04 KB | None | 0 0
  1. -- 1. Podaj nazwisko studenta o numerze 5.
  2. SELECT NAZWISKO FROM STUDENCI WHERE NR_STUD = 5
  3.  
  4. -- 2. Podaj nazwy przedmiotów zaczynające sie od litery A.
  5. SELECT NAZWA_PRZEDM FROM PRZEDMIOTY WHERE NAZWA_PRZEDM LIKE 'A%'
  6.  
  7. -- 3. Podaj nazwiska studentów studiujących na kierunku ROBOTYKA.
  8. SELECT stud.NAZWISKO FROM STUDENCI stud,
  9. KIERUNKI kier
  10. WHERE kier.NR_KIER = stud.NR_KIER AND kier.NAZWA_KIER = 'ROBOTYKA'
  11.  
  12. -- 4. Podaj w porządku alfabetycznym nazwiska studentek, które z dowolnego przedmiotu otrzymały ocenę=2.
  13. SELECT NAZWISKO FROM STUDENCI
  14. WHERE NR_STUD = ANY ( SELECT NR_STUD FROM OCENY WHERE OCENA=2 ) AND PLEC = 'K' ORDER BY NAZWISKO  ASC
  15.  
  16. -- 5. Podaj wykaz wykładów realizowanych na kierunku BUDOWA MC.
  17. SELECT przedm.NAZWA_PRZEDM FROM PRZEDMIOTY przedm, KIERUNKI kier, TYPY_PRZEDMIOTOW typ
  18. WHERE kier.NR_KIER = przedm.NR_KIER
  19. AND typ.KOD_TPRZEDM = przedm.KOD_TPRZEDM
  20. AND kier.NAZWA_KIER = 'BUDOWA MC'
  21. AND typ.NAZWA_TPRZEDM = 'Wyk?ad'
  22.  
  23. --6. Podaj w odwrotnej kolejności alfabetycznej nazwiska studentów mężczyzn, którzy studiują na kierunku STEROWANIE PROC lub TECHNOLOGIA EL.
  24. SELECT NAZWISKO
  25. FROM studenci s,kierunki k WHERE s.NR_KIER =k.NR_KIER AND s.PLEC
  26. LIKE 'M' AND (k.NAZWA_KIER LIKE 'STEROWANIE PROC' OR k.NAZWA_KIER LIKE 'TECHNOLOGIA EL')
  27. ORDER BY NAZWISKO DESC
  28.  
  29. --7.Podaj nazwy przedmiotów, z których wystawiono przynajmniej jedną ocenę 2. Nazwa danego przedmiotu powinna się pojawić tylko raz.
  30. SELECT DISTINCT p.NAZWA_PRZEDM
  31. FROM oceny o INNER JOIN przedmioty p ON o.NR_PRZEDM = p.NR_PRZEDM
  32. WHERE o.OCENA = 2;
  33.  
  34. --8. Podaj nazwy przedmiotów i nazwy ich przedmiotów nadrzędnych.
  35. SELECT p1.NAZWA_PRZEDM, p2.NAZWA_PRZEDM AS 'NADRZEDNY'
  36. FROM przedmioty p1, przedmioty p2
  37. WHERE p1.NR_PRZEDM_NADRZ = p2.NR_PRZEDM;
  38.  
  39. --9. Podaj liczbę studentów kierunku INFORMATYKA.
  40. SELECT COUNT(NAZWISKO) AS cnt
  41. FROM studenci s INNER JOIN kierunki m ON s.NR_KIER = m.NR_KIER AND NAZWA_KIER='INFORMATYKA';
  42.  
  43. --10. Podaj średnią ocen studenta KOWALSKIEGO.
  44. SELECT AVG(o.OCENA)
  45. FROM oceny o INNER JOIN studenci s ON s.NR_STUD = o.NR_STUD
  46. WHERE NAZWISKO='KOWALSKI';
  47.  
  48. --11. Podaj liczbę studentów kierunku RESTRUKTURYZACJI GORNICTWA
  49. SELECT COUNT( NAZWISKO) AS Liczba
  50. FROM studenci s, kierunki k
  51. WHERE k.NAZWA_KIER='RESTRUKTURYZACJI GORNICTWA' AND  s.NR_KIER = k.NR_KIER
  52.  
  53. --12. Podaj najniższą i najwyższą ocenę uzyskaną przez poszczególnych studentów o nazwiskach zaczynających się na K.
  54. SELECT s.NR_STUD, NAZWISKO, MIN(o.OCENA) AS MIN, MAX(o.OCENA) AS MAX
  55. FROM studenci s JOIN oceny o
  56. ON s.NR_STUD = o.NR_STUD
  57. WHERE NAZWISKO LIKE 'K%'
  58. GROUP BY s.NR_STUD,  NAZWISKO
  59.  
  60. --13. Podaj liczbę różnych nazwisk, które mają studenci kierunku RESTRUKTURYZACJI GORNICTWA
  61. SELECT COUNT(DISTINCT NAZWISKO) AS Liczba
  62. FROM studenci s, kierunki k
  63. WHERE k.NAZWA_KIER='RESTRUKTURYZACJI GORNICTWA' AND k.NR_KIER= s.NR_KIER
  64.  
  65. --14. Podaj daty urodzenia najstarszych studentów na poszczególnych kierunkach.
  66. SELECT KIERUNKI.NR_KIER, NAZWA_KIER, MIN(DATA_UR)
  67. FROM STUDENCI
  68. JOIN KIERUNKI ON STUDENCI.NR_KIER = KIERUNKI.NR_KIER
  69. GROUP BY KIERUNKI.NR_KIER, NAZWA_KIER
  70.    
  71. --15. Dla każdego studenta o nazwisku na K podać liczbę ocen, które otrzymał z poszczególnych przedmiotów.
  72. SELECT NAZWISKO, NAZWA_PRZEDM, COUNT(*) AS Liczba
  73. FROM studenci
  74. JOIN kierunki ON studenci.NR_KIER = kierunki.NR_KIER
  75. JOIN przedmioty ON przedmioty.NR_KIER = kierunki.NR_KIER
  76. JOIN oceny ON oceny.NR_PRZEDM = przedmioty.NR_PRZEDM AND oceny.NR_STUD = studenci.NR_STUD
  77. WHERE LEFT(NAZWISKO, 1) = 'K'
  78. GROUP BY NAZWISKO, NAZWA_PRZEDM,studenci.NR_STUD;
  79.    
  80. --16. Podaj nazwy przedmiotów, z których wystawiono więcej niż 8 ocen.
  81. SELECT p.NAZWA_PRZEDM
  82. FROM PRZEDMIOTY p
  83. WHERE (SELECT COUNT(o.OCENA) FROM OCENY o WHERE o.NR_PRZEDM = p.NR_PRZEDM) > 8
  84. ORDER BY p.NAZWA_PRZEDM ASC
  85.  
  86. --17. Dla każdego studenta kierunku ROBOTYKA podaj liczbę przedmiotów z których ma on ocenę.
  87. SELECT  NAZWISKO,
  88. COUNT (DISTINCT PRZEDMIOTY.NR_PRZEDM) AS ile
  89. FROM STUDENCI
  90. JOIN KIERUNKI ON KIERUNKI.NR_KIER = STUDENCI.NR_KIER
  91. JOIN PRZEDMIOTY JOIN OCENY ON OCENY.NR_STUD = STUDENCI.NR_STUD
  92. AND OCENY.NR_PRZEDM = PRZEDMIOTY.NR_PRZEDM
  93. WHERE KIERUNKI.NAZWA_KIER = 'ROBOTYKA'
  94. GROUP BY STUDENCI.NR_STUD, NAZWISKO
  95.  
  96. --18. Podaj nazwiska studentów, którzy są młodsi od studenta DYBA
  97. SELECT NAZWISKO FROM STUDENCI
  98. WHERE DATA_UR > ( SELECT DATA_UR FROM STUDENCI WHERE NAZWISKO = 'DYBA') ORDER BY NR_STUD
  99.  
  100. --19. Podaj nazwiska studentów, których średnia ocen jest większa od średniej ocen studenta LISA.
  101. SELECT NAZWISKO
  102. FROM STUDENCI
  103. JOIN OCENY ON
  104. STUDENCI.NR_STUD  = OCENY.NR_STUD
  105. GROUP BY NAZWISKO, STUDENCI.NR_STUD
  106. HAVING avg(OCENA) > (
  107. SELECT avg(OCENA)
  108. FROM STUDENCI
  109. JOIN OCENY ON STUDENCI.NR_STUD = OCENY.NR_STUD
  110. WHERE NAZWISKO LIKE 'LIS')
  111.  
  112. --20. Podaj nazwy kierunków, na których studiuje więcej studentów niż na kierunku INFORMATYKA.
  113. SELECT NAZWA_KIER  FROM KIERUNKI k JOIN STUDENCI s ON k.NR_KIER=s.NR_KIER
  114. GROUP BY NAZWA_KIER  HAVING COUNT (s.NR_STUD) > ( SELECT COUNT (s.NR_STUD)
  115. FROM KIERUNKI k JOIN STUDENCI s ON k.NR_KIER=s.NR_KIER
  116. WHERE NAZWA_KIER='INFORMATYKA')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement