Część VII Baza danych MySQL i PHP

Wielkość: px
Rozpocząć pokaz od strony:

Download "Część VII Baza danych MySQL i PHP"

Transkrypt

1 Architektura internetowej bazy danych Internetowa aplikacja bazodanowa opiera się na klasycznej architekturze internetowej bazy danych, przedstawionej na rysunku. Przeglądarka Serwer Interpreter 6 WWW 5 4 Serwer MySQL Typowa transakcja bazodanowa przeprowadzana w Internecie składa się z następujących etapów: 1. Przeglądarka internetowa uŝytkownika wysyła Ŝądanie udostępnienia określonej strony WWW, wykorzystując odpowiedni formularz HTML. Natomiast strona z wynikami moŝe się nazywać rezultaty.php. 2. Serwer WWW przyjmuje Ŝądanie wyświetlenia strony rezultaty.php, odnajduje właściwy plik i przekazuje go do interpretera PHP. 3. Interpreter PHP rozpoczyna przetwarzanie skryptu. Wewnątrz skryptu zawarte jest polecenie połączenia z bazą danych i wykonania zapytania.

2 Z kolei następuje otwarcie połączenia z serwerem MySQL i przesłanie zapytania. 4. Serwer MySQL przyjmuje zapytanie i je przetwarza, po czym rezultat odsyła do interpretera PHP. 5. Interpreter kończy wykonywanie skryptu, który zazwyczaj formatuje otrzymane wyniki zgodnie ze standardem HTML, po czym przesyła wynikowy kod HTML do serwera WWW. 6. Serwer WWW przesyła wreszcie kod HTML do przeglądarki. Proces ten przebiega zawsze tak samo, bez względu na typ interpretera PHP, czy uŝywanego serwera bazy danych. Najczęściej serwer WWW, interpreter PHP i serwer bazy danych MySQL pracują na tym samym komputerze. Jednak metodę rozdzielenia serwera bazodanowego na oddzielną maszynę stosuje się do celów bezpieczeństwa lub zmniejszenia obciąŝenia systemu, co moŝe wpłynąć na efektywną wydajność całego systemu.

3 Polecenia PHP do obsługi bazy danych MySQL int mysql_affected_rows([int id_polaczenia]) - funkcja zwraca liczbę wierszy (rekordów) objętych poprzednio wykonaną operacją na bazie danych; funkcja odnosi się do operacji INSERT, UPDATE oraz DELETE, lecz nie dotyczy ona SELECT; w przypadku SELECT patrz funkcja mysql_num_rows(); w przypadku wykonania kwerendy usuwającej DELETE bez klauzuli WHERE, czyli usunięcie wszystkich rekordów, funkcja zwróci wartość 0, w przeciwnych wypadkach zostanie zwrócona wartość dodatnia; int mysql_change_user(string uzytkownik, string haslo [, string baza [, int id_polaczenia]]) - funkcja zmienia bieŝącego uŝytkownika dla bieŝącego połączenia lub połączenia określonego poprzez identyfikator połączenia id_polaczenia na uŝytkownika o nazwie uzytkownik oraz haśle haslo; jeśli zmiana się nie powiedzie aktywny zostaje uŝytkownik dotychczasowy;

4 int mysql_close([int id_polaczenia]) - funkcja zamyka połączenie z bieŝącą bazą danych lub bazą o identyfikatorze połączenia id_polaczenia; zwrócona wartość false świadczy o wystąpionym błędzie podczas zamykania połączenia; połączenie jest takŝe zamykane (jeśli oczywiście wcześniej nie zostało to zrobione) w momencie zakończenia wykonywania skryptu; int mysql_connect([string nazwa_hosta[:port]] [, string uzytkownik] [, string haslo]) - funkcja nawiązująca połączenie z serwerem bazy danych MySQL; w przypadku wystąpienia błędu funkcja zwraca łańcuch zawierający opis błędu; aby ukryć błąd moŝna przed nazwą funkcji dodać int mysql_create_db(string nazwa_bazy [, int id_polaczenia]) - funkcja tworząca bazę MySQL o nazwie nazwa_bazy dla połączenia o identyfikatorze id_polaczenia; istnieje jej takŝe inna (wcześniejsza) wersja, tj. mysql_createdb();

5 int mysql_data_seek(int id_wynikow, int numer_wiersza) - funkcja przesuwa wewnętrzny wskaźnik wyników do pozycji określonej przez numer_wiersza; w przypadku wystąpienia błędu zwrócona zostanie wratość false; int mysql_db_query(string nazwa_bazy, string zapytanie [, int id_polaczenia]) - funkcja wykonuje zapytanie na bazie danych i zwraca wynik zapytania lub w przypadku błędu wartość false; int mysql_drop_db(string nazwa_bazy [, int id_polaczenia]) - funkcja usuwa bazę o nazwie nazwa_bazy; w przypadku błędu zwracana jest wartość false; istnieje jej takŝe inna (wcześniejsza) wersja, tj. mysql_dropdb(); int mysql_errno([int id_polaczenia]) - funkcja zwraca numer błędu wynikłego podczas wykonywania poprzedniej operacji na bazie danych;

6 string mysql_error([int id_polaczenia]) - funkcja zwraca opis błędu (komunikat) wynikłego podczas wykonywania poprzedniej operacji na bazie danych; array mysql_fetch_array(int id_wynikow [, int typ_wyniku]) - funkcja zwraca wiersz (rekord) ze zbioru wyników w postaci tablicy asocjacyjnej lub wartość false, jeśli nie ma więcej wierszy (rekordów); funkcja jest rozszerzeniem funkcji mysql_fetch_row(); typ_wyniku moŝe przyjąc wartości MYSQL_ASSOC, MYSQL_NUM lub MYSQL_BOTH; object mysql_fetch_field(int id_wynikow [, int offset_pola]) - funkcja zwraca informacje o wskazanej kolumnie zbioru wyników w postaci obiektu; obiekt posiada następujące właściwości: name - nazwa kolumny table - nazwa tabeli do której naleŝy kolumna max_length - maksymalna długość kolumny

7 not_null - wartość 1 jeśli kolumna nie moŝe posiadać wartości NULL primary_key - wartość 1 jeśli kolumna jest kluczem podstawowym unique_key - wartość 1 jeśli kolumna jest kluczem unikalnym multiple_key - wartość 1 jeśli kolumna nie jest kluczem unikalnym numeric - wartość 1 jeśli kolumna zawiera wartości numeryczne blob - wartość 1 jeśli kolumna jest typu BLOB type - typ kolumny unsigned - wartość 1 jeśli kolumna zawiera wartości tylko dodatnie (bez znaku) zerofill - wartość 1 jeśli kolumna jest wypełniana wartościami zerowymi array mysql_fetch_lengths(int id_wynikow) - funkcja zwraca tablice zawierającą maksymalną długość danych, jakie moŝna zapisać w kaŝdej kolumnie wskazanego zbioru wyników o identyfikatorze id_wynikow; odnosi się do wiersza ostatnio zwróconego przez funkcje: mysql_fetch_row(), mysql_fetch_array() oraz mysql_fetch_object()

