Gdy Twój wizualny schemat w DrawDB jest gotowy, musisz zamienić go na kod SQL. To najważniejszy moment – Twoje rysunki staną się prawdziwą bazą!
Teraz czas na test Twojego projektu. Jeśli dobrze połączyłeś tabele, wszystko zadziała bez błędów:
Twoje tabele są na razie puste. Aby mieć na czym pracować, skopiuj i uruchom (Run) poniższy kod, który doda kilka rekordów:
INSERT INTO producenci VALUES (1, 'CD Projekt Red', 'Polska'), (2, 'Rockstar Games', 'USA');
INSERT INTO gry VALUES (1, 'Wiedźmin 3', 99.99, 1), (2, 'Cyberpunk 2077', 149.00, 1), (3, 'GTA V', 80.00, 2);
INSERT INTO gatunki VALUES (1, 'RPG'), (2, 'Akcja'), (3, 'Otwarty Świat');
INSERT INTO gry_gatunki VALUES (1, 1), (1, 3), (2, 1), (2, 3), (3, 2), (3, 3);
Sprawdźmy, czy potrafisz odczytać informacje ze swojej bazy. Wykonaj poniższe zadania:
SELECT tytul, cena FROM gry;
SELECT gry.tytul, producenci.nazwa_studia FROM gry JOIN producenci ON gry.id_producenta = producenci.id_producenta;
To zapytanie pokaże, czy poprawnie stworzyłeś tabelę łączącą w DrawDB:
SELECT gry.tytul, gatunki.nazwa_gatunku FROM gry JOIN gry_gatunki ON gry.id_gry = gry_gatunki.id_gry JOIN gatunki ON gry_gatunki.id_gatunku = gatunki.id_gatunku;
Twoja baza gier działa. Sprawdźmy, jak zadawać jej pytania:
SELECT tytul, cena FROM gry;
SELECT gry.tytul, producenci.nazwa_studia FROM gry JOIN producenci ON gry.id_producenta = producenci.id_producenta;
To zapytanie łączy trzy tabele, aby pokazać tytuł gry i jej gatunek:
SELECT gry.tytul, gatunki.nazwa_gatunku FROM gry JOIN gry_gatunki ON gry.id_gry = gry_gatunki.id_gry JOIN gatunki ON gry_gatunki.id_gatunku = gatunki.id_gatunku;
Sukces! Właśnie przeszedłeś drogę od rysunku do działającej bazy danych.
Jeśli masz problem z eksportem z DrawDB, możesz użyć poniższego kodu, aby przygotować tabele w symulatorze:
CREATE TABLE producenci (id_producenta INTEGER PRIMARY KEY, nazwa_studia TEXT, kraj TEXT);
CREATE TABLE gry (id_gry INTEGER PRIMARY KEY, tytul TEXT, cena DECIMAL, id_producenta INTEGER, FOREIGN KEY(id_producenta) REFERENCES producenci(id_producenta));
CREATE TABLE gatunki (id_gatunku INTEGER PRIMARY KEY, nazwa_gatunku TEXT);
CREATE TABLE gry_gatunki (id_gry INTEGER, id_gatunku INTEGER, FOREIGN KEY(id_gry) REFERENCES gry(id_gry), FOREIGN KEY(id_gatunku) REFERENCES gatunki(id_gatunku));