PRZYKŁADOWE ROZWIĄZANIE:
Kod SQL tworzący bazę:
CREATE DATABASE ksiegarnia;
USE ksiegarnia;
Tworzenie tabel:
CREATE TABLE klienci (
id_klienta INT(11) NOT NULL,
nazwisko VARCHAR(50) NOT NULL,
adres VARCHAR(100) NOT NULL,
miejscowosc VARCHAR(30),
PRIMARY KEY (id_klienta)
);
CREATE TABLE zamowienia (
id_zamowienia INT(11) NOT NULL AUTO_INCREMENT,
id_klienta INT(11) NOT NULL,
Wartosc FLOAT(6,2),
Data DATE,
PRIMARY KEY (id_zamowienia),
FOREIGN KEY (id_klienta) REFERENCES klienci(id_klienta)
);
CREATE TABLE ksiazki (
id_ksiazki INT(11) NOT NULL AUTO_INCREMENT,
isbn VARCHAR(13) NOT NULL,
autor VARCHAR(50) NOT NULL,
tytul VARCHAR(100) NOT NULL,
cena FLOAT(4,2),
PRIMARY KEY (id_ksiazki),
UNIQUE (isbn)
);
CREATE TABLE pozycje_zamowione (
id_pozycji INT(11) NOT NULL AUTO_INCREMENT,
id_zamowienia INT(11) NOT NULL,
id_ksiazki INT(11) NOT NULL,
ilosc INT NOT NULL,
PRIMARY KEY (id_pozycji),
FOREIGN KEY (id_zamowienia) REFERENCES zamowienia(id_zamowienia),
FOREIGN KEY (id_ksiazki) REFERENCES ksiazki(id_ksiazki)
);
CREATE TABLE recenzje (
id_recenzji INT(11) NOT NULL AUTO_INCREMENT,
id_ksiazki INT(11) NOT NULL,
autor_recenzji VARCHAR(100) NOT NULL,
recenzja TEXT NOT NULL,
PRIMARY KEY (id_recenzji),
FOREIGN KEY (id_ksiazki) REFERENCES ksiazki(id_ksiazki)
);
Wprowadzanie danych dla klientów:
INSERT INTO klienci (id_klienta, nazwisko, adres, miejscowosc) VALUES
(1, 'Jan Nowak', 'Kołobrzeska 12', 'Gdańsk'),
(2, 'Anna Michalak', 'Bydgoska 7a', 'Elbląg'),
(3, 'Sławomir Kowalski', 'Wojska Polskiego 39', 'Bydgoszcz'),
(4, 'Paweł Kowalewski', 'Żołnierska 1', 'Mrągowo'),
(5, 'Zuzanna Aleksandrowicz', 'Mazurska 112', 'Olsztyn');
Wprowadzanie danych dla książek
INSERT INTO ksiazki (isbn, autor, tytul, cena) VALUES
('83-7361-925-9', 'Tomasz Francuz', 'Zagadnienia maturalne z informatyki', 29.00),
('978-83-283-25', 'Ryan Stephans', 'SQL w 24 godziny', 69.00),
('987-83-267-21', 'Krzysztof Czarkowski', 'E14. Tworzenie baz danych i administrowanie bazami', 35.00),
('987-83-283-08', 'Robin Nixon', 'PHP, MySQL i JavaScript', 99.00);
Wprowadzanie danych dla zamówień
INSERT INTO zamowienia (id_klienta, wartosc, data) VALUES
(5, 198.00, '2018-12-12'),
(3, 69.00, '2018-12-03'),
(4, 168.00, '2019-01-22'),
(5, 87.00, '2018-12-07');
Wprowadzanie danych dla pozycji zamówionych
Przyjmujemy, że id_ksiazki są przypisane kolejno według wstawienia.
INSERT INTO pozycje_zamowione (id_zamowienia, id_ksiazki, ilosc) VALUES
(1, 4, 2),
(2, 2, 1),
(3, 2, 1),
(4, 4, 1);
Wprowadzanie danych dla recenzji
Przyjmujemy, że id_ksiazki dla '978-83-283-25' to 2.
INSERT INTO recenzje (id_ksiazki, autor_recenzji, recenzja) VALUES
(2, 'Jan Nowak', 'Pozycja ta bardzo pomogła w zrozumieniu zasad posługiwania się językiem SQL.');
Wioletta Wysopal
Nauczycielka informatyki
Tutaj pojawi się lista Twoich książek
Zaloguj się i zacznij tworzyć ją już teraz.

