SQL-Tworzenie bazy danych

0

Witam, mam problem a mianowicie jestem zagrożony z baz danych, które nie najlepiej rozumiem. Proszę o pomoc w zadaniach, które przesłała mi moja nauczycielka:
Uruchom Xampp.
Stwórz bazę danych o nazwie Biblioteka.
Zaimportuj do bazy plik baza_zad1.sql .
Zapoznaj się ze strukturą bazy danych. Składają się na nią trzy tabele: autorzy, egzemplarze oraz ksiazki. Każda z nich ma klucz główny rozpoczynający się od „ID”, np. IDAutor. Tabela egzemplarze ma ponadto klucz obcy KsiazkaID połączony relacja z kluczem głównym tabeli ksiazki. Tabela ksiazki ma klucz obcy AutorID połączony z kluczem głównym tabeli autorzy. W polu DoWypozyczenia tabeli egzemplarze przechowywane są dane typu logicznego przyjmujące wartość „1”, jeżeli książkę można wypożyczyć oraz „0”, jeżeli książka jest wypożyczona.
Korzystając z zakładki SQL, przygotuj zapytania do bazy i wykonaj je. Kwerendy zapisz w pliku kwerendy.txt w podfolderze baza. Lista kwerend do zdefiniowania:
a. zwrócenie tytułów książek z wydawnictwa Ossolineum,
b. zwrócenie wszystkich tytułów wraz z nazwiskiem autora, jakie znajdują się w bazie,
c. zwrócenie numeru egzemplarza książki i jej tytułu dla tych książek, które zostały wypożyczone,
d. Dodanie rekordu do tabeli autorzy z danymi: ID – 3, Adam Asnyk.
Stwórz bazę danych o nazwie Biblioteka.
Zaimportuj do bazy plik baza_zad1.sql rozpakowany z archiwum zad1.zip.
Zapoznaj się ze strukturą bazy danych. Składają się na nią trzy tabele: autorzy, egzemplarze oraz ksiazki. Każda z nich ma klucz główny rozpoczynający się od „ID”, np. IDAutor. Tabela egzemplarze ma ponadto klucz obcy KsiazkaID połączony relacja z kluczem głównym tabeli ksiazki. Tabela ksiazki ma klucz obcy AutorID połączony z kluczem głównym tabeli autorzy. W polu DoWypozyczenia tabeli egzemplarze przechowywane są dane typu logicznego przyjmujące wartość „1”, jeżeli książkę można wypożyczyć oraz „0”, jeżeli książka jest wypożyczona.
Korzystając z zakładki SQL, przygotuj zapytania do bazy i wykonaj je. Kwerendy zapisz w pliku kwerendy.txt w podfolderze baza. Lista kwerend do zdefiniowania:
a. zwrócenie tytułów książek z wydawnictwa Ossolineum,
b. zwrócenie wszystkich tytułów wraz z nazwiskiem autora, jakie znajdują się w bazie,
c. zwrócenie numeru egzemplarza książki i jej tytułu dla tych książek, które zostały wypożyczone,
d. Dodanie rekordu do tabeli autorzy z danymi: ID – 3, Adam Asnyk.
Dodaj tabelę czytelnicy o polach
a. IDCzytelnik, klucz główny,Nazwisko, Imie, Adres, Miasto, KodPocztowy, typu text, DataZapisania, typu data,Blokada, typu logicznego (Tak/Nie).
5. Dodaj tabelę wypożyczenia o polach:
a. EgzemplarzID, klucz główny łączący się relacją 1:1 z tabelą egzemplarze
b. CzytelnikID, klucz obcy łączący się relacją 1:n z tabelą czytelnicy,
c. DataWypoz, typu data.
Dodaj tabelę zamowienia o polach:
a. EgzemplarzID, klucz główny łączący się relacją 1:1 z tabelą egzemplarze
b. CzytelnikID, klucz obcy łączący się relacją 1:n z tabelą czytelnicy,
c. DataZamowienia, typu data.

Jeśli ktoś zechce mi pomóc to mam prośbę, razem z kodem proszę o wytłumaczenie ponieważ chciałbym się czegoś nauczyć, pozdrawiam.

0

To też z 1 klasy technikum?

1

