Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Potrzebuję pomocy z zapytaniami
Forum PHP.pl > Forum > Bazy danych > Oracle
MAGx2
Witam.
Mam problem z napisaniem kilku kwerend SQL do bazy danych Wampirów (w pierwszym poście podaję komendy Create Table i Insert).
Czy moglibyście mi pomóc?
  1. Zad. 15. Znaleźć wampiry, które znają tyle samo języków obcych co posiadają sprawności.
  2.  
  3. Wampir Liczba
  4. --------------- ----------
  5. Bolek 1
  6. Czerwony 2
  7. Gacek 1
  8. Komar 1
  9. Opoj 3
  10. Pijawka 1
  11. Zyleta 1
  12. Zadanie powinno zostać wykonane za pomocą pod zapytań a nie JOINów

  1. Zad. 18. Wyświetlić uporządkowane malejąco trzy największe objęTOści donacji wraz z pseudonimami dawców, od których donacje pochodzą (zastosować podzapytanie skorelowane).
  2.  
  3. Objetosc Dawca
  4. ---------- ---------------
  5. 703 Wytrawny
  6. 680 Miodzio
  7. 644 Miodzio

  1. Zad. 19. Określić pseudonimy i grupy krwi dawców, od których pobierały krew wampiry znające język polski. Zadanie rozwiązać na dwa sposoby: wykorzystując wyłącznie podzapytania oraz wyłącznie złączenia relacji. W tym drugim przypadku wyświetlić dodatkowo pseudonimy wampirów pobierających krew. Wyjaśnić dlaczego w pierwszym przypadku BYło TO niemożliwe. Wyjaśnić także różnicę w wyniku. (Tylko wersję z podzapytaniami).[/manual]
  2. Jeszcze pytanie. Dlaczego TO zapytanie jest niepoprawne?
  3. [sql]-- zad 19 A
  4. SELECT dawcy.pseudo_dawcy "Dawca", dawcy.grupa_krwi "Grupa" FROM dawcy
  5. WHERE dawcy.pseudo_dawcy =
  6. (
  7. SELECT donacje.pseudo_dawcy FROM donacje
  8. WHERE donacje.pseudo_wampira =
  9. (
  10. SELECT wampiry.pseudo_wampira FROM wampiry
  11. WHERE wampiry.pseudo_wampira =
  12. (
  13. SELECT jezyki_obce_w.pseudo_wampira FROM jezyki_obce_w
  14. WHERE jezyki_obce_w.jezyk_obcy = 'polski'
  15. )
  16. )
  17. );

  1. Zad. 20. Sprawdzić, czy istniał rok, w którym do Rodziny wstąpił więcej niż jeden wampir. Wyświetlić lata wstąpienia i pseudonimy takich wampirów (wykorzystać podzapytanie).
  2.  
  3. Wampir Rok wstapienia
  4. --------------- --------------
  5. Komar 1911
  6. Zyleta 1911


Z góry dziękuję za rozwiązania i drobne komentarze do nich smile.gif
Pozdrawiam smile.gif


