Projektowanie bazy danych identyfikator imię i nazwisko adres nr tel. numer zamówienia kto zamówił co zamówił i ile data zamowienia klienci id_klient Relacja 1- n id_klient ulica miejscowosc Klienci ksiazkiklienci zamowienia zamowienia 1 Jankowski P-456-22 Ch. Petzold ksiazki 1 1 P-456-22 1 1 2008-03-04 2 Adamska P-456-22 Ch. Petzold 3 P-567-33 2 3 2008-03-08 P-567-33 S.C. Perry 1 P-345-22 3 Kowalski 3 1 2008-03-12 P-345-22 S.C. L. Ullman P-567-33 Perry P-345-22 L. Ullman ksiazki nr_zam nazwisko ISBN autor i tytuł cena opis Relacja 1- n isbn zam_pozycje autor data isbn nr_zam tytul ilosc isbn cena data id_opis ilosc opis id_opis opis opisy Relacja 1 - 1 książki zam_pozycje ksiazki klienci Boczna 10 Jankowo MS 105 To kolejne wydanie znakomitego podręcznika Charlesa Petzolda 3Programowanie 2008-03-04 opisy 1 P-456-22 3 Windows Programowanie C#. Ch.Windows Petzold - tym … razem w 1 języku Jankowski … Sportowa 5 MS 105 Adamowo 1P-456-22 1Programowanie 2008-03-08 1 To kolejne wydanie znakomitego podręcznika Charlesa 2 P-567-33 1 Windows i .NET 99 P-567-33 Petzolda S.C. Perry … Programowanie Windows – tym … 2 Adamska … 1C# 2008-03-12 Sosnowa 2/24 Wrocław 2 P-345-22 1 zamówienia MySQL. MySQL P-345-22 to L. Ullman zarządzania …zarządzania bazami danych, dostępny na C# i .NETSzybki start. 57 99 0 2 system MySQL to system danych, 3 bazami Kowalski … licencji open-source. Swoimi możliwościami nie ustępuje w niczym dostępny na licencji open-source. Swoimi … MySQL. Szybki start. 57 2 potężnym komercyjnym systemom. NIE WYDAJNE zamowienia 1 ∞ ksiazki id_klient 1 data klienci id_klient nr_zam 1 isbn autor nazwisko tytul ulica cena miejscowosc id_opis zam_pozycje nr_zam isbn ilosc ∞ ∞ 1 opisy 1 id_opis opis klienci zamowienia ksiazki 1 id_klient nazwisko 1 ∞ ulica 1 nr_zam id_klient data isbn autor zam_pozycje miejscowosc nr_zam isbn tytul ∞ ∞ cena opisy 1 id_opis 1 id_opis ilosc opis opisy zamowienia 1 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 … ksiazki 1 1 2008-03-04 2 3 2008-03-08 3 1 2008-03-12 klienci zam_pozycje P-456-22 Ch. Petzold … 1 1 P-456-22 3 1 Jankowski … P-567-33 S.C. Perry … 0 2 P-567-33 1 2 Adamska … P-345-22 L. Ullman … 2 2 P-345-22 1 3 Kowalski … MySQL 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. SQL – strukturalny język zapytań. Jest najbardziej rozpowszechniony standaryzowany język dostępu do systemów zarządzania relacyjnymi bazami danych (RDBMS) Tworzenie bazy danych CREATE DATABASE nazwa_bazy Definiowanie użytkowników i przywilejów GRANT przywileje [kolumny] ON obiekt TO identyfikator użytkownika [IDENTIFIED BY ‘haslo’] [WITH [GRANT OPTION | ograniczenia]] Przywileje: SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, DROP, ALL Odbieranie przywilejów użytkownikom REVOKE przywileje [kolumny] ON obiekt FROM identyfikator użytkownika Tworzenie bazy danych CREATE DATABASE ksiegarnia Definiowanie użytkowników i przywilejów GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, DROP ON ksiegarnia.* TO Janek IDENTIFIED BY ‘Jan75B’ Odbieranie przywilejów użytkownikom REVOKE ALTER, CREATE, DROP ON ksiegarnia.* FROM Janek Używanie odpowiedniej bazy danych USE nazwa_bazy Tworzenie tabel bazy danych CREATE TABLE nazwa_tabeli(kolumny) dodarkowe atrybuty kolumn: NOT NULL, AUTO_INCREMENT, PRIMARY KEY, UNSIGNED Typy kolumn: INT, TINYINT, CHAR(n), FLOAT(m,d), DATE, TEXT Używanie odpowiedniej bazy danych USE ksiegarnia Tworzenie tabel bazy danych CREATE 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) ); Przeglądanie istniejących baz SHOW DATABASES; Przeglądanie tabel w wybranej bazie SHOW TABLES; Szczegółowe informcje o tabeli DESCRIBE nazwa_tabeli Zapisywanie danych do bazy INSERT [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’; Wyszukiwanie danych w bazie SELECT [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; Wyszukiwanie danych spełniających określone kryteria SELECT * 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%’; Wyszukiwanie danych w wielu tabelech Wyszukaj zamówienie Jana Nowaka i wyświetl jego numer i datę. SELECT zamowienia.nr_zam, zamowienia.data FROM 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.isbn FROM klienci, zamowienia, zam_pozycje. WHERE klienci.miejscowosc= ‘Koszalin’ AND klienci.id_klient = zamowienia.id_klient; AND zamowienia.nr_zam = zam_pozycje. nr_zam ;