Pomogę Ci trochę

  1. Odpalasz xampp-a (zakładam, że wiesz jak to zrobić) i przechodzisz na zakładkę

screenshot-20200322122022.png

  1. Stwórz bazę danych biblioteka - w tej zakładce wklejasz poniższe polecenie:
create DATABASE `biblioteka` DEFAULT CHARACTER SET utf8 COLLATE utf8_polish_ci
  1. Importujesz bazę klikając

screenshot-20200322122202.png

potem

screenshot-20200322122233.png

  1. Co do pozostałych pytań

a. zwrócenie tytułów książek z wydawnictwa Ossolineum,

SELECT `Tytul`, `Wydawnictwo` FROM `ksiazki` WHERE `Wydawnictwo`='Ossolineum'

wynik

screenshot-20200322125532.png

b. zwrócenie wszystkich tytułów wraz z nazwiskiem autora, jakie znajdują się w bazie,

SELECT 
`ksiazki`.`Tytul`,
`autorzy`.`Imie`,
`autorzy`.`Nazwisko`
FROM 
`ksiazki`
INNER JOIN
`autorzy`
ON
`autorzy`.`IDAutor`=`ksiazki`.`AutorID`

wynik

screenshot-20200322125451.png

c. zwrócenie numeru egzemplarza książki i jej tytułu dla tych książek, które zostały wypożyczone,

SELECT
`egzemplarze`.`IDEgzemplarz`,
`ksiazki`.`Tytul`
FROM
`egzemplarze`
INNER JOIN
`ksiazki`
ON
`egzemplarze`.`KsiazkaID`=`ksiazki`.`IDKsiazki`
WHERE
`egzemplarze`.`DoWypozyczenia`='0'

wynik

screenshot-20200322131236.png

teraz omówienie o co chodzi w tym kodzie, nie wiem jak mi to wyjdzie bo nie jestem dydaktykiem

SELECT <- w skrócie WYBIERZ
`egzemplarze`.`IDEgzemplarz`, <- pierwsze od lewej, wskazujesz tabelę, potem pole które chcesz aby zostało zwrócone w wynikach
`ksiazki`.`Tytul` <- j/w
FROM <- w skrócie Z ---- czyli WYBIERZ Z
`egzemplarze` <- wskazujesz tabelę z której chcesz wybrać interesujące cię pola
INNER JOIN <- tutaj następuje złączenie obu tabel, ponieważ każda z nich zawiera w sobie klucz obcy innej tabeli, ten klucz obcy odnosi się do danych znajdujących się w drugiej tabeli
`ksiazki` <- wskazujesz tabelę którą chcesz złączyć, musisz wiedzieć które z tabel są ze sobą powiązane tj która z którą dzieli ze sobą dane
ON <- nie wiem jak to nazwać ale ogólnie rzecz biorąc po tym słówku czy jak to tam zwać musisz poniżej wskazać które konkrente dane wybrać do złączenia
`egzemplarze`.`KsiazkaID`=`ksiazki`.`IDKsiazki` <- no i tutaj te dane wskazujesz
WHERE <- w skrócie GDZIE
`egzemplarze`.`DoWypozyczenia`='0' <- tutaj dajesz warunek na polski język --- GDZIE pole 'DoWypozyczenia' zawiera ZERO

po ludzku można to całe zapytanie streścić tak -> wybierz pola, IDEgzemplarz i tytul które znajdują się w tabeli egzemplarze i połącz te pola z tabelą książki, w których pole KsiazkaID w tabeli egzmplarze odpowiada polu IDKsiazki w tabeli ksiazki gdzie te pola jednocześnie zawierają wartość ZERO w polu DoWypozyczenia w tabeli egzemplarze - mam nadzieję, że nic nie pomyliłem ale coś w tym stylu należy rozumieć

d. Dodanie rekordu do tabeli autorzy z danymi: ID – 3, Adam Asnyk.

ostatnie zostawię dla ciebie i posługujesz się zapytaniem INSERT INTO - poszukaj na necie jak to się używa. Wiem, że możesz nie lubić baz danych ale może kiedyś polubisz i będziesz całkiem niezły w te klocki

1 użytkowników online, w tym zalogowanych: 0, gości: 1