8 object mysql_fetch_object(int id_wynikow [, int typ_wyniku]) - funkcja zwraca obiekt zawierający wartości poszczególnych pól z wyniku zapytania przechowywanym pod identyfikatorem id_wynikow; dostęp do pola odbywa się następująco: $dane = mysql_fetch_object($wynik); echo ($dane->nazwa_pola); array mysql_fetch_row(int id_wynikow) - funkcja zwraca tablicę zawierającą wartości poszczególnych pól z wyniku zapytania przechowywanym pod identyfikatorem id_wynikow; dostęp do poszczególnych pól odbywa się poprzez podanie numeru pola, np.: $dane = mysql_fetch_row($wynik); echo ($dane[0]); string mysql_field_flags(int id_wynikow, int offset_pola) - funkcja zwraca flagi związane ze wskazanym polem offset_pola zbioru wyników o identyfikatorze;

9 id_wynikow w postaci łańcucha znakowego; są to pojedyncze słowa oddzielone pojedynczą spacją; int mysql_field_len(int id_wynikow, int offset_pola) - funkcja zwraca długość pola offset_pola; string mysql_field_name(int id_wynikow, int indeks_pola) - funkcja zwraca nazwę pola o numerze indeks_pola; int mysql_field_seek(int id_wynikow, int offset_pola) - funkcja przesuwa wskaźnik na pole o numerze offset_pola; string mysql_field_table(int id_wynikow, int offset_pola) - funkcja zwraca nazwę tabeli, w której znajduje się pole o numerze offset_pola;

10 string mysql_field_type(int id_wynikow, int offset_pola) - funkcja zwraca typ pola o numerze offset_pola; są to na przykład wartości: int, real, string, blob, itd.; int mysql_free_result(int id_wynikow) - funkcja zwalnia pamięć przeznaczoną na przechowywanie wyniku o identyfikatorze id_wyniku; funkcja jest takŝe wywoływana w momencie zakończenia wykonywania się skryptu, jeśli oczywiście nie była wywołana wcześniej; int mysql_insert_id([int id_polaczenia]) - funkcja zwraca ID wygenerowane dla pola AUTO_INCREMENT podczas poprzednio wykonanej operacji INSERT na bazie; int mysql_list_dbs([int id_polaczenia]) - funkcja zwraca listę baz danych dostępnych na serwerze MySQL;

11 int mysql_list_fields(string nazwa_bazy, string nazwa_tabeli [, int id_polaczenia]) - funkcja zwraca listę pól dostępnych w tabeli nazwa_tabeli w bazie o nazwie nazwa_bazy dla bieŝącego połączenia lub połączenia o identyfikatorze id_polaczenia; w przypadku wystąpienia błędu zwracana jest wartość -1; int mysql_list_tables(string nazwa_bazy [, int id_polaczenia]) - funkcja zwraca listę tabel znajdujących się w bazie nazwa_bazy; int mysql_num_fields(int id_wynikow) - funkcja zwraca wartość liczbową określającą ilość pól w wyniku o identyfikatorze id_wynikow; int mysql_num_rows(int id_wynikow) - funkcja zwraca wartość liczbową określającą ilość wierszy (rekordów) w wyniku o identyfikatorze id_wyniku;

12 int mysql_pconnect([string host[:port][:/sciezka/do/socketu]] [, string uzytkownik] [, string haslo]) - funkcja nawiązująca trwałe połączenie (niezamykane w czasie zakończenia wykonywania skryptu) z serwerem bazy danych MySQL; w przypadku wystąpienia błędu funkcja zwraca łańcuch zawierający opis błędu; aby ukryć błąd moŝna przed nazwą funkcji umieścić int mysql_query(string zapytanie [, int id_polaczenia]) - funkcja wysyła i wykonuje zapytanie SQL zapytanie na bazie danych; zapytanie nie powinno być zakończone średnikiem; w przypadku wystąpienia błędu (niemoŝliwości wykonania zapytania przez serwer MySQL) zwracana jest wartość false; int mysql_result(int id_wynikow, int wiersz [, mixed pole]) - funkcja zwraca wartość określonego pola pole w wierszu o numerze wiersz w zbiorze wyników o identyfikatorze id_wynikow; pole moŝe określać numer pola, jego nazwę lub przyjąć postać nazwa_tabeli.nazwa_pola;

13 int mysql_select_db(string nazwa_bazy [, int id_polaczenia]) - funkcja określa aktywną (domyślną) bazę danych; string mysql_tablename(int id_wynikow, int indeks) - funkcja zwraca nazwę tabeli, zwróconej przez funkcję mysql_list_tables() w postaci zbioru wyników w identyfikatorze id_wynikow, o ineksie (pozycji) indeks;

14 Przykład uŝycia powyŝszych funkcji /* nawiązanie połaczenia z bazą MySQL na komputerze o nazwie nazwa_hosta, dostęp do bazy jako uŝytkownik o nazwie user oraz haśle password */ $conn = mysql_connect("nazwa_hosta", "user", "password") or die("połączenie nie moŝe zostać nawiązane"); /* określenie nazwy bazy jako nazwa_bazy */ mysql_select_db("nazwa_bazy"); $sql_query = "SELECT * FROM tabela"; /* wykonanie zapytania zapisanego w zmiennej $sql_query i zapisane wyniku w $wynik */ $wynik = mysql_query($sql_query) or die("błędne zapytanie"); /* pętla pobierająca kolejno wiersze przechowywane w wyniku $wynik */ while ($row = mysql_fetch_array($wynik)) { /* pokazanie pola o nazwie nazwa_pola */ echo ($row["nazwa_pola"]."\n"); } /* zwolnienie pamięci zajmowanej na przechowanie rekordów */ mysql_free_result($wynik); /* zamknięcie połączenia z bazą danych */ mysql_close($conn);

15 Zapytania Aby wykonać cokolwiek w swojej bazie naleŝy wysłać do niej informacje, które wysyłane są do bazy danych w postaci zapytań (query). SłuŜy do tego funkcja mysql_query(zapytanie). Wszystkie zapytania wysyła sie w następujący sposób: $zaptanie="twoje zapytanie"; $wykonaj=mysql_query($zapytanie); Po takiej operacji zmienna $wykonaj będzie zawierać wartość TRUE, jeśli operacja powiedzie się, jeśli nie - zwróci wartość FALSE. Łączymy się z bazą danych Aby połączyć się z bazą danych uŝywamy komendy: mysql_connect (nazwa_hosta[:port] [, uŝytkownik] [,hasło]); W praktyce oznacza to, Ŝe wymagana jest nazwa hosta - następnie opcjonalnie moŝemy wpisać nazwę uŝytkownika oraz jego hasło. Jeśli nie podamy nazwy hosta automatycznie nastąpi próba połączenia się z localhostem. Jeśli zabraknie nazwy uŝytkownika automatycznie zostaniemy zalogowani jako właściciel procesu baz danych, przewaŝnie właściciel nie ma

