Podstawy SQL i technologii relacyjnych baz danych
Transkrypt
Podstawy SQL i technologii relacyjnych baz danych
SQL i podstawy technologii relacyjnych baz danych Instrukcja do laboratorium Przygotowanie środowiska Instalacja oprogramowania Pobierz i zainstaluj przeglądarkę internetową Mozilla Firefox (jeśli jeszcze nie jest zainstalowana). Z menu programu Mozilla Firefox wybierz opcję Narzędzia → Dodatki, wyszukaj Rozszerzenie SQLite Manager i zainstaluj je. Po zainstalowaniu otwórz SQLite Manager wybierając opcję z menu Narzędzia. Przykładowa baza danych Informacje ogólne Relacyjna baza danych wykorzystywana podczas laboratorium zawiera strukturę i dane typowe dla prostej aplikacji służącej do zarządzania wypożyczaniem książek. Struktura bazy została przedstawiona na poniższym diagramie ERD: 1 Baza zawiera trzy tabele o następującej strukturze: Nazwa tabeli: ksiazka Nazwa Typ Not Wartość Klucz Null domyślna główny Opis ksID Integer 1 NULL 1 Identyfikator książki nazwAutora Varchar(50) 0 NULL 0 Nazwisko autora imieAutora Varchar(50) 0 NULL 0 Imię autora tytul Varchar(100) 0 NULL 0 Tytuł książki mscWyd Varchar(20) 0 NULL 0 Miejscowość wydania książki rokWyd Integer 0 NULL 0 Rok wydania książki liczbaStr Integer 0 NULL 0 Liczba stron książki Nazwa tabeli: klient Nazwa Typ Not Wartość Klucz Null domyślna główny Opis kID Integer 1 NULL 1 Identyfikator klienta nazw Varchar(50) 0 NULL 0 Nazwisko klienta imie Varchar(50) 0 NULL 0 Imię klienta mscZam Varchar(30) 0 NULL 0 Miejscowość zamieszkania klienta Nazwa tabeli: wypozyczenie Nazwa Typ Not Wartość Klucz Null domyślna główny Opis wID Integer 1 NULL 1 Identyfikator wypożyczenia ksID Integer 0 NULL 0 Identyfikator książki kID Integer 0 NULL 0 Identyfikator klienta dataWyp Date 1 NULL 0 Data wypożyczenia dataZwr Date 0 NULL 0 Data zwrotu 2 Tabela wypozyczenie jest tabelą pośrednią, która tworzy relację wiele-do-wielu pomiędzy tabelami ksiazka i klient. Wartości pól ksID i kID w tabeli wypozyczenie są związane kluczami obcymi z odpowiednimi polami w tabelach ksiazka i klient. Plik bazy danych Ze strony www.testcoast.com pobierz plik biblioteka.sqlite zawierający przykładową bazę danych w formacie SQLite, a następnie otwórz pobrany plik w programie SQLite Manager. Po otwarciu bazy w opcjach programu włącz kontrolę kluczy obcych (DB Settings → Foreign Keys → On → Change). Zadania Wybór danych z bazy Na podstawie przykładów przedstawionych przez prowadzącego oraz korzystając z instrukcji SELECT, napisz zapytania SQL, dla których wynikiem będą: 1. Imiona i nazwiska klientów zamieszkałych w Warszawie, posortowane według nazwisk malejąco. 2. Książki bez podanej liczby stron. 3. Nazwiska i imiona autorów oraz tytuły książek, które są obecnie wypożyczone. 4. Dane klientów, którzy przeczytali (wypożyczyli i oddali) książki dłuższe niż 300 stron. Operacje na zbiorach Na podstawie przykładów przedstawionych przez prowadzącego oraz korzystając z operacji na zbiorach, napisz zapytania SQL, dla których wynikiem będą: 1. Suma nazw miejscowości występujących w bazie danych. 2. Nazwiska klientów, którzy wypożyczyli zarówno „Wyspę skarbów”, jak i „Enigmę” 3. Nazwiska i imiona autorów oraz tytuły wszystkich książek, które nie były nigdy wypożyczone. Podzapytania Na podstawie przykładów przedstawionych przez prowadzącego oraz korzystając z podzapytań, napisz zapytania SQL, dla których wynikiem będą: 1. Wszystkie informacje o klientach, którzy kiedykolwiek wypożyczyli książki. 2. Wszystkie informacje o klientach, którzy nigdy nie wypożyczyli książki. 3. Imiona i nazwiska klientów, którzy wypożyczyli książki dłuższe niż 300 stron po 1 maja 2013 roku. 4. Wszystkie informacje o książkach napisanych przez klientów. 5. Wszystkie informacje o kliencie o najkrótszym nazwisku. 6. Książki wydane w XX wieku (podzapytanie w klauzuli FROM). 7. Wszystkie informacje o wypożyczeniu wraz z miejscowością zamieszkania wypożyczającego (podzapytanie w klauzuli SELECT). 3 Złączenia Na podstawie przykładów przedstawionych przez prowadzącego oraz korzystając ze złączeń, napisz zapytania SQL, dla których wynikiem będą: 1. Imię i nazwisko wypożyczającego, data wypożyczenia i data zwrotu (EXPLICIT JOIN). 2. Imię i nazwisko wypożyczającego, data wypożyczenia i data zwrotu (NATURAL JOIN). 3. Wszystkie książki z danymi wypożyczających. 4. Książki, które nie zostały wypożyczone. Funkcje agregujące Na podstawie przykładów przedstawionych przez prowadzącego oraz korzystając z funkcji agregujących, napisz zapytania SQL, dla których wynikiem będą: 1. Rok wydania najstarszej książki. 2. Średni wiek książki. 3. Liczba klientów zamieszkałych poza Warszawą. 4. Najdłuższe nazwiska klientów zamieszkałych w poszczególnych miejscowościach. 5. Nazwiska i imiona autorów oraz tytuły książek wypożyczonych więcej niż raz. Obsługa danych Na podstawie przykładów przedstawionych przez prowadzącego oraz korzystając z instrukcji DML, napisz zapytania SQL, dla których wynikiem będą: 1. Dodanie siebie samego do klientów bez podania miejscowości zamieszkania. 2. Przeprowadzenie Sławomira Czerwińskiego z Sompolna do Gdańska. 3. Usunięcie klienta Eugeniusza Kwiatkowskiego. 4