Create table:
  1. CREATE TABLE Wampiry(
  2. pseudo_wampira VARCHAR2(15) CONSTRAINT wa_pk PRIMARY KEY,
  3. wampir_w_rodzinie DATE NOT NULL,
  4. plec_wampira CHAR(1) NOT NULL CONSTRAINT wa_plec CHECK (plec_wampira IN ('K','M')),
  5. pseudo_szefa VARCHAR2(15) CONSTRAINT wa_fk_wa REFERENCES Wampiry(pseudo_wampira)
  6. );
  7.  
  8. CREATE TABLE Dawcy
  9. (pseudo_dawcy VARCHAR2(15) CONSTRAINT da_pk PRIMARY KEY,
  10. rocznik_dawcy NUMBER(4) NOT NULL,
  11. plec_dawcy CHAR(1) NOT NULL CONSTRAINT da_plec
  12. CHECK (plec_dawcy IN ('K','M')),
  13. grupa_krwi VARCHAR2(2) NOT NULL CONSTRAINT da_grupa
  14. CHECK (grupa_krwi IN ('0','A','B','AB')));
  15.  
  16. CREATE TABLE Sprawnosci
  17. (sprawnosc VARCHAR2(20) CONSTRAINT sp_pk PRIMARY KEY);
  18.  
  19. CREATE TABLE Jezyki_obce
  20. (jezyk_obcy VARCHAR2(25) CONSTRAINT jo_pk PRIMARY KEY);
  21. CREATE TABLE Sprawnosci_w
  22. (pseudo_wampira VARCHAR2(15) CONSTRAINT sw_fk_wa
  23. REFERENCES Wampiry(pseudo_wampira),
  24. sprawnosc VARCHAR2(20) CONSTRAINT sw_fk_sp
  25. REFERENCES Sprawnosci(sprawnosc),
  26. sprawnosc_od DATE NOT NULL,
  27. CONSTRAINT sw_pk PRIMARY KEY (pseudo_wampira,sprawnosc));
  28.  
  29. CREATE TABLE Jezyki_obce_w
  30. (pseudo_wampira VARCHAR2(15) CONSTRAINT jw_fk_wa
  31. REFERENCES Wampiry(pseudo_wampira),
  32. jezyk_obcy VARCHAR2(25) CONSTRAINT jw_fk_jo
  33. REFERENCES Jezyki_obce(jezyk_obcy),
  34. jezyk_obcy_od DATE NOT NULL,
  35. CONSTRAINT jw_pk PRIMARY KEY (pseudo_wampira,jezyk_obcy));
  36.  
  37. CREATE TABLE Zlecenia(
  38. nr_zlecenia NUMBER(6) CONSTRAINT zl_pk PRIMARY KEY CONSTRAINT zl_n_z CHECK (nr_zlecenia>0),
  39. data_zlecenia DATE NOT NULL,
  40. pseudo_wampira VARCHAR2(15) NOT NULL CONSTRAINT zl_fk_wa REFERENCES Wampiry(pseudo_wampira)
  41. );
  42.  
  43. CREATE TABLE Donacje
  44. (nr_zlecenia NUMBER(6) CONSTRAINT do_fk_zl
  45. REFERENCES Zlecenia(nr_zlecenia),
  46. pseudo_dawcy VARCHAR2(15) CONSTRAINT do_fk_da
  47. REFERENCES Dawcy(pseudo_dawcy),
  48. data_oddania DATE NOT NULL,
  49. ilosc_krwi NUMBER(3) CONSTRAINT do_ilosc
  50. CHECK (ilosc_krwi>0),
  51. pseudo_wampira VARCHAR2(15) CONSTRAINT do_fk_wa
  52. REFERENCES Wampiry(pseudo_wampira),
  53. data_wydania DATE,
  54. CONSTRAINT do_pk PRIMARY KEY (nr_zlecenia,pseudo_dawcy),
  55. CONSTRAINT do_data_wyd_data_odd
  56. CHECK (data_wydania>=data_oddania));

