Księgarnia Internetowa
description
Transcript of Księgarnia Internetowa
![Page 1: Księgarnia Internetowa](https://reader036.fdocuments.pl/reader036/viewer/2022083012/56815b60550346895dc9460c/html5/thumbnails/1.jpg)
KSIĘGARNIA INTERNETOWA
Projektowanie bazy danych
Anna TomkowskaPolitechnika Koszalińska
![Page 2: Księgarnia Internetowa](https://reader036.fdocuments.pl/reader036/viewer/2022083012/56815b60550346895dc9460c/html5/thumbnails/2.jpg)
zamowienianr_zam
id_klient
data
PROJEKTOWANIE BAZY
klienci książki
zamówienia
identyfikator imię i nazwisko adres nr tel.
ISBN autor i tytuł cena opis
numer zamówienia kto zamówił co zamówił i ile data
klienciid_klient
nazwisko
ulica
miejscowosc
ksiazkiisbn
autor
tytul
cena
opis
Klienci1 Jankowski Boczna 10 Jankowo
2 Adamska Sportowa 5 Adamowo
3 Kowalski Sosnowa 2/24 Wrocław
ksiazki
P-456-22 Ch. Petzold Programowanie MS Windows
105 To kolejne wydanie znakomitego podręcznika Charlesa Petzolda Programowanie Windows - tym razem w języku C#.
P-567-33 S.C. Perry C# i .NET 99
P-345-22 L. Ullman MySQL. Szybki start. 57 MySQL to system zarządzania bazami danych, dostępny na licencji open-source. Swoimi możliwościami nie ustępuje w niczym potężnym komercyjnym systemom.
NIE WYDAJNE
ksiazki
P-456-22 Ch. Petzold Programowanie MS Windows
105 1
P-567-33 S.C. Perry C# i .NET 99 0
P-345-22 L. Ullman MySQL. Szybki start. 57 2
opisy
1 To kolejne wydanie znakomitego podręcznika Charlesa Petzolda Programowanie Windows – tym …
2 MySQL to system zarządzania bazami danych, dostępny na licencji open-source. Swoimi …
opisyid_opis
opisid_opis
Relacja 1 - 1
zamowienianr_zam
id_klient
isbn
ilosc
data
zamowienia
1 1 P-456-22 3 2008-03-04
2 3 P-567-33 1 2008-03-08
3 1 P-345-22 1 2008-03-12
Relacja 1- nRelacja 1- n
ksiazki
P-456-22 Ch. Petzold …
P-567-33 S.C. Perry …
P-345-22 L. Ullman …
klienci1 Jankowski …
2 Adamska …
3 Kowalski …
zam_pozycjenr_zam
isbn
ilosc
zamowienia
1 1 2008-03-04
2 3 2008-03-08
3 1 2008-03-12
zam_pozycje
1 P-456-22 3
2 P-567-33 1
2 P-345-22 1
![Page 3: Księgarnia Internetowa](https://reader036.fdocuments.pl/reader036/viewer/2022083012/56815b60550346895dc9460c/html5/thumbnails/3.jpg)
PROJEKT BAZY
klienciid_klient
nazwisko
ulica
miejscowosc
zamowienianr_zam
id_klient
data
zam_pozycjenr_zam
isbn
ilosc
ksiazkiisbn
autor
tytul
cena
id_opis
opisyid_opis
opis
∞∞
∞
1
1
1
1
1
![Page 4: Księgarnia Internetowa](https://reader036.fdocuments.pl/reader036/viewer/2022083012/56815b60550346895dc9460c/html5/thumbnails/4.jpg)
PRZYKŁADOWE DANEklienci
id_klient
nazwisko
ulica
miejscowosc
zamowienianr_zam
id_klient
datazam_pozycje
nr_zam
isbn
ilosc
ksiazkiisbn
autor
tytul
cena
id_opis opisyid_opis
opis
klienci1 Jankowski …
2 Adamska …
3 Kowalski …
zamowienia1 1 2008-03-04
2 3 2008-03-08
3 1 2008-03-12
zam_pozycje1 P-456-22 3
2 P-567-33 1
2 P-345-22 1
opisy1 To kolejne wydanie znakomitego podręcznika
Charlesa Petzolda Programowanie Windows …
2 MySQL to system zarządzania bazami danych, dostępny na licencji open-source. Swoimi …
ksiazkiP-456-22 Ch. Petzold … 1
P-567-33 S.C. Perry … 0
P-345-22 L. Ullman … 2
∞∞
∞
1 1
11
1
![Page 5: Księgarnia Internetowa](https://reader036.fdocuments.pl/reader036/viewer/2022083012/56815b60550346895dc9460c/html5/thumbnails/5.jpg)
STOSOWANIE MYSQLMySQL jest jednym z najpopularniejszych z wolnodostępnych silników relacyjnych baz danych.
Przed przystąpieniem do pracy :• pobierz z internetu i zainstaluj najnowszą wersję MySQL• określ hasło administratora• uruchom serwer MySQL
Po zalogowaniu się do serwera możemy przystąpić do pracy.
![Page 6: Księgarnia Internetowa](https://reader036.fdocuments.pl/reader036/viewer/2022083012/56815b60550346895dc9460c/html5/thumbnails/6.jpg)
SKŁADNIA SQLCREATE DATABASE, GRANT, REVOKESQL – strukturalny język zapytań. Jest najbardziej rozpowszechniony standaryzowany język dostępu do systemów zarządzania relacyjnymi bazami danych (RDBMS)
Tworzenie bazy danychCREATE DATABASE nazwa_bazy Definiowanie użytkowników i przywilejówGRANT przywileje [kolumny]ON obiektTO identyfikator użytkownika [IDENTIFIED BY ‘haslo’][WITH [GRANT OPTION | ograniczenia]]Przywileje:SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, DROP, ALL Odbieranie przywilejów użytkownikomREVOKE przywileje [kolumny]ON obiektFROM identyfikator użytkownika
![Page 7: Księgarnia Internetowa](https://reader036.fdocuments.pl/reader036/viewer/2022083012/56815b60550346895dc9460c/html5/thumbnails/7.jpg)
SKŁADNIA SQL CREATE DATABASE, GRANT, REVOKE - PRZYKŁAD Tworzenie bazy danychCREATE DATABASE ksiegarnia
Definiowanie użytkowników i przywilejówGRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, DROPON ksiegarnia.*TO Janek IDENTIFIED BY ‘Jan75B’
Odbieranie przywilejów użytkownikomREVOKE ALTER, CREATE, DROPON ksiegarnia.*FROM Janek
![Page 8: Księgarnia Internetowa](https://reader036.fdocuments.pl/reader036/viewer/2022083012/56815b60550346895dc9460c/html5/thumbnails/8.jpg)
SKŁADNIA SQLUSE, CREATE TABLE Używanie odpowiedniej bazy danychUSE nazwa_bazy
Tworzenie tabel bazy danychCREATE TABLE nazwa_tabeli(kolumny)
dodarkowe atrybuty kolumn:NOT NULL, AUTO_INCREMENT, PRIMARY KEY, UNSIGNEDTypy kolumn:INT, TINYINT, CHAR(n), FLOAT(m,d), DATE, TEXT
![Page 9: Księgarnia Internetowa](https://reader036.fdocuments.pl/reader036/viewer/2022083012/56815b60550346895dc9460c/html5/thumbnails/9.jpg)
SKŁADNIA SQL USE, CREATE TABLE - PRZYKŁAD Używanie odpowiedniej bazy danychUSE ksiegarnia
Tworzenie tabel bazy danychCREATE TABLE klienci( id_klient int unsigned not null auto_increment primary key, nazwisko char(50) not null, adres char(100) not null, miejscowosc char(30) not null );
CREATE TABLE zamowienia( nr_zam int unsigned not null auto_increment primary key, id_klient int unsigned not null , data date not null );
CREATE TABLE zam_pozycje( nr_zam int unsigned not null, isbn char(8) not null , ilosc tinyint unsigned ,Primary key(nr_zam, isbn) );
![Page 10: Księgarnia Internetowa](https://reader036.fdocuments.pl/reader036/viewer/2022083012/56815b60550346895dc9460c/html5/thumbnails/10.jpg)
SKŁADNIA SQL SHOW TABLES, SHOW DATABASE, DESCRIBE
Przeglądanie istniejących baz SHOW DATABASES;
Przeglądanie tabel w wybranej bazieSHOW TABLES;
Szczegółowe informcje o tabeliDESCRIBE nazwa_tabeli
![Page 11: Księgarnia Internetowa](https://reader036.fdocuments.pl/reader036/viewer/2022083012/56815b60550346895dc9460c/html5/thumbnails/11.jpg)
SKŁADNIA SQL INSERT
Zapisywanie danych do bazyINSERT [INTO] nazwa_tabeli [ (kolumna1, kolumna2,…) ] VALUES (wartosc1,wartosc2,…);
Dopiszmy nowego klienta:INSERT INTO klienci VALUES (NULL,’Jan Nowak’,’Sportowa 5’,’Janków’);lub:INSERT INTO klienci (nazwisko,miejscowosc,adres) VALUES (’Jan Nowak’, ’Janków’,’Sportowa 5’);lub:INSERT INTO klienci set nazwisko= ’Jan Nowak’, adres= ’Sportowa 5’,miejscowosc= ’Janków’;
![Page 12: Księgarnia Internetowa](https://reader036.fdocuments.pl/reader036/viewer/2022083012/56815b60550346895dc9460c/html5/thumbnails/12.jpg)
SKŁADNIA SQL SELECT
Wyszukiwanie danych w bazieSELECT [opcje] pozycje[ INTO plik ]FROM nazwy_tabel[WHERE warunek ][GROUP BY rodzaj_grupowania ] [HAVING wartosc_funkcji ] [ORDER BY porządek_sortowania][LIMIT limit]
Wyświetlmy wszystkich klientów:SELECT * FROM klienci;SELECT nazwisko, miejscowosc FROM klienci;
![Page 13: Księgarnia Internetowa](https://reader036.fdocuments.pl/reader036/viewer/2022083012/56815b60550346895dc9460c/html5/thumbnails/13.jpg)
SKŁADNIA SQL SELECT – PRZYKŁADY
Wyszukiwanie danych spełniających określone kryteriaSELECT * FROM klienci WHERE id_klient = 3;
SELECT * FROM zamowienia WHERE id_klient = 3 or id_klient = 2;
SELECT nazwisko FROM klienci WHERE nazwisko LIKE ‘%Now%’;
![Page 14: Księgarnia Internetowa](https://reader036.fdocuments.pl/reader036/viewer/2022083012/56815b60550346895dc9460c/html5/thumbnails/14.jpg)
SKŁADNIA SQL SELECT – PRZYKŁADY
Wyszukiwanie danych w wielu tabelech
Wyszukaj zamówienie Jana Nowaka i wyświetl jego numer i datę.SELECT zamowienia.nr_zam, zamowienia.dataFROM klienci, zamowienia WHERE klienci.nazwisko= ‘Jan Nowak’AND klienci.id_klient = zamowienia.id_klient;
Wyświetl isbn ksiązek jakie zostały zakupione przez klientów z Koszalina.SELECT zam_pozycje.isbnFROM klienci, zamowienia, zam_pozycje. WHERE klienci.miejscowosc= ‘Koszalin’AND klienci.id_klient = zamowienia.id_klient;AND zamowienia.nr_zam = zam_pozycje. nr_zam ;