16 ustawionego hasła, więc trzeci parametr nie jest wymagany. PoniŜszy przykład pokazuje jak połączyć się z serwerem mojserwer.pl jako uŝytkownik foo, z hasłem off: $sql = mysql_connect (mojserwer.pl, foo, off); Funkcja mysql_connect zwróci wartość TRUE, jeśli zakończy się sukcesem, jeśli nie powiedzie się - zwróci wartość FALSE. Jeśli zakończy się juŝ operacje w bazie naleŝy się z nią rozłączyć, co dokonuje się funkcją mysql_close(id_połączenia). Aby zakończyć połączenie, które zaprezentowane powyŝej, naleŝałoby zastosować komendę 'mysql_close' w następujący sposób: mysql_close($sql); Tworzenie nowej bazy oraz jej wybieranie Do stworzenia nowej bazy uŝywamy komendy mysql_create_db(nazwa) np.: mysql_create_db("zawodnicy"); Samo stworzenie bazy nie oznacza, Ŝe właśnie na niej będziemy wykonywać operacje, dlatego musimy ją wybrać, co robimy komendą mysql_select_db(nazwa) np.:

17 mysql_select_db("zawodnicy"); Od tej pory moŝna juŝ wykonywać róŝne operacje w bazie 'zawodnicy'. Zagadnienia SQL Bazę danych moŝemy stworzyć takŝe za pomocą wyraŝeń SQL w formie zapytania: $zapytanie="create DATABASE zawodnicy"; $wykonaj = mysql_query($zaptanie); Gdy baza zostanie juŝ utworzona moŝna zacząć wprowadzać do niej dane. Najpierw jednak trzeba utworzyć tabelę, robimy to wg następującego schematu składni SQL: CREATE TABLE nazwa_tabeli (nazwa1 typ1, nazwa2 typ2, PRIMARY KEY(nazwa_x)) Oto utworzenie tabeli według podanego schematu: $zapytanie = "CREATE TABLE nba (id char(3) NOT NULL, imie char(30), lata char(3), punkty char(3), mistrzostwa char(3), PRIMARY KEY(id))"; Rozpatrując powyŝszy przykład: klucz oznaczony jako PRIMARY KEY oznacza, Ŝe klucz ten jest kluczem głównym, a klucz główny nie moŝe się powtarzać - w

18 przypadku, gdyby klucz główny się powtórzył po prostu rekord nie zostanie dodany do tabeli, klucz oznaczony jako NOT NULL nie moŝe być pusty. Po utworzeniu tabeli, moŝna do niej dodać dane wg następującego schematu: INSERT INTO nazwa_tabeli VALUES (wartosc_pola1, wartosc_pola2, wartosc_pola3...) Nie zawsze trzeba wypełniać wszystkich pól, a dokonuje się tego w następujący sposób: INSERT INTO nazwa_tabeli (nazwa_pola1, nazwa_pola2) VALUES (wartosc_pola1, wartosc_pola2) Oto przykład dodania do tabeli nowego zawodnika, operacja ta wygląda tak: $zapytanie = "INSERT INTO nba VALUES(Jordan, 13, 32, 6)"; Po wykonaniu takiej operacji tabela 'nba' będzie juŝ zawierać jeden rekord. Teraz kolejno moŝna dodawać w ten sam sposób kolejne rekordy. Jeśli chcemy przeszukać naszą tabelę w poszukiwaniu jakiegoś konkretnego rekordu, robimy to za pomocą komendy SELECT wg schematu: SELECT nazwa_pola FROM nazwa_tabeli WHERE warunek

19 Oczywiście nazw pól moŝemy podać kilka, lub wszystkie - jednak zamiast tego po prostu wstawiamy znak gwiazdki (SELECT * FROM itd.), warunek moŝe być bardzo złoŝony. ZałóŜmy, Ŝe chcemy przeszukać naszą tabelę w poszukiwaniu zawodnika o nazwisku 'Pipen', dokonujemy tego w następujący sposób: $zapytanie = "SELECT imie FROM nba WHERE imie='pipen'"; Funkcja zwróci wartość TRUE jeśli znajdzie w naszej tabeli Pipena, jeśli nie - FALSE. NaleŜy pamiętaj jednak, Ŝe rozróŝniane są wielkie i małe litery, dlatego 'Pipen' to nie to samo, co 'pipen' czy 'PIPEN'... Jeśli jakiś rekord jest juŝ nieaktualny, lub po prostu źle wpisaliśmy dane, naleŝałoby go zaktualizować, do czego słuŝy komenda UPDATE: UPDATE nazwa_tabeli SET wartosc_pola WHERE warunek Aby zmienić w tabeli liczbę lat gry Jordana, naleŝy to zrobić tak: $zapytanie = "UPDATE nba SET lata=15 WHERE imie='jordan'"; Teraz Jordan grał juŝ 15, a nie tak jak wcześniej 13 lat. Jeśli jakieś dane z danej tabeli juŝ nas nie interesują pozbywamy się ich komendą DELETE:

20 DELETE FROM nazwa_tabeli [WHERE warunek] W powyŝszym przykładzie warunek wzięto w nawias, poniewaŝ jeśli nie zostanie podany warunek z tabeli, wówczas wszystkie rekordy zostaną wymazane. W praktyce kasowanie prezentuje się następująco: $zapytanie = "DELETE FROM nba WHERE imie=jordan"; Od tej chwili Jordana juŝ nie ma w tabeli zawodników nba. Jak wyświetlić wyniki przeszukiwania tabeli? Wyświetlanie wyników przeszukiwania tabeli odbywa się wg poniŝszego schematu: $zapytanie = "SELECT * FROM nazwa_tabeli"; $wykonaj = mysql_query($zaptanie); while($wiersz = mysql_fetch_array($wykonaj)) { print "Pole pierwsze".$wiersz['pole1']."<br>"; print "Pole drugie".$wiersz['pole2']."<br>"; print "Pole trzecie".$wiersz['pole3']."<br>"; } Wszystko to odbywa się dzięki komendzie 'mysql_fetch_array', której zadaniem jest pobieranie

21 wierszy ze zbioru wyników i zwracanie jej w postaci tablicy. Prosta wyszukiwarka Okazuje się, Ŝe wyszukiwarka jest niczym innym, jak uŝyciem operatora SELECT w połączeniu z operatorem LIKE. Tradycyjne uŝycie SELECT wygląda następująco: SELECT nazwy_pol FROM nazwa_tabeli WHERE warunek Jeśli w warunku zostanie zastosowany operator LIKE otrzymamy bardzo prostą wyszukiwarkę: SELECT nazwy_pol FROM nazwa_tabeli WHERE nazwa_pola LIKE '%szukane_wyraŝenie%' Operator LIKE słuŝy tutaj do przeszukiwania pól tekstowych w poszukiwaniu danego wyraŝenia, znak procenta przed i po wyraŝeniu odgrywa bardzo waŝną rolę - powoduje dopasowanie dowolnych znaków przed i po danym wyraŝeniu. Poszukiwane wyraŝenie 'nik' (zakładając, Ŝe znak procentu znajduje się przed i po wyraŝeniu tj. %nik%): Pasuje do niego np.: konik, nikt, nikogo, komornik, nikotyna. Jeśli nasze wyraŝenie zawierałoby procent tylko na początku (%nik), wówczas pasowałyby wyraz 'konik' i 'komornik' i inne wyrazy kończące się na 'nik',

