Księgarnia Internetowa
description
Transcript of Księgarnia Internetowa
KSIĘGARNIA INTERNETOWA
Projektowanie bazy danych
Anna TomkowskaPolitechnika Koszalińska
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
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
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
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.
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
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
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
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) );
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
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’;
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;
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%’;
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 ;