Insert:
  1. ALTER SESSION SET NLS_DATE_FORMAT='DD.MM.YYYY';
  2. INSERT INTO Wampiry VALUES('Drakula','12.12.1217','M',NULL);
  3. INSERT INTO Wampiry VALUES('Opoj','07.11.1777','M','Drakula');
  4. INSERT INTO Wampiry VALUES('Wicek','11.11.1721','M','Drakula');
  5. INSERT INTO Wampiry VALUES('Baczek','13.04.1855','M','Opoj');
  6. INSERT INTO Wampiry VALUES('Bolek','31.05.1945','M','Opoj');
  7. INSERT INTO Wampiry VALUES('Gacek','21.02.1891','M','Wicek');
  8. INSERT INTO Wampiry VALUES('Pijawka','03.11.1901','K','Wicek');
  9. INSERT INTO Wampiry VALUES('Czerwony','13.09.1823','M','Wicek');
  10. INSERT INTO Wampiry VALUES('Komar','23.07.1911','M','Wicek');
  11. INSERT INTO Wampiry VALUES('Zyleta','23.09.1911','K','Opoj');
  12. INSERT INTO Wampiry VALUES('Predka','29.03.1877','K','Drakula');
  13.  
  14. INSERT INTO Zlecenia VALUES(221,'04.07.2005','Opoj');
  15. INSERT INTO Zlecenia VALUES(222,'04.07.2005','Baczek');
  16. INSERT INTO Zlecenia VALUES(223,'17.07.2005','Bolek');
  17. INSERT INTO Zlecenia VALUES(224,'22.07.2005','Opoj');
  18. INSERT INTO Zlecenia VALUES(225,'01.08.2005','Pijawka');
  19. INSERT INTO Zlecenia VALUES(226,'07.08.2005','Gacek');
  20.  
  21. INSERT INTO Dawcy VALUES('Slodka',1966,'K','AB');
  22. INSERT INTO Dawcy VALUES('Miodzio',1983,'M','B');
  23. INSERT INTO Dawcy VALUES('Gorzka',1958,'K','0');
  24. INSERT INTO Dawcy VALUES('Lolita',1987,'K','0');
  25. INSERT INTO Dawcy VALUES('Wytrawny',1971,'M','A');
  26. INSERT INTO Dawcy VALUES('Okocim',1966,'M','B');
  27. INSERT INTO Dawcy VALUES('Adonis',1977,'M','AB');
  28. INSERT INTO Dawcy VALUES('Zywiec',1969,'M','A');
  29. INSERT INTO Dawcy VALUES('Eliksir',1977,'M','0');
  30. INSERT INTO Dawcy VALUES('Zenek',1959,'M','B');
  31. INSERT INTO Dawcy VALUES('Zoska',1963,'K','0');
  32. INSERT INTO Dawcy VALUES('Czerwonka',1953,'M','A');
  33.  
  34. INSERT INTO Donacje VALUES(221,'Slodka','04.07.2005',455,'Drakula','06.08.2005');
  35. INSERT INTO Donacje VALUES(221,'Miodzio','04.07.2005',680,'Gacek','15.08.2005');
  36. INSERT INTO Donacje VALUES(221,'Gorzka','05.07.2005',471,'Pijawka','11.08.2005');
  37. INSERT INTO Donacje VALUES(221,'Lolita','05.07.2005',340,'Czerwony','21.08.2005');
  38. INSERT INTO Donacje VALUES(222,'Wytrawny','07.07.2005',703,'Drakula','17.07.2005');
  39. INSERT INTO Donacje VALUES(222,'Okocim','07.07.2005',530,'Komar','01.09.2005');
  40. INSERT INTO Donacje VALUES(222,'Adonis','08.07.2005',221,'Zyleta','11.09.2005');
  41. INSERT INTO Donacje VALUES(223,'Zywiec','17.07.2005',587,'Wicek','18.09.2005');
  42. INSERT INTO Donacje VALUES(224,'Gorzka','22.07.2005',421,'Drakula','23.08.2005');
  43. INSERT INTO Donacje VALUES(224,'Eliksir','25.07.2005',377,'Predka','26.07.2005');
  44. INSERT INTO Donacje VALUES(225,'Zenek','04.08.2005',600,'Opoj','15.08.2005');
  45. INSERT INTO Donacje VALUES(225,'Zoska','06.08.2005',450,NULL,NULL);
  46. INSERT INTO Donacje VALUES(226,'Czerwonka','10.08.2005',517,'Pijawka','30.09.2005');
  47. INSERT INTO Donacje VALUES(226,'Miodzio','11.08.2005',644,NULL,NULL);
  48.  
  49. INSERT INTO Sprawnosci VALUES('podryw');
  50. INSERT INTO Sprawnosci VALUES('gorzala');
  51. INSERT INTO Sprawnosci VALUES('kasa');
  52. INSERT INTO Sprawnosci VALUES('przymus');
  53. INSERT INTO Sprawnosci VALUES('niesmiertelnosc');
  54.  
  55. INSERT INTO Sprawnosci_w VALUES('Drakula','podryw','12.12.1217');
  56. INSERT INTO Sprawnosci_w VALUES('Drakula','gorzala','12.12.1217');
  57. INSERT INTO Sprawnosci_w VALUES('Wicek','kasa','11.11.1721');
  58. INSERT INTO Sprawnosci_w VALUES('Wicek','przymus','07.01.1771');
  59. INSERT INTO Sprawnosci_w VALUES('Opoj','podryw','07.11.1777');
  60. INSERT INTO Sprawnosci_w VALUES('Czerwony','niesmiertelnosc','13.09.1823');
  61. INSERT INTO Sprawnosci_w VALUES('Drakula','kasa','13.09.1823');
  62. INSERT INTO Sprawnosci_w VALUES('Opoj','gorzala','11.12.1844');
  63. INSERT INTO Sprawnosci_w VALUES('Baczek','gorzala','13.04.1855');
  64. INSERT INTO Sprawnosci_w VALUES('Drakula','przymus','14.06.1857');
  65. INSERT INTO Sprawnosci_w VALUES('Drakula','niesmiertelnosc','21.08.1858');
  66. INSERT INTO Sprawnosci_w VALUES('Opoj','przymus','15.07.1861');
  67. INSERT INTO Sprawnosci_w VALUES('Wicek','gorzala','19.01.1866');
  68. INSERT INTO Sprawnosci_w VALUES('Predka','podryw','29.03.1877');
  69. INSERT INTO Sprawnosci_w VALUES('Czerwony','kasa','03.02.1891');
  70. INSERT INTO Sprawnosci_w VALUES('Gacek','kasa','21.02.1891');
  71. INSERT INTO Sprawnosci_w VALUES('Pijawka','podryw','03.11.1901');
  72. INSERT INTO Sprawnosci_w VALUES('Komar','gorzala','23.07.1911');
  73. INSERT INTO Sprawnosci_w VALUES('Zyleta','przymus','23.09.1911');
  74. INSERT INTO Sprawnosci_w VALUES('Bolek','gorzala','31.05.1945');
  75.  
  76. INSERT INTO Jezyki_obce VALUES('niemiecki');
  77. INSERT INTO Jezyki_obce VALUES('wegierski');
  78. INSERT INTO Jezyki_obce VALUES('bulgarski');
  79. INSERT INTO Jezyki_obce VALUES('rosyjski');
  80. INSERT INTO Jezyki_obce VALUES('portugalski');
  81. INSERT INTO Jezyki_obce VALUES('francuski');
  82. INSERT INTO Jezyki_obce VALUES('angielski');
  83. INSERT INTO Jezyki_obce VALUES('polski');
  84. INSERT INTO Jezyki_obce VALUES('hiszpanski');
  85. INSERT INTO Jezyki_obce VALUES('czeski');
  86. INSERT INTO Jezyki_obce VALUES('wloski');
  87. INSERT INTO Jezyki_obce VALUES('szwedzki');
  88.  
  89. INSERT INTO Jezyki_obce_w VALUES('Drakula','niemiecki','12.12.1217');
  90. INSERT INTO Jezyki_obce_w VALUES('Drakula','wegierski','12.12.1217');
  91. INSERT INTO Jezyki_obce_w VALUES('Drakula','bulgarski','03.04.1455');
  92. INSERT INTO Jezyki_obce_w VALUES('Wicek','rosyjski','11.11.1721');
  93. INSERT INTO Jezyki_obce_w VALUES('Opoj','portugalski','07.11.1777');
  94. INSERT INTO Jezyki_obce_w VALUES('Czerwony','francuski','13.09.1823');
  95. INSERT INTO Jezyki_obce_w VALUES('Drakula','angielski','13.09.1823');
  96. INSERT INTO Jezyki_obce_w VALUES('Wicek','polski','18.08.1835');
  97. INSERT INTO Jezyki_obce_w VALUES('Opoj','hiszpanski','12.03.1851');
  98. INSERT INTO Jezyki_obce_w VALUES('Baczek','czeski','13.04.1855');
  99. INSERT INTO Jezyki_obce_w VALUES('Wicek','niemiecki','11.06.1869');
  100. INSERT INTO Jezyki_obce_w VALUES('Wicek','wloski','14.03.1873');
  101. INSERT INTO Jezyki_obce_w VALUES('Predka','czeski','29.03.1877');
  102. INSERT INTO Jezyki_obce_w VALUES('Opoj','polski','13.09.1883');
  103. INSERT INTO Jezyki_obce_w VALUES('Czerwony','rosyjski','23.11.1888');
  104. INSERT INTO Jezyki_obce_w VALUES('Gacek','polski','21.02.1891');
  105. INSERT INTO Jezyki_obce_w VALUES('Predka','niemiecki','07.06.1894');
  106. INSERT INTO Jezyki_obce_w VALUES('Baczek','angielski','04.12.1899');
  107. INSERT INTO Jezyki_obce_w VALUES('Pijawka','angielski','03.11.1901');
  108. INSERT INTO Jezyki_obce_w VALUES('Komar','szwedzki','23.07.1911');
  109. INSERT INTO Jezyki_obce_w VALUES('Zyleta','angielski','23.09.1911');
  110. INSERT INTO Jezyki_obce_w VALUES('Bolek','francuski','31.05.1945');
  111.  
  112. SELECT * FROM Wampiry;
  113. SELECT * FROM Zlecenia;
  114. SELECT * FROM Dawcy;
  115. SELECT * FROM Donacje;
  116. SELECT * FROM Sprawnosci;
  117. SELECT * FROM Sprawnosci_w;
  118. SELECT * FROM Jezyki_obce;
  119. SELECT * FROM Jezyki_obce_w;
batman
Nie odrabiamy prac domowych.
Zamykam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.