Tworzenie bazy danych i tabel

W tej części skupimy się na dwóch kwestiach:

Będę omawiał te rzeczy w prosty sposób. Jeśli chciałbyś poznać je lepiej, koniecznie zajrzyj do dokumentacji – dodałem odnośniki do elementów na liście powyżej. Nie to jest to strona poświęcona nauce systemów baz danych a PHP – więc informacje, które będę zamieszczał będą w „okrojonej wersji”.

Uprawnienia i informacje

Do tworzenia baz danych jak i tabel, musimy mieć odpowiednie uprawnienia. W tym momencie działamy na środowisku testowym – dlatego wystarczy nam konto root’a. Możemy sprawdzić jakie te konto ma uprawnienia:

Polecenie show grants for <nazwa>@<host> pokazuje informacje o uprawnieniach użytkownika.

Możemy również sprawdzić jacy użytkownicy są dostępnie w bazie danych. Informacje te znajdują się w bazie mysql w tabeli user:

W celu wyszukania tych informacji w bazie mysql użyliśmy składni use. Następnie użyliśmy składni select – dzięki której pobraliśmy informację z tabeli. Jeśli chcemy sprawdzić na jakim użytkowniku obecnie działamy, wystarczy wpisać skorzystać z funkcji select user(); wbudowanej w MySQL:

…lub też alternatywnie select system_user();

Wyświetlanie informacje o wersji MySQL:

Polecenie status pokazujące wiele informacjI:

Tworzenie bazy danych

Do stworzenia bazy danych należy użyć składni create database – zgodnie ze jej specyfikacją w dokumentacji:

Stwórzmy więc prostą bazę i sprawdźmy w dodatku działaniu składni z dodaniem if not exists.

Pierwsze polecenie – create database php, utworzyło nam bazę danych o nazwie php.

Drugie polecenie – create database if not exists php, zostało wykonane pomyślnie, jednak nic nie zostało usunięte ani dodane, gdyż baza już istniała, więc system dodał warning (ostrzeżenie). Jak sama nazwa polecenia wskazuje – stwórz bazę danych jeśli nie istnieje – w naszym przypadku już istniała, więc nic się nie stało.

Trzecie polecenie – create database php, czyli takie same jak polecenie pierwsze, dało nam tym razem error (błąd) gdyż taka baza już istnieje, o czym dostaliśmy odpowiednią informację.

Ale czy tak naprawdę wykonało się to co w pierwszym poleceniu?

Możemy to sprawdzić dzięki procedurze show create:

Jak widzisz, domyślnie zestaw znaków to utf8mb4 – w nim będziemy widzieć polskie znaki, więc nie musimy go zmieniać. Jednak może zdarzyć się sytuacja, że masz inny zestaw znaków. Co wtedy?

Zestawy znaków

Możemy sprawdzić zestawy znaków za pomocą składni show character set:

Oprócz samego zestawu znaków, przy tworzeniu bazy danych mamy również do dyspozycji opcję collation (zestawienie). Podobnie jak zestawy znaków je również możemy wyszukać:

Lista zestawień jest dosyć długa – nas interesują tylko te, które wspierają polskie znaki. Możemy to wyszukać za pomocą odpowiedniej składni (a konkretniej z użyciem słowa like):

Przy tworzeniu bazy danych skorzystamy z zestawienia utf8mb4_polish_ci.

Dlaczego utf8mb4 a nie zwykłe utf8?

To dobre pytanie. Różnica między tymi dwoma zestawami znaków to rozmiar – a konkretnie jeden bajt. Dlatego używamy zestawienia, które ma większy rozmiar, dzięki temu może pomieścić znaki, które mają wielkość większą niż 3 bajty np. emoji.

utf8mb4 – ma rozmiar wynoszący 4 bajty

utf8 – ma rozmiar 3 bajty (to tak właściwie utf8mb3).

Informacje z dokumentacji:

Więcej informacji znajdziesz tutaj.

Tworzenie bazy danych cz.2

Usuniemy poprzednią bazę i stworzymy od nowa – tym razem zmieniając domyślny zestaw znaków na ten obsługujący polskie znaki.

Usunięcie bazy danych – polecenie drop database <nazwa>:

Stworzenie bazy danych – polecenie create database <nazwa> default character set utf8mb4 collate utf8mb4_polish_ci:

Jak widać baza danych została stworzona z zestawieniem utf8mb4_polish_ci.

Używanie bazy danych

Jeśli chcemy operować na danej bazie danych, używamy składni use <nazwa bazy danych>:


Tworzenie tabeli

Przypuśćmy, że chcielibyśmy stworzyć tabelę zawierającą imiona i nazwiska. Taką tabelę nazywamy też encją. Budowa tej tabeli wyglądała by tak:

create table Osoby (
    ID int primary key auto_increment,
    imie varchar(16),
    nazwisko varchar(32)
);

Po określeniu nazwy tabeli, w nawiasie podajemy nazwy pól oraz typy danych, których dotyczą. Typy danych w MySQL, omówię w następnym wpisie. Słowa „primary key” oraz auto_increment też.

Typy danych mają określony rozmiar – podany w nawiasie (w bitach). Brak nawiasu oznacza użycie domyślnego rozmiaru.

Wyświetlanie tabel

Dostępne tabele w bazie danych wyświetlamy za pomocą polecenia show tables.

Budowę tabeli, możemy sprawdzić w kilka sposobów:

desc – to krótsza forma słowa describe.