22 poniewaŝ dopasowywane są tylko wyrazy zaczynające się dowolną liczbą dowolnych znaków, a kończących się na 'nik'. Natomiast wyrazy 'nikogo', 'nikt', 'nikotyna' nie pasowałyby, poniewaŝ 'nik' powinno być końcem wyrazu. Sytuację odwrotną uzyskamy, jeśli znak procentu postawimy na końcu wyraŝenia. Nawiązując do tabeli z zawodnikami NBA, moŝna np. przeszukać tabelę w poszukiwaniu wszystkich zawodników, w których imieniu i nazwisku występuje np. litera 'a'. WyraŜenie słuŝące przeszukaniu takiemu wyglądałoby następująco: $zapytanie = "SELECT * FROM nba WHERE imie LIKE \"%a%\""; Równie dobrze moŝna wyszukać wszystkich imion kończących się na 'a': $zapytanie = "SELECT * FROM nba WHERE imie LIKE \"%a\""; lub zaczynających się literą 'a': $zapytanie = "SELECT * FROM nba WHERE imie LIKE \"a%\""; Rozszerzenie wyszukiwarki Jak na razie nasze poszukiwania opierały się na wyszukiwaniu na tylko jednym warunku - jeśli jednak zechcemy wyszukać jakiejś danej, która zawiera więcej niŝ jeden warunek? W tym momencie z pomocą przychodzą nam dwa znane operatory z języka PHP 'AND' i 'OR' oraz dwa nowe 'BETWEEN' i 'IN'.

23 AND (moŝna równieŝ &&) - jest to operator, dzięki, któremu moŝna stworzyć złoŝone warunki, jego schemat wygląda następująco: instrukcja WHERE warunek1 AND warunek2 Funkcja zwróci wartość TRUE, jeśli obydwa warunki zostaną spełnione, jeśli jeden z nich lub oba nie zostaną spełnione funkcja zwróci wartość FALSE. OR (moŝna równieŝ ) - kolejny operator, dzięki, któremu moŝna stworzyć złoŝone warunki, jego schemat wygląda następująco: instrukcja WHERE warunek1 OR warunek2 Funkcja zwróci wartość TRUE, jeśli przynajmniej jeden z warunków zostanie spełniony, jeśli nie zostanie spełniony Ŝaden warunek funkcja zwróci wartość FALSE. IN - za pomocą tego operatora sprawdzamy czy dana wartość naleŝy do określonego zbioru. Elementy zbioru podaje się w nawiasach i oddziela przecinkami. Schemat: instrukcja WHERE nazwa_pola IN (1,2,5,8) Funkcja zwróci wartość TRUE, jeśli wartość danego pola będzie naleŝeć do określonego przez nas wcześniej zbioru - w tym przypadku, jeśli wartość będzie równa 1, 2, 3, lub 8. Jeśli chcemy np. sprawdzić czy wartość

24 naleŝy do jakiegoś przedziału to zamiast wypisywać cały zbiór przy uŝyciu operatora IN, moŝemy uŝyć operatora BETWEEN. BETWEEN - sprawdza czy dana wartość naleŝy do przedziału. Schemat: instrukcja WHERE nazwa_pola BETWEEN dolny_przedział AND gorny_przedział Jeśli chcielibyśmy teraz sprawdzić czy wartość pola naleŝy do przedziału od 4 do 259 to nasza instrukcja wyglądałaby następująco: WHERE nazwa_pola BETWEEN 4 AND 259 Łącząc powyŝsze operatory moŝna np. wyszukać wszystkich zawodników z tabeli, którzy grają co najmniej 10 do maksymalnie 15 lat, zbierają średnio co najmniej 20 punków na mecz i w swoim imieniu mają literę 'e'. Konstrukcja taka wyglądałaby następująco: $zapytanie = "SELECT * FROM nba WHERE imie (LIKE \"e\") AND (lata BETWEEN 10 AND 15) AND (punkty > 20)"; Sortowanie wyników Wyniki poszukiwań do tej pory były posortowane w takiej kolejności, w jakiej dodaliśmy je do bazy danych,

25 ale jeśli zechcielibyśmy posortować naszych graczy np. w kolejności alfabetycznej lub wg ilości punktów, jakie zdobywają na mecz? Do takiej operacji potrzebna będzie nam komenda ORDER BY wraz z komendą DESC. Schemat stosowania tych komend przedstawia się następująco: SELECT * FROM nazwa_tabeli ORDER BY nazwa_pola DESC Oczywiście moŝna sortować wg kilku pól, wtedy wymieniamy kolejne pola po przecinkach: SELECT * FROM nazwa_tabeli ORDER BY nazwa_pola1 DESC, nazwa_pola2 DESC, nazwa_pola3 DESC... Brak operatora DESC spowoduje wyświetlenie danych w kolejności odwrotnej do poŝądanej. Dla przykładu moŝna wyświetlić wszystkich zawodników z tabeli w kolejności alfabetycznej. Jeśli jednak znalazłoby się dwóch koszykarzy o identycznych personaliach kolejnym kryterium do ustawiania w kolejności będzie średnia ilość zdobywanych punków na mecz. SELECT * FROM nba ORDER BY imie DESC, punkty DESC

26 Elegancka analiza błędów Często nasz kod zawiera błędy. Jednak, jeśli nawet jakaś operacja się nie powiedzie my nie zostaniemy o tym poinformowani. Co zrobić, aby uniknąć takich sytuacji lub, chociaŝ odpowiednio je przeanalizować? Jeśli wykonanie zapytania, jakie wysłaliśmy do serwera nie powiedzie się funkcja mysql_query() zwróci wartość FALSE, w takim wypadku naleŝałoby odpowiednio wykorzystać fakt, Ŝe o ty wiemy. Funkcja mysql_error() zawiera treść błędu baz danych MySQL, jeśli takowy istnieje. Teraz w połączeniu z elementarną instrukcją If otrzymujemy bardzo potęŝne narzędzie słuŝące analizie błędów. PoniŜszy kawałek kodu przedstawia jak zatrzymywać program i wyświetlać komunikat błędu: $sql = mysql_connect (mojserwer.pl, foo, off); $zaptanie="twoje zapytanie"; if (!($wykonaj=mysql_query($zaptanie))) /* Sprawdza czy wykonanie powiodło się */ { $error = mysql_error($sql) ; /* Kopiuje zawartość błędu do zmiennej $error */ echo "Bład skryptu, odpowiedź serwera: $error"; /* Drukuje błąd na stronie */ } else /* Jeśli błąd nie wystąpił kontynuuje działanie programu */ { [ dalsze dzialanie programu ] }

27 Zamiast zatrzymywać działanie programu, moŝna po prostu w przypadku mniej powaŝnego błędu wyświetlać odpowiednią informację i dalej kontynuować program. Zliczanie pól w zbiorze wyników Komenda 'mysql_num_rows' słuŝy do zwracania ilości pól znajdujących się we wskazanym zbiorze wyników, stosujemy ją według następującego schematu: $zapytanie = "SELECT nazwy_pol FROM nazwa_tabeli WHERE warunek"; $wykonaj = mysql_query($zaptanie); $znaleziono = mysql_num_rows($wykonaj); Po wykonaniu tej operacji zmienna '$znaleziono' będzie zawierać liczbę wyszukiwanych elementów. Teraz moŝnawyświetlić: ile razy znaleziono poszukiwane wyraŝenie, a potem znalezione elementy. Przykład: $zapytanie = "SELECT * FROM nba WHERE imie LIKE \"%a%\" ORDER BY DESC"; $wykonaj = mysql_query($zaptanie); $znaleziono = mysql_num_rows($wykonaj); if ($znaleziono == "0") { print "Nie znaleziono Ŝadnego zawodnika z literą 'a' w imieniu"; } else

