My SQL Kamil Tomaszewski Czym jest My SQL

  • Slides: 28
Download presentation
My. SQL Kamil Tomaszewski

My. SQL Kamil Tomaszewski

Czym jest My. SQL? u My. SQL to jeden z najpopularniejszych, darmowych silników relacyjnych

Czym jest My. SQL? u My. SQL to jeden z najpopularniejszych, darmowych silników relacyjnych baz danych. My. SQL tworzony jest przez pojedynczy podmiot - szwedzką firmę My. SQL AB. [wikipedia. pl]

Konkurencyjne rozwiązania u Postgre. SQL u Microsoft SQL Server u Firebird u Oracle Początkowo

Konkurencyjne rozwiązania u Postgre. SQL u Microsoft SQL Server u Firebird u Oracle Początkowo opracowywany na Uniwersytecie Kalifornijskim Berkeley i opublikowany pod nazwą Postgres. W miarę rozwoju i zwiększania funkcjonalności, baza danych otrzymała nazwy Postgres 95 i ostatecznie Postgre. SQL, aby upamiętnić pierwowzór oraz zaznaczyć zgodność ze standardem SQL. komercyjny system zarządzania bazą danych, wspierany i rozpowszechniany przez korporację Microsoft. Jeden z trzech produktów bazodanowych firmy Microsoft, obok Access oraz ADP. MS SQL Server jest platformą bazodanową typu klient-serwer. W stosunku do programu Access odznacza się lepszą wydajnością, niezawodnością i skalowalnością. Przede wszystkim są tu zaimplementowane wszelkie mechanizmy wpływające na bezpieczeństwo operacji (m. in. wyzwalacze i transakcje). całkowicie darmowy serwer relacyjnych baz danych zgodny ze standardem ANSI SQL-92, oferujący również wiele elementów standardu SQL-99 oraz SQL: 2003, działający w środowisku systemu operacyjnego Linux, Windows i wielu innych. Może być używany bez rejestrowania lub wnoszenia jakichkolwiek opłat w dowolnych zastosowaniach, również komercyjnych. Relacyjna baza danych Oracle posługuje się standardowym językiem zapytań SQL oraz posiada wbudowane wewnętrzny język tworzenia procedur składowanych PL/SQL - będący proceduralnie obudowanym językiem SQL. Jako języka tworzenia procedur składowanych w bazach danych Oracle (od wersji 8 i) można używać również języka Java

Zasady licencjonowania u My. SQL jest dostępny na licencji GPL, jednakże można nabyć również

Zasady licencjonowania u My. SQL jest dostępny na licencji GPL, jednakże można nabyć również wersje z licencjami zamkniętymi. Oznacza to, że My. SQL jest w pełni darmowy, jednak za wsparcie techniczne i pomoc trzeba już zapłacić. Istnieje jednak w internecie wiele darmowych manuali.

