Witam, próbuje się nauczyć baz danych, ale to nie jest dla mnie takie proste. Rozwiązuje zadania i mam problem z niektórymi, szczególnie z tymi gdzie trzeba połączyć tabele zgodnie z kluczem obcym, nie rozumie na czym to polega. Gdyby ktoś pomógł mi wyjaśnić i sprawdzić czy zadania są dobrze wykonane, to będę wdzięczny.
Moja baza wygląda następująco:
W tabeli uczniowie są następujące kolumny:nr_leg, imie, nazwisko, data_urodzenia, ulica, nr_domu, nr_mieszkania, kod_pocztowy oraz miejscowość.
W tabeli oceny są następujące kolumny:id_oceny, nr_leg, id_zajec, ocena, data_oceny.
W tabeli zajecia są następujące kolumny:id_zajec, nazwa_przedmiotu.
Zadania:
1. Wszystkie rekordy z tabel uczniowie i oceny połączonych zgodnie z kluczem obcym - wiersz ucznia jest łączony z każdą oceną tego ucznia.
2. Wszystkie rekordy z tabel uczniowie i przedmioty połączonych każdy uczeń z każdym przedmiotem.
3. Wszystkie rekordy z tabel uczniowie i oceny połączonych zgodnie z kluczem obcym.
4. Wszystkie rekordy z tabel uczniowie, oceny i przedmioty połączonych zgodnie z kluczem obcym.
5. Imiona, nazwiska, przedmioty i oceny przy czym tabele uczniowie, przedmioty oceny należy połączyć zgodnie z kluczem obcym.
Moje rozwiązania (nie wiem czy dobrze, a raczej coś jest źle, bo dwa zadania zrobiłem tak samo).
1.SELECT * FROM uczniowie U , oceny O WHERE U.nr_leg = O.nr_leg;
2.SELECT * FROM uczniowie, zajecia;
3.SELECT * FROM uczniowie U, oceny O WHERE U.nr_leg=O.nr_leg;
4.SELECT * FROM uczniowie U, oceny O, zajecia Z WHERE U.nr_leg=O.nr_leg AND O.id_zajec=Z.id_zajec;
5.SELECT imie, nazwisko, nazwa_przedmiotu, ocena FROM uczniowie U, oceny O, zajecia Z WHERE U.nr_leg=O.nr_leg AND O.id_zajec=Z.id_zajec;
[SQL] Zadania, klucz obcy
[SQL] Zadania, klucz obcy
Tabela uczniowe jest połączona relacją 1 - wiele z tabelą oceny, natomiast tabela zajęcia jest połączona z tabelą oceny relacją 1 - wiele. Wygląda to tak:
Aby zdefiniować połączenie pomiędzy tabelami uczniowie i oceny musimy wykonać polecenie:
pomiędzy zajęcia, a oceny:
Co do rozwiązań:
1. OK
2. OK
3 - OK
4 - OK
5 - OK
Aby zdefiniować połączenie pomiędzy tabelami uczniowie i oceny musimy wykonać polecenie:
Kod: Zaznacz cały
alter table oceny add constraint fk_id_leg foreign key(nr_leg) references uczniowie(nr_leg
Kod: Zaznacz cały
alter table oceny add constraint fk_id_zaj foreign key(id_zajec) references zajecia(id_zajec)
1. OK
2. OK
3 - OK
4 - OK
5 - OK
-
- Użytkownik
- Posty: 111
- Rejestracja: 21 cze 2007, o 20:59
- Płeć: Mężczyzna
- Lokalizacja: Szczebrzeszyn
- Podziękował: 19 razy
- Pomógł: 14 razy
[SQL] Zadania, klucz obcy
Ja tych kodów definiujących połączenia nie rozumiem, bo tego nie miałem na zajęciach.
Jeżeli chodzi o zadania to zadania 1 i 3 mają nieco inną treść, a ja rozwiązania do nich napisałem takie samo, więc nie wydaje mi się aby to było dobrze.
Jeżeli chodzi o zadania to zadania 1 i 3 mają nieco inną treść, a ja rozwiązania do nich napisałem takie samo, więc nie wydaje mi się aby to było dobrze.
[SQL] Zadania, klucz obcy
No może minimalnie, zatem poczytaj o UNION.
Btw. Skoro tego na zajęciach nie miałeś ( relacji, prostych relacji ) to te zapytania w takim razie nie mają sensu, bo po co pisać coś czego się nie rozumie.
Btw. Skoro tego na zajęciach nie miałeś ( relacji, prostych relacji ) to te zapytania w takim razie nie mają sensu, bo po co pisać coś czego się nie rozumie.