Czym jest MySQL?
SQL (ang. Structured Query Language) jest to język zapytań, który zawiera wyrażenia umożliwiające komunikację z bazami danych. Powstał na początku lat siedemdziesiątych, natomiast pierwszy jego standard został opracowany przez ANSI w roku 1989 (SQL89). Trzy lata później opracowano nowy standard - SQL2 (SQL92) - obecnie obowiązujący.
MySQL to najpopularniejsza aplikacja bazodanowa typu open source. Doskonale nadaje się do współpracy z wieloma popularnymi językami programowania. Często wykorzystuje się ją do budowania dynamicznych stron internetowych w połączeniu z językami server-side (np. PHP).
Posługiwanie się poleceniami MySQL nie należy do rzeczy specjalnie trudnych - są raczej łatwe do nauczenia nawet dla osób nie znających żadnego języka programowania.
Wymowa wyrazu MySQL
Wielu początkujących zastanawia się, jak należy wymawiać wyraz MySQL. Jest to wyraz (skrót) pochodzący z języka angielskiego, zatem jego wymowa powinna brzmieć [Maj eS Kju eL].
Nie powinno się tego wymawiać natomiast jako [My SKL], ani [My SyKL] itp. Można też wymawiać ten wyraz ewentualnie jako [Maj SKuL] - jednak zalecam stosowanie pierwszej wymowy, gdyż powinna być zrozumiała dla każdego.
Jeśli powiesz do wykładowcy czy nauczyciela, że uczysz się obsługi bazy danych [Maj eS Kju eL] - powinieneś zostaniesz zrozumiany.
Do czego można wykorzystać MySQL?
Kiedy pierwszy raz spotkałem się z tym pojęciem, zastanawiało mnie do czego taka baza danych mogłaby mi się przydać... Twierdziłem też, że jest to raczej coś dla profesjonalistów i nie widziałem sensu męczenia się z bazami danych. Po przeczytaniu kilku publikacji (w tym książek) spostrzegłem, jak bardzo się myliłem...
Baza danych może doskonale zastąpić pliki tekstowe - jest szybsza i wygodniejsza w użyciu. Dzięki niej wykonanie takich skryptów, jak księga gości, sonda, czy licznik odwiedzin nie będzie stanowiło większego problemu - nawet przy bardzo słabej znajomości PHP.
W zasadzie można jej użyć wszędzie na stronie, gdzie wymagane jest zapamiętanie jakiegoś elementu - zatem baza danych to nic innego jak "pamięć podręczna" Twojego serwisu WWW. Ponadto jedna modyfikacja w bazie danych może mieć wpływ na wygląd całego serwisu.
Bardzo dużą przewagą, w stosunku do plików tekstowych, oprócz łatwości w operowaniu, jest brak określeń praw dostępu (chmod). Jeżeli użytkownik połączył się, to nie musi się martwić o prawa do zapisu czy odczytu, jak to jest w przypadku plików. Oczywiście - dostęp do bazy danych może określić administrator serwera lub webmaster - użytkownik widzi raczej efekty użycia bazy danych (np. kiedy doda swój komentarz gdzieś na stronie).
W oparciu o MySQL możesz zbudować stronę, której modyfikowanie zajmie Ci kilka sekund. Możesz urozmaicić ją o elementy, na które wpływ będzie miał użytkownik - dzięki temu Twój serwis stanie się bardziej funkcjonalny i interaktywny. Wszystko to możesz wykonać bez zbędnego obciążenia i w dosyć prosty sposób.
Jak wygląda baza danych?
Struktura bazy danych bardzo przypomina arkusz kalkulacyjny. W MySQL dane przechowywane są w tabelach podzielonych na kolumny i wiersze. Nowy rekord w bazie danych stanowi nowy wiersz. Kolumny w danej tabeli określają typ danych, które będą przechowywać (np. tekst albo liczby).
Na czym polega elastyczność baz danych?
Przykładowo, aby wyciągnąć daną informację z bazy danych wystarczy użyć kilku poleceń, które można przetłumaczyć, np. tak:
"Wybierz daty urodzin użytkowników (z nazwa_tabeli), którzy mają na imię Paweł albo Władek. Wyświetl 10 pozycji, sortuj według nazwisk rosnąco (alfabetycznie A-Z)."
Aby "wypowiedzieć" takie zdanie, wystarczy napisać:
|
SELECT data_urodzin FROM uzytkownicy WHERE imie='Paweł' OR imie='Władek' ORDER BY nazwisko ASC LIMIT 10;
|
W przypadku plików tekstowych nie ma takiej swobody.
W jaki sposób można dostać się do MySQL-a?
Jest kilka możliwości, aby połączyć się z bazą danych i na niej pracować.
monitor mysql - mysqld
Pierwsza to użycie tzw. monitora mysql. Za pomocą tej stosunkowo niewielkiej aplikacji możemy połączyć się z głównym programem kontrolującym bazy - mysqld. Program działa w trybie tekstowym, a przykładowe polecenie może wyglądać tak:
|
mysql -u login -h nazwa_hosta -p
|
Jeżeli znajdujesz się na serwerze z bazą danych zamiast nazwy hosta możesz napisać "localhost" - jednak często nie jest to konieczne. Po wpisaniu hasła powinno nastąpić łączenie.
Później należy wybrać bazę danych:
- tutaj nie wymaga się średnika.
Możesz też spróbować od razu wybrać bazę danych przy logowaniu:
|
mysql nazwa_bazy -u login -p
|
Po wybraniu bazy danych możesz wykonywać na niej operacje.
Często na komercyjnych serwerach baza danych jest utworzona (np. jeśli twój login to "twoj_login" to nazwa bazy jest taka sama). Zdarza się jednak, że trzeba ją sobie samemu utworzyć poleceniem:
|
CREATE DATABASE nazwa_bazy;
|
I dopiero teraz można jej używać poleceniem USE.
Pamiętaj - prawie każde polecenie (zapytanie) musi być zakończone średnikiem (oznacza to koniec zapytania - jeżeli naciśniesz enter bez uprzednio wpisanego średnika, program przeniesie Cię do nowego wiersza, gdzie będziesz mógł dokończyć polecenie lub wstawić zapomniany średnik.
Do zamykania aplikacji mysqla służą polecenia exit i quite (bez średników na końcu) - po wpisaniu jednego z tych poleceń zwykle wyświetla się tekst pożegnalny (Bye)...
PMA - phpMyAdmin
Kolejnym bardzo dobrym narzędziem jest phpMyAdmin. Jest to bardzo prosta w użyciu aplikacja zarządzająca bazami danych. W łatwy sposób można zrobić kopię bezpieczeństwa i wpisywać rekordy.
Aby utworzyć tabelę wystarczy kilka ruchów myszką, wpisać odpowiednie wartości i gotowe (interfejs HTML). Możemy także wpisywać własne polecenia. Program jest bardzo instynktowny, więc nie będę go tutaj opisywał.
Skrypty PHP
Trzecim sposobem jest użycie skryptu PHP - aby wywołać zapytanie można posłużyć się funkcją mysql_query();
Przykład:
|
$query = "SELECT * FROM nazwa_tabeli";
$result = mysql_query( $query );
|
Do zmiennej $query wpisujemy polecenia (tutaj podobnie jak w phpMyAdmin nie stosujemy średników). Zmienna $result zawiera wynik funkcji mysql_query(). Później wykonujemy operacje na zmiennej $result - o tym w innych artykułach. Zapytanie spowoduje wybranie wszystkich rekordów (efekt gwiazdki "*").
Powyższy przykład zadziała jeśli masz połączenie z bazą danych. Jak połączyć się z bazą danych przy pomocy PHP przeczytasz w innych artykułach.
Funkcje w MySQL
W zapytaniach można stosować także funkcje. Mogą one szyfrować dane, podawać aktualną datę czy też przeprowadzać obliczenia. Przykładem funkcji, której najczęściej używam może być funkcja NOW(), za pomocą której zwykłem wpisywać aktualną datę (dodania lub modyfikacji). Jeżeli typ danych określimy jako DATETIME to format daty będzie miał postać 0000-00-00 00:00:00 - czyli rrrr-mm-dd hh-mm-ss.
Wielkie litery w zapytaniach
Jak widać na przykładach polecenia w zapytaniu pisałem wielkimi literami, natomiast nazwy tabeli i wartości małymi. Uważam, że jest to dobrym nawykiem, gdyż jestem w stanie odróżnić wartości od poleceń - przydatne zwłaszcza przy skomplikowanych zapytaniach.
Napisałem, że jest to dobrym nawykiem - nie obowiązkiem. Polecenia pisane małymi literami powinny być tak samo interpretowane...
Podsumowanie
MySQL to oprogramowanie bazy danych, oparte na open source. W MySQL wykorzystuje się język SQL - język zapytań. Prawidłowa wymowa wyrazu "MySQL" brzmi [Maj eS Kju eL].
Aplikacja jest w miarę prosta w obsłudze. Elastyczność w wykonywaniu poleceń jest zadowalająca. Jest o wiele łatwiejsza niż operacje na plikach tekstowych.
MySQL można wykorzystywać na wiele sposobów. Dobrym wykorzystaniem tej aplikacji jest tworzenie dynamicznych stron WWW. Dzięki MySQL aplikacje takie, jak news manager, skrypty dodawania/wyświetlania artykułów i komentarzy, sondy i itp. - nie stanowią większego problemu przy minimalnej znajomości MySQL i PHP.
Operować na bazach MySQL można na co najmniej 3 sposoby: monitor mysqld, phpMyAdmin oraz języki server-side (z obsługą baz danych, np. PHP).
MySQL oferuje bardzo duże możliwości. Zaletą tego języka jest możliwość stosowania funkcji wbudowanych. Dzięki takiemu rozwiązaniu, zapytania mogą być szybsze i bardziej sprecyzowane, a ich obsługa za pomocą skryptów server-side - znacznie prostsza.
Zwróć też uwagę na średniki. Podczas pisania w konsoli większość zapytań musi być zakończona średnikiem - w przeciwnym razie zostaniesz przeniesiony do nowej linii.