Co to jest RDBMS? u u Relational Data. Base Managament System (RDBMS, dosłownie system

Co to jest RDBMS? u u Relational Data. Base Managament System (RDBMS, dosłownie system zarządzania relacyjną bazą danych) to zestaw programów służących do korzystania z bazy danych opartej na modelu relacyjnym. Większość wewnętrznych języków RDBMS jest w pewnym stopniu zgodna ze standardem języka zapytań SQL. Język ten doczekał się już dwóch standardów SQL 92 i SQL 99, jednak różnice pomiędzy teoretycznie SQL-owymi systemami są zbyt duże, żeby możliwe było przeniesienie nawet relatywnie prostej aplikacji z jednego systemu na drugi.

RDBMS a pliki jednorodne u Problemy związane ze stosowaniem plików jednorodnych: • Praca z

RDBMS a pliki jednorodne u Problemy związane ze stosowaniem plików jednorodnych: • Praca z dużym plikiem może być powolna. • Poszukiwanie konkretnego rekordu lub grupy rekordów w pliku jest trudne. • Problemy sprawia dostęp jednoczesny. • Aby wykonać jakieś operacje na danych konieczne jest wczytanie i przechowywanie w pamięci całego pliku. Przy dużych plikach może to sprawiać problemy. • Nie istnieje żadna prosta metoda tworzenia różnych poziomów dostępu do danych.

RDBMS a pliki jednorodne u Jak RDBMS rozwiązują te problemy? • Pozwalają na szybszy

RDBMS a pliki jednorodne u Jak RDBMS rozwiązują te problemy? • Pozwalają na szybszy dostęp do danych niż pliki jednorodne. • Można zadawać zapytania o dane spełniające konkretne kryteria. • Posiadają wbudowany mechanizm zapewniania równoległego dostępu, który pozostaje poza kręgiem programisty. • Pozwalają na swobodny dostęp do danych. • Mają wbudowany system przywilejów.

Koncepcje relacyjnych baz danych Relacyjne bazy danych są obecnie najczęściej wykorzystywanym typem baz danych.

Koncepcje relacyjnych baz danych Relacyjne bazy danych są obecnie najczęściej wykorzystywanym typem baz danych. Opierają się one na teoretycznych podstawach algebry relacyjnej. u Relacyjne bazy danych składają się z relacji, zwanych zazwyczaj tabelami. Tabela jest dokładnie tym co oznacza – tabelą danych. u

Koncepcje relacyjnych baz danych KLIENCI Nazwisko Adres Miejscowosc Nowak Anna Wierzbowa 25 Warszawa Kowalski

Koncepcje relacyjnych baz danych KLIENCI Nazwisko Adres Miejscowosc Nowak Anna Wierzbowa 25 Warszawa Kowalski Adam Szeroka 1/47 Oborniki Pawlak Julia Zachodnia 357 Gliwice

Koncepcje relacyjnych baz danych Nazwa tabeli KLIENCI Nazwisko Adres Miejscowosc Nowak Anna Wierzbowa 25

Koncepcje relacyjnych baz danych Nazwa tabeli KLIENCI Nazwisko Adres Miejscowosc Nowak Anna Wierzbowa 25 Warszawa Kowalski Adam Szeroka 1/47 Oborniki Pawlak Julia Zachodnia 357 Gliwice

Koncepcje relacyjnych baz danych Każda kolumna tabeli posiada wyróżniającą ją nazwę i zawiera inny

Koncepcje relacyjnych baz danych Każda kolumna tabeli posiada wyróżniającą ją nazwę i zawiera inny rodzaj danych. KLIENCI Każdej kolumnie przypisany jest typ danych. Kolumny Nazwisko, Adres i Miejscowosc zawierają ciągi znaków – są typu string. Nazwisko Adres Miejscowosc Nowak Anna Wierzbowa 25 Warszawa Kowalski Adam Szeroka 1/47 Oborniki Pawlak Julia Zachodnia 357 Gliwice

Koncepcje relacyjnych baz danych Klucze Konieczne jest znalezienie sposobu jednoznacznej identyfikacji każdego klienta. Rozpatrzmy

Koncepcje relacyjnych baz danych Klucze Konieczne jest znalezienie sposobu jednoznacznej identyfikacji każdego klienta. Rozpatrzmy przykład Anny Nowak. KLIENCI Nazwisko Adres Miejscowosc Nowak Anna Wierzbowa 25 Warszawa Kowalski Adam Szeroka 1/47 Oborniki Pawlak Julia Zachodnia 357 Gliwice Jak jednoznacznie stwierdzić, że chodzi o tę właśnie Annę Nowak?

Koncepcje relacyjnych baz danych Klucze Konieczne jest znalezienie sposobu jednoznacznej identyfikacji każdego klienta. Rozpatrzmy

Koncepcje relacyjnych baz danych Klucze Konieczne jest znalezienie sposobu jednoznacznej identyfikacji każdego klienta. Rozpatrzmy przykład Anny Nowak. KLIENCI Klient. ID Nazwisko Adres Miejscowosc 1 Nowak Anna Wierzbowa 25 Warszawa 2 Kowalski Adam Szeroka 1/47 Oborniki 3 Pawlak Julia Zachodnia 357 Gliwice Dodana została kolumna Klient. ID umożliwiająca jednoznaczne zidentyfikowanie Anny Nowak. Pole identyfikujące poszczególne rekordy nazywane jest kluczem lub kluczem podstawowym. Klucz może składać się z kilku pól – np. Julia Nowak z ulicy Wierzbowej 25 w Warszawie, wtedy klucz składałby się z pól Nazwisko, Adres i Miejscowosc, co jednak nie gwarantowałoby unikalności.

Koncepcje relacyjnych baz danych KLIENCI Klient. ID Nazwisko Adres Miejscowosc 1 Nowak Anna Wierzbowa

Koncepcje relacyjnych baz danych KLIENCI Klient. ID Nazwisko Adres Miejscowosc 1 Nowak Anna Wierzbowa 25 Warszawa 2 Kowalski Adam Szeroka 1/47 Oborniki 3 Pawlak Julia Zachodnia 357 Gliwice RELACJA: Każde zamówienie w tabeli Zamowienia zawiera odwołanie do klienta z tabeli Klienci ZAMOWIENIA Zamowienie. ID Klient. ID Wartosc Data 1 3 27. 50 25. 11. 2005 2 1 12. 99 31. 09. 2005 3 2 74. 00 1. 01. 2004

Koncepcje relacyjnych baz danych Zamowienie. ID Wartosc Data Klient. ID Nazwisko Adres Miejscowosc 13

Koncepcje relacyjnych baz danych Zamowienie. ID Wartosc Data Klient. ID Nazwisko Adres Miejscowosc 13 227. 50 29. 01. 2004 1 Nowak Anna Wierzbowa 25 Warszawa 15 112. 99 12. 11. 2005 1 Nowak Anna Wierzbowa 25 Warszawa 17 174. 00 13. 12. 2005 1 Nowak Anna Wierzbowa 25 Warszawa

Koncepcje relacyjnych baz danych Zamowienie. ID Wartosc Data Klient. ID Nazwisko Adres Miejscowosc 13

Koncepcje relacyjnych baz danych Zamowienie. ID Wartosc Data Klient. ID Nazwisko Adres Miejscowosc 13 227. 50 29. 01. 2004 1 Nowak Anna Wierzbowa 25 Warszawa 15 112. 99 12. 11. 2005 1 Nowak Anna Wierzbowa 25 Warszawa 17 174. 00 13. 12. 2005 1 Nowak Anna Wierzbowa 25 Warszawa • marnotrawstwo pamięci • niespójność danych

SQL u u u SQL (ang. Structured Query Language) to strukturalny język zapytań używany

SQL u u u SQL (ang. Structured Query Language) to strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych. Język SQL jest językiem deklaratywnym. Decyzję o sposobie przechowywania i pobrania danych pozostawia się systemowi zarządzania bazą danych DBMS. Jest to język programowania opracowany w latach siedemdziesiątych w firmie IBM. Stał się on standardem w komunikacji z serwerami relacyjnych baz danych. Wiele współczesnych systemów relacyjnych baz danych używa do komunikacji z użytkownikiem SQL, dlatego mówi się, że korzystanie z relacyjnych baz danych, to korzystanie z SQL-a. Pierwszą firmą, która włączyła SQL do swojego produktu komercyjnego, był Oracle. Dalsze wprowadzanie SQL-a, w produktach innych firm, wiązało się nierozłącznie z wprowadzaniem modyfikacji pierwotnego języka. Wkrótce utrzymanie dalszej jednolitości języka wymagało wprowadzenia standardu.

SQL Użycie SQL, zgodnie z jego nazwą, polega na zadawaniu zapytań do bazy danych.

SQL Użycie SQL, zgodnie z jego nazwą, polega na zadawaniu zapytań do bazy danych. Zapytania można zaliczyć do jednego z dwóch głównych podzbiorów: u u SQL DML (ang. Data Manipulation Language, czyli Język Manipulacji Danymi), SQL DDL (ang. Data Definition Language, czyli Język Definicji Danych). Instrukcje SQL w obrębie zapytań tradycyjnie zapisywane są wielkimi literami, jednak nie jest to wymóg. Każde zapytanie w SQL-u musi kończyć się znakiem "; " (średnik). Dodatkowo, niektóre interpretery SQL (np. psql w przypadku Postgre. SQL), używają swoich własnych instrukcji, spoza standardu SQL, które służą np. do połączenia się z bazą, wyświetlenia dokumentacji, itp.

SQL u DML służy do operacji na danych - do ich umieszczania w bazie,

SQL u DML służy do operacji na danych - do ich umieszczania w bazie, kasowania, przeglądania, zmiany. Najważniejsze polecenia z tego zbioru to: • • SELECT - pobranie z bazy danych, INSERT - umieszczenie danych w bazie, UPDATE - zmiana danych, DELETE - usunięcie danych z bazy. Dane tekstowe podawane muszą być zawsze w formie ograniczonej znakami pojedynczego cudzysłowu (').

SQL PRZYKŁAD SELECT * FROM pracownicy WHERE pensja > 2000 ORDER BY staz DESC;

SQL PRZYKŁAD SELECT * FROM pracownicy WHERE pensja > 2000 ORDER BY staz DESC; Wyświetla z tabeli pracownicy (FROM pracownicy) wszystkie kolumny (*) dotyczące tych pracowników, których pensja jest większa niż 2000 (WHERE pensja > 2000) i sortuje wynik malejąco według stażu pracy (ORDER BY staz DESC).

SQL PRACOWNICY Imię Nazwisko Pensja Staż Jan Kowalski 800 1 Marek Stachowiak 2100 2

SQL PRACOWNICY Imię Nazwisko Pensja Staż Jan Kowalski 800 1 Marek Stachowiak 2100 2 Krzysztof Zieliński 5000 3 SELECT * FROM pracownicy

SQL PRACOWNICY Imię Nazwisko Pensja Staż Jan Kowalski 800 1 Marek Stachowiak 2100 2

SQL PRACOWNICY Imię Nazwisko Pensja Staż Jan Kowalski 800 1 Marek Stachowiak 2100 2 Krzysztof Zieliński 5000 3 SELECT * FROM pracownicy WHERE pensja > 2000

SQL PRACOWNICY Imię Nazwisko Pensja Staż Jan Kowalski 800 1 Marek Stachowiak 2100 2

SQL PRACOWNICY Imię Nazwisko Pensja Staż Jan Kowalski 800 1 Marek Stachowiak 2100 2 Krzysztof Zieliński 5000 3 SELECT * FROM pracownicy WHERE pensja > 2000 ORDER BY staz DESC;

SQL EFEKT KOŃCOWY PRACOWNICY Krzysztof Zieliński 5000 3 Marek Stachowiak 2100 2 SELECT *

SQL EFEKT KOŃCOWY PRACOWNICY Krzysztof Zieliński 5000 3 Marek Stachowiak 2100 2 SELECT * FROM pracownicy WHERE pensja > 2000 ORDER BY staz DESC;

SQL u DDL Dzięki DDL natomiast, można operować na strukturach, w których te dane

SQL u DDL Dzięki DDL natomiast, można operować na strukturach, w których te dane są przechowywane - czyli np. dodawać, zmieniać i kasować tabele lub bazy. Najważniejsze polecenia tej grupy to: • CREATE (np. CREATE TABLE, CREATE DATABASE, . . . ) - utworzenie struktury (bazy, tabeli, indeksu, itp. ), • DROP (np. DROP TABLE, DROP DATABASE, . . . ) - całkowite usunięcie struktury, • ALTER (np. ALTER TABLE ADD COLUMN. . . ) - zmiana struktury (dodanie kolumny do tabeli, zmiana typu danych w kolumnie tabeli).

SQL PRZYKŁAD INSERT INTO pracownicy (imie, nazwisko, pensja, staz) VALUES ('Jan', 'Kowalski', 5500, 1);

SQL PRZYKŁAD INSERT INTO pracownicy (imie, nazwisko, pensja, staz) VALUES ('Jan', 'Kowalski', 5500, 1); Dodaje do tabeli pracownicy (INTO pracownicy) wiersz (rekord) zawierający dane pojedynczego pracownika.

My. SQL Zalogowanie się >mysql –h nazwa_komputera –u identyfikator_uzytkownika –p -h – wskazanie komputera,

My. SQL Zalogowanie się >mysql –h nazwa_komputera –u identyfikator_uzytkownika –p -h – wskazanie komputera, do którego ma nastąpić połączenie. -u – wskazanie identyfikatora użytkownika -p – informuje o logowaniu z użyciem hasła Wskazanie bazy danych, która zostanie wykorzystana >mysql use nazwa_bazy Przykładowy kod SQL tworzący tabelę klienci Create table klienci ( klientid int unsigned not null auto_increment primary key, nazwisko char(30) not null, adres char(40) not null, miejscowosc char(20) not null );

Przydatne linki, literatura Linki: http: //www. mysql. com http: //webdeveloper. pl/manual_mysql/show. php? str=manual_toc_pl. html

Przydatne linki, literatura Linki: http: //www. mysql. com http: //webdeveloper. pl/manual_mysql/show. php? str=manual_toc_pl. html http: //www. krasnal. tk/ Literatura: PHP i My. SQL. Tworzenie stron WWW. Vademecum profesjonalisty. Wydanie trzecie Autorzy: Luke Welling, Laura Thomson