"description":"bazy przechowującej zamówienia sklepu internetowego. Baza śledzić ma konta użytkowników i złożone przez nich zamówienia. Pamiętaj, że każde zamówienie składa się z możliwie wielu pozycji, oraz informacji rozliczeniowych, transportowych (wraz z płatnością za transport).",
"min_tables":"3",
"min_fields":"5"
"sql":"wszystkich nazw towarów zamówionych kiedykolwiek przez konkretnego użytkownika"
},
{
"description":"bazy przechowującej wizyty pacjentów w przychodni POZ. Baza ma śledzić pacjentów, lekarzy, recepcjonistek oraz umówione terminy wizyt. Pamiętaj że to recepcjonistka umawia wizytę konkretnego pacjenta do konkretnego lekarza na konkretny termin.",
"min_tables":"4",
"min_fields":"4"
"sql":"listę wszystkich terminów wizyt konkretnego pacjenta, wraz z nazwiskiem lekarza i recepcjonistki"
},
{
"desciption":"bazy rejestrującej rezerwację miejsc w kinach. Baza ma śledzić sale kinowe, seanse oraz rezerwacje miejsc.",
"min_tables":"3",
"min_fields":"5"
"sql":"listę wszystkich rezerwacji w historii danej sali, wraz z nazwą seansu"
},
{
"description":"bazy rejestrującej wypożyczenia książek. Baza ma śledzić książki, czytelników oraz wypożyczenia. Czym różni się książka jako pozycja wydawnicza od książki jako fizycznego bytu?",
"min_tables":"3",
"min_fields":"5"
"sql":"listę wszystkich wypożyczeń konkretnego czytelnika, wraz z tytułami książek"
},
{
"description":"bazy rejestrującej rezerwację sal na egzaminy. Baza ma śledzić przedmioty, sale i rezerwację tychże. Upewnij się, aby jeden termin w sali nie mógł zostać zarezerwowany więcej niż jeden raz!",
"min_tables":"3",
"min_fields":"5"
"sql":"listę wszystkich terminów egzaminu na konkretny przedmiot, wraz z informacją w której sali się odbywa"
},
{
"description":"bazy komputerowego dziennika szkolnego. Baza ma śledzić klasy, uczniów, oceny i przedmioty.",
"min_tables":"4",
"min_fields":"4"
"sql":"listę wszystkich ocen danego ucznia, wraz z nazwami przedmiotów"
},
{
"description":"bazy przechowującej informacje o kierowcach, pojazdach oraz mandatach. Musi ona śledzić kierowców, pojazdy, mandaty oraz przeglądy techniczne pojazdów.",
"min_tables":"4",
"min_fields":"3"
"sql":"listę wszystkich mandatów konkretnego kierowcy"
},
{
"description":"bazy rejestrującej sprzedaże w hipermarkecie. Musi ona zawierać informację o towarach, które market oferuje, a także o datach konkretnych paragonów i ich zawartościach. Dane na temat klientów z oczywistych względów nie są dostępne.",
"min_tables":"3",
"min_fields":"3"
"sql":"listę wszystkich paragonów, na których figuruje dany towar"
@@ -54,19 +54,55 @@ Kliknij Tabele, a następnie _Utwórz tabelę_. Tu postępuj już zgodnie z wyty
Będziesz musiał zapoznać się z tabelą typów PostgreSQL. Zestawienie takie można znaleźć chociażby [tu](http://student.agh.edu.pl/~winiczuk/postgres.html).
Upewnij się, że ustawiasz klucz podstawowy. Kluczami obcymi na razie się nie przejmuj.
Skonfiguruj wszystkie zaprojektowane przez siebie tabele.
Zamieść w sprawozdaniu definicję tabel przy użyciu poleceń CREATE TABLE.
Wykonaj to jako zadanie domowe.
Po wykonaniu zadania, przejdź dalej.
# Dodawanie rekordów
Po dodaniu tabeli będzie ona widoczna na liście po lewej stronie. Kliknij na tabelę, na następnie na *Wstaw*. W ten sposób
dodać możesz kilka rekordów. Uzupełnij wszystkie tabele przynajmniej po 3 rekordami, a wybraną 10 rekordami.
dodać możesz kilka rekordów.
Uzupełnij wszystkie tabele przynajmniej po 3 rekordami, a wybraną 10 rekordami.
Zamieść w sprawozdaniu komendy SQL dodające rekordy (INSERT ..)
Wykonaj to jako zadanie domowe.
# Zapytanie!
Zapytania SQL pozwalają wybrać konkretne dane. Na przykład `SELECT * FROM tabela` pokazuje nam zawartość
całej tabeli. Każde zapytanie SQL jest zawsze skierowane do **jakiejś** bazy danych, tak więc najpierw wybierz
swoją, a następnie kliknij SQL.
Spróbuj wybrać wszystkie rekordy ze swojej tabeli. Zrób to zapytaniem `SELECT * FROM nazwatabeli`.
Twoim celem na tym laboratorium jest napisanie zapytania SQL które umożliwi pobranie $sql$.
Wymagane będzie użycie klauzuli **JOIN**. Dodawaj rekordy tak, aby w wyniku otrzymać
przynajmniej 6 rekordów.
Przydatne zasoby:
*[jak działa JOIN](http://www.sqlpedia.pl/laczenie-tabel-sql/)
*[jak działa JOIN bis](http://funkcje.net/nsc/4/2867/3/38/page.html)
*[przykłady JOIN w PostgreSQL](http://home.agh.edu.pl/~ligeza/wiki/_media/bazydanych:sql-wyzwalacze-reguly-funkcje.pdf?id=bazydanych%3Awyklady&cache=cache)
(oraz masy innych rzeczy, dla nas nieistotnych)
Przygotuj i wykonaj takie zapytanie.
Zamieść w sprawozdaniu zapytanie i zrzut ekranu z wynikiem.
**Zanim zakończysz pracę, skonsultuj swoje wyniki z prowadzącym!**
# Wyślij sprawozdanie
_Fast fertig_! Zapisz i wyślij swoje sprawozdanie. Jeśli masz problem z wklejeniem zdjęcia zrobionego
_Fast fertig_! Zapisz swoje sprawozdanie. Niektóre zadania musisz wykonać w domu.
Jeśli masz problem z wklejeniem zdjęcia zrobionego
z telefonu to wyślij sprawozdanie później. Jeśli nie masz takiego telefonu, wykorzystaj kolegę.
Wyślij je na adres sprawozdania@henrietta.com.pl.
...
...
@@ -77,20 +113,11 @@ z telefonu to wyślij sprawozdanie później. Jeśli nie masz takiego telefonu,
więc nie pisz "Projekt Adam Nowak".
Podejście takie będzie aktywnie penalizowane.
Twoim zadaniem domowym jest nauczenie się języka SQL. Nauczyć musisz się przynajmniej poleceń:
*`SELECT`
*`INSERT`
*`UPDATE`
*`DELETE`
*`CREATE TABLE`
Szczególną uwagę poświęć klauzulom `WHERE` oraz `LEFT JOIN`.
Ich znajomość będzie sprawdzona na przyszłych zajęciach, gdzie będziesz implementować swój schemat
bazy w języku SQL oraz pisać do niej zapytania.
Baza danych i interfejs będą dostępne po zajęciach. Przez ile - pytaj prowadzącego.
Teraz idź korzystać z dobrej/złej pogody, bo na weekendzie ma kropić.
Na następnym spotkaniu (1.06) mamy zaliczenie. Zagadnienia obejmują wszystko to,
co było ujęte w instrukcjach. W szczególności gwarantowane są zadania z: