Podstawowe pojęcia – bazy, tabele, rekordy

Skoro MySQL jest już zainstalowany na naszym komputerze to możemy w końcu z niego skorzystać W tej lekcji będzie raczej więcej teorii, aby przybliżyc Ci tematykę baz danych, zaś w kolejnej lekcji zrobimy trochę więcej praktyki, abyś mógł bardziej się obyć z SQL zanim wrócimy do Javy. 😉

Ruszajmy!

Na początek musimy uruchomić sobię konsolę – tak, będziemy wszystko robić z konsoli, wolę to podejście. Wolę uruchomić szybko konsolę i szybko sprawdzić stan bazy danych zamiast uruchamiać jakąś aplikację, aby wyklikać to w GUI. 😉

Otwieramy, więc MySQL 8.0 Command Line Client. Naszym oczom powinno ukazać się takie okno:

A po wpisaniu poprawnego hasła – u mnie jest to admin – takie coś:

I wtedy mamy już gotową konsolę do działania – możemy zacząć kontynuować przygodę z bazami danych.

Baza danych

Czym jest baza danych? Baza danych jest zbiorem tabel danych – tabel może być naprawdę sporo. Nasz serwer może przechowywać mnóstwo baz danych, tak naprawdę ma już jakieś wbudowane co możemy sprawdzić komendą:

show databases;

Pamiętaj, aby na koniec każdego zapytania postawić średnik.

Dzięki temu pokaże nam się lista baz danych – ja aktualnie mam takie:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| test-baza          |
| world              |
+--------------------+
7 rows in set (0.00 sec)

Skoro mamy tyle bez danych to stwórzmy swoją – o nazwie people – bardzo prostą komendą:

create database people;

I jeśli się wszystko udało to dostaniemy taką zwrotkę:

Query OK, 1 row affected (0.19 sec)

Wylistujmy jeszcze raz wszystkie bazy komendą:

show databases;

I wtedy już widzimy nasza bazę:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| people             |
| performance_schema |
| sakila             |
| sys                |
| test-baza          |
| world              |
+--------------------+
8 rows in set (0.00 sec)

Skoro jest tyle baz na liście to musimy zdecydować się na “wejście do jednej z nich” – służy do tego metoda use.

use people;

Jeśli, więc baza istnieje to otrzymamy rezultat:

Database changed

I wchodzimy w dalszą część…

Tabele

Powiedziałem, że każda baza składa się z tabel – tabele zaś składają się już z konkretnych danych.  Skoro możemy wylistować bazy danych to możemy również wylistować ich tabele.

show tables;

I póki co nasza baza people nie ma żadnych tabel:

Empty set (0.00 sec)

Dlatego warto było by stworzyć pierwszą tabelę – choć będzie to trochę bardziej skomplikowane niż stworzenie bazy danych.

Kolumny

Każda tabela ma oczywiście swoje kolumny – zaś każda koluman ma swój typ, nazwę oraz inne dodatkowe opcje m.in. kodowanie znaków.

Zbudujmy, więc nasze zapytanie – na początek musimy mieć komendę create table nazwa-tabeli – u nas będzie to tabela employees.

create table employees ();

Teraz czas na zadeklarowanie kolumn w nawiasach, jednak na początku musimy jeszcze poruszyć jedno zagadnienie…

Wiersze

Na początku deklarujemy jak będą wyglądały kolumny w naszej tabeli – zaś wiersze są faktycznymi danymi, które tam wrzucamy. Podczas deklarowania kolumn trzeba pamiętać o tym jakie dane będziemy chcieli wrzucać do tabeli.

U nas będą to:

  • ID – liczba
  • Name – String
  • LastName – String
  • Age – liczba

Na podstawie tego co będziemy przechowywać możemy teraz stworzyć naszą tabelę, ponieważ wiemy jak muszą wyglądać nasze kolumny.

ID – liczba czyli typ int

create table employees (
  ID int,
);

Name i LastName – String czyli typ varchar(n)

create table employees (
  ID int,
  name varchar(20),
  lastname varchar(30),
);

czyli wartość w nawiasie oznacza ile znaków maksymalnie możemy przechowywać w danej kolumnie!

Age – liczba czyli typ int

create table employees (
  ID int,
  name varchar(20),
  lastname varchar(30),
  age int
);

Ale to jeszcze nie koniec, ponieważ możemy dodać dodatkowe opcję do naszych kolumn.

NOT NULL

Możemy do każdej kolumny oddać opcję NOT NULL, dzięki która będzie wymagane podanie danego pola.

create table employees (
  ID int NOT NULL,
  name varchar(20) NOT NULL,
  lastname varchar(30) NOT NULL,
  age int NOT NULL
);

Choć to nie wszystko, ponieważ rekordy jeszcze powinny być numerowane unikalnie…

Primary Key

Tabele mogą mieć przypisane swój primary key, czyli unikalny klucz, po którym są identyfikowane – wystarczy dodać PRIMARY KEY  do kolumny ID.

create table employees (
  ID int PRIMARY KEY NOT NULL,
  name varchar(20) NOT NULL,
  lastname varchar(30) NOT NULL,
  age int NOT NULL
);

Jeszcze możemy jeszcze dodać coś jeszcze..

AUTO_INCREMENT

Choć nasze ID musza być już teraz unikalne to możemy również zapewnić, aby nasze ID automatycznie się zwiększało – czyli generowało samodzielnie bez naszej wiedzy.

create table employees (
  ID int PRIMARY KEY NOT NULL AUTO_INCREMENT,
  name varchar(20) NOT NULL,
  lastname varchar(30) NOT NULL,
  age int NOT NULL
);

I takie zapytanie możemy już wrzucić w konsolę i otrzymamy taki rezultat:

Query OK, 0 rows affected (0.34 sec)

Czyli wszystko poszło ok – oczywiście możemy podejrzeć sobie nasze kolumny komendą:

show columns from employes;

Słowo kluczowe from będzie występowało w większości zapytań i będzie oznaczać skąd ma pobrać dane.

I otrzymamy taki schemat naszej tabeli:

+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| ID       | int(11)     | NO   | PRI | NULL    | auto_increment |
| name     | varchar(20) | NO   |     | NULL    |                |
| lastname | varchar(30) | NO   |     | NULL    |                |
| age      | int(11)     | NO   |     | NULL    |                |
+----------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

Jak widać wszystko się zgadza – dodatkowo przy typie int jest liczba 11 co oznacza, że będą zapisywane liczby mające maksymalnie 11 cyfr.

Podsumowanie

To na tyle części wstępnej – powinieneś już potrafić utworzyć nową bazę danych oraz tablicę. Z pewnością umiesz już deklarować kolumny podczas tworzenia tablicy – nie jest to jakiś rocket science, a pamiętaj, że jeśli czegoś zapomniesz zawsze możesz zajrzeć do dokumentacji MySQL.

Aby utrwalić nową wiedzę wykonaj poniższe zadanie:

  1. Stwórz bazę danych o nazwie application.
  2. W bazie application utwórz tabelę contacts, która będzie miala kolumny:
    • ID – unikalne, samo się inkrementujące, nie może być puste
    • name – nie może być puste,
    • lastName – nie może być puste,
    • phoneNumber – numer telefonu, nie może być pusty
  3. Wyświetl schemat kolumn tabeli contacts.

 

 

UWAGA ROZWIĄZANIE ZADANIA PONIŻEJ!

 

 

 

Przykładowe rozwiązanie wygląda tak:

create database application;
use application;
create table contacts (
  ID int PRIMARY KEY NOT NULL AUTO_INCREMENT,
  name varchar(20) NOT NULL,
  lastname varchar(30) NOT NULL,
  phoneNumber int NOT NULL
);
show columns from contacts;

 

I to na tyle – w nastepnej lekcji zapełnimy naszą tabelę kilkoma rekordami i wykonamy na nich kilka operacji. 😉

Kamil Klimek

Od 2016 jestem programistą Java. Przez pierwsze 4 lata pracowałem jako Full Stack Java Developer. Później postanowiłem postawić nacisk na Javę, żeby jeszcze lepiej ją poznać.

Subscribe
Powiadom o
guest
0 komentarzy
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x