28 { print "Znaleziono $znaleziono zawodników z literą 'a' w imieniu.<br><br>"; } while ($row = mysql_fetch_array($dzialaj)) { print "Imie zwodnika: <b>".$row['imie']." </b><br>lata gry: <b>".$row['imie']." </b>"; } Kasowanie baz danych Czasami zdarzy się tak, Ŝe zrezygnujemy nie tylko z kilku informacji zawartych w danej bazie, ale z całej bazy, wtedy kasujemy ją przy uŝyciu komendy mysql_drop_db. Dokonuje się tego w następujący sposób: mysql_drop_db (nazwa_bazy) W odniesieniu do naszego przykładu, skasowanie całej bazy danych z zawodnikami wyglądałoby tak: mysql_drob_db ("zawodnicy"); Informacje o tabeli W przypadku dostępu do tabeli, której nie jesteśmy twórcami, moŝna uzyskać o niej pewne informacje np. nazwy kolumn czy jaka jest maksymalna długość znaków w danym polu. Nazwy pól moŝemy wydobyć za pomocą komendy 'mysql_field_name' wg schematu:

29 mysql_field_name(id_wyników, indeks_pola) Rozpatrzmy to na przykładzie: $zapytanie = "SELECT * FROM nba"; $dzialaj=mysql_query($zapytanie); $n_pola = mysql_field_name($dzialaj, 0); Po wykonaniu tej operacji zmienna $n_pola będzie zawierać nazwę pierwszego pola (indeks 0) w tym przypadku zmienna zwróci wartość 'id' (takie jest pierwsze pole w tabeli nba). Maksymalną liczbę znaków danego pola wyciągamy komendą 'mysql_field_len' według następującego schematu: mysql_field_len(id_wyników, indeks_pola) Przykład: $zapytanie = "SELECT * FROM nba"; $dzialaj=mysql_query($zapytanie); $d_pola = mysql_field_len($dzialaj, 0); Zmienna '$d_pola' będzie zawierać liczbę '10', poniewaŝ pierwsze pole 'id' ograniczyliśmy długością 10 znaków. Nazwę tabeli, z której pochodzi wskazane pole moŝemy uzyskać korzystając z komendę 'mysql_field_table' w następujący sposób:

30 mysql_field_table(id_wyników, indeks_pola) Przykład: $zapytanie = "SELECT * FROM nba"; $dzialaj=mysql_query($zapytanie); $n_tabeli = mysql_field_table($dzialaj, 0); Zmienna '$n_tabeli' zwróci 'nba' czyli nazwę tabeli, z której pochodzi pole o indeksie zerowym. Aby dowiedzieć się, jakiego typu jest dane pole, trzeba uŝyć komendy 'mysql_field_type' analogicznie, jak poprzednie komendy tego typu: mysql_field_type(id_wyników, indeks_pola) Wykład zrealizowany w oparciu o literaturę: Luke Welling, Laura Thomson PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty. Wydawnictwo HELION

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Laboratorium nr 4. Temat: SQL część II. Polecenia DML Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z dużej ilości danych zapisanych na serwerze jest współpraca z relacyjną bazą danych. 2 1. Utworzyć bazę danych.

Bardziej szczegółowo

Instalacja MySQL. http://dev.mysql.com/downloads/mysql/5.0.html#downloads

Instalacja MySQL. http://dev.mysql.com/downloads/mysql/5.0.html#downloads Instalacja MySQL Baza MySQL tworzona jest przez Szwedzką firmę MySQL AB strona domowa projektu to: www.mysql.com Wersję bezpłatną (różniącą się od komercyjnej brakiem wsparcia technicznego, nośnika i podręcznika)

Bardziej szczegółowo

Podstawy programowania III WYKŁAD 2

Podstawy programowania III WYKŁAD 2 Podstawy programowania III WYKŁAD 2 Jan Kazimirski 1 Komunikacja z bazami danych 2 PHP i bazy danych PHP zapewnia dostęp do wielu popularnych baz danych. Kilka poziomów abstrakcji: Funkcje obsługujące

Bardziej szczegółowo

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli 1. Tworzenie tabeli Aby stworzyć tabele w SQL-u należy użyć polecenia CREATE TABLE nazwa_tabeli (nazwa_pola1 właściwości_pola1, nazwa_pola2 właściwości_pola2, itd.) Nazwa_tabeli to wybrana przez nas nazwa

Bardziej szczegółowo

Systemy internetowe. Wykład 4 mysql. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Systemy internetowe. Wykład 4 mysql. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science Systemy internetowe Wykład 4 mysql MySQL - wstęp SZBD: komercyjne: Microsoft SQL Server, Oracle, DB2... darmowe: MySQL, PostgreSQL, Firebird... MySQL darmowy (użytek niekomercyjny) Wady: niska wydajność

Bardziej szczegółowo

Internetowe bazy danych

Internetowe bazy danych Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy Internetowe bazy danych wykład 5 dr inż. Jacek Mazurkiewicz e-mail: Jacek.Mazurkiewicz@pwr.wroc.pl mysql_list_tables pobranie listy tabel z bazy

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

Wykład 5. SQL praca z tabelami 2

Wykład 5. SQL praca z tabelami 2 Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,

Bardziej szczegółowo

Język SQL, zajęcia nr 1

Język SQL, zajęcia nr 1 Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze

Bardziej szczegółowo

Wykład 5: PHP: praca z bazą danych MySQL

Wykład 5: PHP: praca z bazą danych MySQL Wykład 5: PHP: praca z bazą danych MySQL Architektura WWW Podstawowa: dwuwarstwowa - klient (przeglądarka) i serwer WWW Rozszerzona: trzywarstwowa - klient (przeglądarka), serwer WWW, serwer bazy danych

Bardziej szczegółowo

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PRZESTRZENNE BAZY DANYCH WYKŁAD 2 PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie

Bardziej szczegółowo

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych Przetwarzanie i organizowanie danych : bazy danych Nr ćwiczenia 10 Temat Aplikacje

Bardziej szczegółowo

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie

Bardziej szczegółowo

BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech

BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech BAZY DANYCH Obsługa bazy z poziomu języka PHP opracowanie: Michał Lech Plan wykładu 1. PHP - co to jest? 2. Bazy danych obsługiwane przez PHP 3. Podstawowe polecenia 4. Sesje 5. Przykład - dodawanie towaru

Bardziej szczegółowo

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł mysqli ma dwa interfejsy: proceduralny i obiektowy) PostgreSQL Oracle MS

Bardziej szczegółowo

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę: Bazy danych. Komunikacja z serwerem Aby połączyć się z serwerem i móc wykonywać czynności związane z obsługą baz, potrzebny jest program klienta. Razem z serwerem MySQL dostępny jest działający w wierszu

Bardziej szczegółowo

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP Zad. 1 Dla każdego zamówienia wyznaczyć jego wartość. Należy podać numer zamówienia oraz wartość. select z.id_zamowienia, sum(ilosc*cena) as wartosc

Bardziej szczegółowo

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych

Bardziej szczegółowo

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2) Laboratorium nr 8 Temat: Podstawy języka zapytań SQL (część 2) PLAN LABORATORIUM: 1. Sortowanie. 2. Warunek WHERE 3. Eliminacja powtórzeń - DISTINCT. 4. WyraŜenia: BETWEEN...AND, IN, LIKE, IS NULL. 5.

Bardziej szczegółowo

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazowy skrypt PHP do ćwiczeń z bazą MySQL: Utwórz skrypt o nazwie cw7.php zawierający następującą treść (uzupełniając go o właściwą nazwę uŝytkownika

Bardziej szczegółowo

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie Programowanie MSQL show databases; - pokazanie jakie bazy danych są dostępne na koncie show databases; - wyświetlenie wszystkich baz danych na serwerze create database nazwa; - za nazwa wstawiamy wybraną

Bardziej szczegółowo

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych SQL SQL (ang. Structured Query Language): strukturalny język zapytań używany do tworzenia strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej   Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Laboratorium 1 Wprowadzenie, podstawowe informacje o obsłudze

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Bazy danych. Polecenia SQL

Bazy danych. Polecenia SQL Bazy danych Baza danych, to miejsce przechowywania danych. Dane w bazie danych są podzielone na tabele. Tabele składają się ze ściśle określonych pól i rekordów. Każde pole w rekordzie ma ściśle ustalony

Bardziej szczegółowo

Projektowanie systemów baz danych

Projektowanie systemów baz danych Projektowanie systemów baz danych Seweryn Dobrzelewski 4. Projektowanie DBMS 1 SQL SQL (ang. Structured Query Language) Język SQL jest strukturalnym językiem zapewniającym możliwość wydawania poleceń do

Bardziej szczegółowo

PHP: bazy danych, SQL, AJAX i JSON

PHP: bazy danych, SQL, AJAX i JSON 1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji

Bardziej szczegółowo

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; Zestaw ćwiczeń1 Dzięki DDL (Data Definition Language) można operować na strukturach, w których dane są przechowywane czyli np. dodawać, zmieniać i kasować tabele lub bazy. Najważniejsze polecenia tej grupy

Bardziej szczegółowo

Wykład 05 Bazy danych

Wykład 05 Bazy danych Wykład 05 Bazy danych Tabela składa się z: Kolumn Wierszy Wartości Nazwa Wartości Opis INT [UNSIGNED] -2^31..2^31-1 lub 0..2^32-1 Zwykłe liczby całkowite VARCHAR(n) n = długość [1-255] Łańcuch znaków o

Bardziej szczegółowo

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski Bazy danych II Andrzej Grzybowski Instytut Fizyki, Uniwersytet Śląski Wykład 12 Zastosowanie PHP do programowania aplikacji baz danych MySQL Wsparcie programowania w PHP baz danych MySQL Obsługa baz danych

Bardziej szczegółowo

Ref. 7 - Język SQL - polecenia DDL i DML

Ref. 7 - Język SQL - polecenia DDL i DML Ref. 7 - Język SQL - polecenia DDL i DML Wprowadzenie do języka SQL. Polecenia generujące strukturę bazy danych: CREATE, ALTER i DROP. Polecenia: wprowadzające dane do bazy - INSERT, modyfikujące zawartość

Bardziej szczegółowo

Zagadnienia. Konstrukcja bibliotek mysql i mysqli w PHP. Dynamiczne generowanie stron. Połączenie, zapytanie i sesja

Zagadnienia. Konstrukcja bibliotek mysql i mysqli w PHP. Dynamiczne generowanie stron. Połączenie, zapytanie i sesja Zagadnienia Konstrukcja bibliotek mysql i mysqli w PHP Dynamiczne generowanie stron Połączenie, zapytanie i sesja Podstawowe opakowanie dla zapytań SQL w PHP Zarządzania uŝytkownikami Włamania do mysql

Bardziej szczegółowo

5. Współpraca z bazą danych MySQL

5. Współpraca z bazą danych MySQL 5. Współpraca z bazą danych MySQL 5.1. Informacje ogólne Język PHP posiada obsługę wielu relacyjnych baz danych, jedną z najpopularniejszych jest baza MySQL. PHP pozwala na pełną współpracę z bazą. Praca

Bardziej szczegółowo

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

Pawel@Kasprowski.pl Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Pawel@Kasprowski.pl Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07 PHP i bazy danych Paweł Kasprowski pawel@kasprowski.pl Użycie baz danych Bazy danych używane są w 90% aplikacji PHP Najczęściej jest to MySQL Funkcje dotyczące baz danych używają języka SQL Przydaje się

Bardziej szczegółowo

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się. Za operacje na bazie odpowiada biblioteka mysqli (i jak improved). Posiada ona interfejs obiektowy jak i proceduralny. Podłączenie do bazy (obiektowo) mysqli:: construct() ([ string $host [, string $username

Bardziej szczegółowo

W tej części zajmiemy się ćwiczeniami dotyczącymi modyfikacji rekordów.

W tej części zajmiemy się ćwiczeniami dotyczącymi modyfikacji rekordów. W tej części zajmiemy się ćwiczeniami dotyczącymi modyfikacji rekordów. Logujemy się do bazy danych (jak pamiętamy, słuŝy do tego oprogramowanie klienta, czyli programik mysql). ZałóŜmy sobie przede wszystkim

Bardziej szczegółowo

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , , Celem ćwiczeń jest zaprojektowanie oraz utworzenie na serwerze bazy danych przechowującej informacje na temat danych kontaktowych. Celem jest również zapoznanie z podstawowymi zapytaniami języka SQL służącymi

Bardziej szczegółowo

Wykład 8. SQL praca z tabelami 5

Wykład 8. SQL praca z tabelami 5 Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu

Bardziej szczegółowo

Ćwiczenie zapytań języka bazy danych PostgreSQL

Ćwiczenie zapytań języka bazy danych PostgreSQL Ćwiczenie zapytań języka bazy danych PostgreSQL 1. Uruchom link w przeglądarce: http://127.0.0.1/phppgadmin 2. Kliknij w zaznaczony na czerwono link PostgreSQL: 3. Zaloguj się wpisując hasło i login student.

Bardziej szczegółowo

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK Dostęp do baz danych z serwisu www - PHP Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK Bazy Danych I, 8 Grudzień 2009 Plan Trochę teorii Uwagi techniczne Ćwiczenia Pytania Trójwarstwowy

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Klucz podstawowy PRIMARY KEY Klucz kandydujący UNIQUE Klucz alternatywny - klucze kandydujące, które nie zostały wybrane na klucz podstawowy Klucz obcy - REFERENCES Tworząc tabelę,

Bardziej szczegółowo

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL Wprowadzenie do SQL SQL - Structured Query Language -strukturalny język zapytań Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w relacyjnych bazach danych Powstał w firmie

Bardziej szczegółowo

Internetowe bazy danych

Internetowe bazy danych Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy Internetowe bazy danych wykład 6 dr inż. Jacek Mazurkiewicz e-mail: Jacek.Mazurkiewicz@pwr.wroc.pl Kontrola dostępu

Bardziej szczegółowo

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność

Bardziej szczegółowo

Bazy danych SQL Server 2005

Bazy danych SQL Server 2005 Bazy danych SQL Server 2005 TSQL Michał Kuciapski Typ zadania: Podstawowe zapytania Select Zadanie 1: Wyświetl następujące informacje z bazy: A. 1. Wyświetl informacje o klientach: nazwa firmy, imie, nazwisko,

Bardziej szczegółowo

Wprowadzenie do baz danych

Wprowadzenie do baz danych Wprowadzenie do baz danych Dr inż. Szczepan Paszkiel szczepanpaszkiel@o2.pl Katedra Inżynierii Biomedycznej Politechnika Opolska Wprowadzenie DBMS Database Managment System, System za pomocą którego można

Bardziej szczegółowo

Bazy danych 7. SQL podstawy

Bazy danych 7. SQL podstawy Bazy danych 7. SQL podstawy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Structured Query Language Używane standardy: SQL92 SQL99 SQL:2003 Żaden dostawca nie jest w pełni zgodny

Bardziej szczegółowo

6. Bezpieczeństwo przy współpracy z bazami danych

6. Bezpieczeństwo przy współpracy z bazami danych 6. Bezpieczeństwo przy współpracy z bazami danych 6.1. Idea ataku SQL injection Atak znany jako SQL injection jest możliwy wtedy, gdy użytkownik ma bezpośredni wpływ na postać zapytania wysyłanego do bazy

Bardziej szczegółowo

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc. Zmienne powłoki Zmienne powłoki (shell variables) to tymczasowe zmienne, które mogą przechowywać wartości liczbowe lub ciągi znaków. Związane są z powłoką, Przypisania wartości do zmiennej następuje poprzez

Bardziej szczegółowo

1. Sprawdzenie ustawień konfiguracyjnych. Uruchomienie wiersza poleceń:..\ścieżka\bin>mysqladmin variables

1. Sprawdzenie ustawień konfiguracyjnych. Uruchomienie wiersza poleceń:..\ścieżka\bin>mysqladmin variables MYSQL 1 1. Sprawdzenie ustawień konfiguracyjnych Uruchomienie wiersza poleceń:..\ścieżka\bin>mysqladmin variables 2 2. Wstępna konfiguracja Po zainstalowaniu aplikacji należy przed uruchomieniem wykonać

Bardziej szczegółowo

Kurs. Podstawy MySQL

Kurs. Podstawy MySQL Kurs Podstawy MySQL Krótkie info. Autorem kursu jest Piotr Jędrusik. Kurs jest własnością serwisu MySQL FAQ www.mysqlfaq.prv.pl, email: mysqlfaq@twister.pl. 1. Tworzymy bazę. Stworzymy pierwszą bazę o

Bardziej szczegółowo

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn

Bardziej szczegółowo

SIECI KOMPUTEROWE I BAZY DANYCH

SIECI KOMPUTEROWE I BAZY DANYCH KATEDRA MECHANIKI I ROBOTYKI STOSOWANEJ WYDZIAŁ BUDOWY MASZYN I LOTNICTWA, POLITECHNIKA RZESZOWSKA SIECI KOMPUTEROWE I BAZY DANYCH Laboratorium DB1, DB2: TEMAT: Wprowadzenie do SQL. Praca z pojedyncza

Bardziej szczegółowo

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL jest językiem deklaratywnym tj. takim, w którym istotne

Bardziej szczegółowo

Struktura drzewa w MySQL. Michał Tyszczenko

Struktura drzewa w MySQL. Michał Tyszczenko Struktura drzewa w MySQL Michał Tyszczenko W informatyce drzewa są strukturami danych reprezentującymi drzewa matematyczne. W naturalny sposób reprezentują hierarchię danych toteż głównie do tego celu

Bardziej szczegółowo

Bazy Danych i Usługi Sieciowe

Bazy Danych i Usługi Sieciowe Bazy Danych i Usługi Sieciowe Język PHP Paweł Witkowski Wydział Matematyki, Informatyki i Mechaniki Jesień 2011 P. Witkowski (Wydział Matematyki, Informatyki i Mechaniki) BDiUS w. VIII Jesień 2011 1 /

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Obiektowe bazy danych

Obiektowe bazy danych Obiektowe bazy danych Wykład 7 Paweł Gmys Interfejs uŝytkownika C++ JAVA PERL PHP 2006-05-14 Paweł Gmys wykład 8 2 Czym są skrypty PHP? Programy umieszczane w treści stron WWW. Wykonywane przez serwer

Bardziej szczegółowo

Sprzeg podstawowy do baz danych w PHP Mateusz Sowa, 2007

Sprzeg podstawowy do baz danych w PHP Mateusz Sowa, 2007 1. Wstęp PHP jest to skryptowy język programowania wykonywany po stronie serwera (server-side) służący do generowania stron internetowych. Skrypty napisane w PHP po uruchomieniu nie są kompilowane do postaci

Bardziej szczegółowo

1. Kalkulator czterech działań. 2. Konwersja ciągu znaków do tablicy.

1. Kalkulator czterech działań. 2. Konwersja ciągu znaków do tablicy. 1. Kalkulator czterech działań. Kalkulator czterech działań: +, -, *, \ (bez nawiasów). Wejście: łańcuch znakowy, np. 1+2*3\4-5\2=, -2+4e-1= Liczby mogą być w formacie, np. +1.45, -2, 1e-10. 2. Konwersja

Bardziej szczegółowo

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Marek Robak Wprowadzenie do języka SQL na przykładzie baz SQLite Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Tworzenie tabeli Pierwsza tabela W relacyjnych bazach danych jedna

Bardziej szczegółowo

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion Autor: Joanna Karwowska SQL zapewnia obsługę: zapytań - wyszukiwanie danych w bazie, operowania danymi - wstawianie, modyfikowanie

Bardziej szczegółowo

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3 cur.executescript(""" DROP TABLE IF EXISTS uczen; CREATE TABLE IF NOT EXISTS uczen ( Uniwersytet Technologiczno-Przyrodniczy im. J.J. Śniadeckich w Bydgoszczy Instrukcja do ćwiczeń laboratoryjnych Przedmiot

Bardziej szczegółowo

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy) Zapytania SQL. Polecenie SELECT jest używane do pobierania danych z bazy danych (z tabel lub widoków). Struktura polecenia SELECT SELECT FROM WHERE opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje

Bardziej szczegółowo

15. Funkcje i procedury składowane PL/SQL

15. Funkcje i procedury składowane PL/SQL 15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp

Bardziej szczegółowo

Krótki przegląd zapytań

Krótki przegląd zapytań Krótki przegląd zapytań NajwaŜniejszą rzeczą jest uświadomienie sobie, Ŝe baza danych to generalnie zestaw tabel a więc stosunkowo prostych obiektów, składających się z wierszy i kolumn. Wszelkie operatory,

Bardziej szczegółowo

SSK - Techniki Internetowe

SSK - Techniki Internetowe SSK - Techniki Internetowe Ćwiczenie 2. Obsługa formularzy. Operatory, instrukcje warunkowe oraz instrukcje pętli w PHP. Obsługa formularzy Skryptu PHP moŝna uŝyć do obsługi formularza HTML. Aby tego dokonać,

Bardziej szczegółowo

CREATE USER

CREATE USER Temat: Administrowanie użytkownikami bazy danych. Po instalacji serwera MYSQL dostępne jest konto o nazwie root. Domyślnie nie ma ono przypisanego hasła, aczkolwiek podczas procesu konfiguracji jest możliwość

Bardziej szczegółowo

Wykład 4. SQL praca z tabelami 1

Wykład 4. SQL praca z tabelami 1 Wykład 4 SQL praca z tabelami 1 Typy danych Typy liczbowe Typy całkowitoliczbowe Integer types - Typ INTEGER; 32-bitowa liczba ze znakiem z zakresu -2 31 do 2 31 1 - Typ SMALLINT; typ całkowity mniejszy

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 11 PHP, MySQL: więcej, więcej!, więcej!!. tabel i funkcjonalności. Na dzisiejszych zajęciach zdefiniujemy w naszej bazie kilka tabel powiązanych kluczem obcym i zobaczymy,

Bardziej szczegółowo

Imię i Nazwisko Data Ocena. Laboratorium 7

Imię i Nazwisko Data Ocena. Laboratorium 7 Imię i Nazwisko Data Ocena Laboratorium 7 Celem tego ćwiczenia jest pokazanie, że w MoscowML można pisać aplikacje użytkowe, np. prosty interpreter języka SQL (MLSQL) Listy i krotki Różnica pomiędzy krotkami

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

PHP + MySQL w laboratorium (1)

PHP + MySQL w laboratorium (1) PHP + MySQL w laboratorium (1) W czasie użytkowania systemu musi działać serwer MySQL, Apache i być dostępna przeglądarka internetowa. Zadanie 1 - Umieścić wydrukowany poniżej skrypt info.php w kartotece

Bardziej szczegółowo

P o d s t a w y j ę z y k a S Q L

P o d s t a w y j ę z y k a S Q L P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p

Bardziej szczegółowo

Bazy danych 6. Klucze obce. P. F. Góra

Bazy danych 6. Klucze obce. P. F. Góra Bazy danych 6. Klucze obce P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2018 Dygresja: Metody przechowywania tabel w MySQL Tabele w MySQL moga być przechowywane na kilka sposobów. Sposób ten (żargonowo:

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

DECLARE VARIABLE zmienna1 typ danych; BEGIN

DECLARE VARIABLE zmienna1 typ danych; BEGIN Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;

Bardziej szczegółowo

Bazy danych Access KWERENDY

Bazy danych Access KWERENDY Bazy danych Access KWERENDY Obiekty baz danych Access tabele kwerendy (zapytania) formularze raporty makra moduły System baz danych MS Access Tabela Kwerenda Formularz Raport Makro Moduł Wyszukiwanie danych

Bardziej szczegółowo

Połączenie z bazą danych : mysql h u root -p Enter password: *******

Połączenie z bazą danych : mysql h u root -p Enter password: ******* Połączenie z bazą danych : mysql h 127.0.0.1 -u root -p Enter password: ******* wyświetlenie istniejących baz danych: show databases; Database mysql test Uwaga ważny średnik na końcu każdej linii. Tworzenie

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium PHP + bazy danych Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię PHP. Aplikacja pokazuje takie aspekty, współpraca PHP z bazami

Bardziej szczegółowo

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL Tutorial PostgreSQL 1. Instalacja na własnym komputerze: a. Zainstaluj program ze strony: https://www.postgresql.org/download/ Wersja odpowiednia dla systemu operacyjnego Linux, Mac, Windows Przy pierwszym

Bardziej szczegółowo

Instrukcja do panelu administracyjnego. do zarządzania kontem FTP WebAs. www.poczta.greenlemon.pl

Instrukcja do panelu administracyjnego. do zarządzania kontem FTP WebAs. www.poczta.greenlemon.pl Instrukcja do panelu administracyjnego do zarządzania kontem FTP WebAs www.poczta.greenlemon.pl Opracowanie: Agencja Mediów Interaktywnych GREEN LEMON Spis treści 1.Wstęp 2.Konfiguracja 3.Konto FTP 4.Domeny

Bardziej szczegółowo

Bloki anonimowe w PL/SQL

Bloki anonimowe w PL/SQL Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 2 Kusory Wprowadzenie Kursory użytkownika Kursory domyślne Zmienne kursora Wyrażenia kursora - 2 - Wprowadzenie Co to jest kursor?

Bardziej szczegółowo

Podstawowe zapytania SELECT (na jednej tabeli)

Podstawowe zapytania SELECT (na jednej tabeli) Podstawowe zapytania SELECT (na jednej tabeli) Struktura polecenia SELECT SELECT opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje FROM nazwy tabel lub widoków WHERE warunek (wybieranie wierszy) GROUP

Bardziej szczegółowo

Po prawidłowym podłączeniu do serwera MySQL należy wybrać bazę, na której będziesz pracować:

Po prawidłowym podłączeniu do serwera MySQL należy wybrać bazę, na której będziesz pracować: Język SQL (Structured Query Language} służy do manipulowania danymi umieszczonymi w relacyjnych bazach danych. Jest językiem uniwersalnym, dzięki czemu praca na różnych systemach baz danych sprowadza się

Bardziej szczegółowo

11. PROFESJONALNE ZABEZPIECZENIE HASŁEM

11. PROFESJONALNE ZABEZPIECZENIE HASŁEM 11. PROFESJONALNE ZABEZPIECZENIE HASŁEM Tworząc róŝne panele administratora jesteśmy naraŝeni na róŝne ataki osób ciekawskich. W tej lekcji dowiesz się, jak zakodować hasło i, jak obronić się przed potencjalnym

Bardziej szczegółowo

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Rozpoczniemy od zaprojektowania bazy danych w programie SYBASE/PowerDesigner umieszczamy dwie Encje (tabele) prawym

Bardziej szczegółowo

Programowanie w Ruby

Programowanie w Ruby Programowanie w Ruby Wykład 6 Marcin Młotkowski 14 listopada 2012 Plan wykładu Trwałość obiektów Bazy danych DBM Bazy danych SQL Active records Szeregowanie obiektów Obiekt Serializacja @tytul = 'Pan Tadeusz'

Bardziej szczegółowo

Bazy Danych i Usługi Sieciowe

Bazy Danych i Usługi Sieciowe Bazy Danych i Usługi Sieciowe Ćwiczenia I Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) BDiUS ćw. I Jesień 2011 1 / 15 Strona wykładu http://bioexploratorium.pl/wiki/ Bazy_Danych_i_Usługi_Sieciowe_-_2011z

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

Wprowadzenie do JDBC z wykorzystaniem bazy H2

Wprowadzenie do JDBC z wykorzystaniem bazy H2 Wprowadzenie do JDBC z wykorzystaniem bazy H2 JDBC (ang. Java DataBase Connectivity). Biblioteka stanowiąca interfejs umożliwiający aplikacjom napisanym w języku Java porozumiewać się z bazami danych za

Bardziej szczegółowo

PHP: bloki kodu, tablice, obiekty i formularze

PHP: bloki kodu, tablice, obiekty i formularze 1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują

Bardziej szczegółowo

Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas)

Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas) Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas) Bazy danych podstawowe pojęcia Baza danych jest to zbiór danych zorganizowany zgodnie ze ściśle określonym modelem danych. Model danych to zbiór ścisłych

Bardziej szczegółowo