Poniższy artykuł jest jedynie wstępem do zagadnień związanych z bazą MySQL.
Czym jest baza MySQL?
Baza MySQL jest bardzo popularną bazą danych, o otwartym kodzie źródłowym.
Jest ona podstawą bardzo wielu serwisów, z uwagi na jej potencjał,
oraz szeroki dostęp do instrukcji.
Konfiguracja bazy MySQL wykonywana jest z linii komend a więc trzeba połączyć się do serwera przez protokół SSH. Instrukcję połączenia przez PuTTY można znaleźć TUTAJ.
Jak zainstalować bazę MySQL na serwerze rootbox?
Jak zalogować się do bazy danych?
Jak uzyskać dostęp do naszej nowej bazy?
Jak stworzyć tabelę w bazie MySQL?
Jak uzupełnić informacje w naszej tabeli?
Jak uzupełnić poszczególne komórki w naszej tabeli?
Jak dodać lub usunąć kolumnę z naszej tabeli?
Jak usunąć wiersz z naszej tabeli?
Jak zainstalować bazę MySQL na serwerze rootbox?
Jeżeli nie korzystamy z przygotowanego przez serwis rootbox systemu z zainstalowaną bazą danych MySQL, wystarczy w terminalu wpisać:
apt-get update apt-get install mysql-server
Jak zalogować się do bazy danych?
Po poprawnej instalacji wystarczy się zalogować do naszej bazy wpisując w terminalu:
mysql -u root -p
UWAGA! Każda komenda musi zostać zakończona średnikiem ;
Hasłem do logowania przy przygotowanym przez zespół rootbox,
jest hasło do samego serwera.
Po poprawnym zalogowaniu się możemy podejrzeć bazy danych:
SHOW DATABASES ;
W naszym przypadku:
mysql> SHOW DATABASES ; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.00 sec)
Tworzenie bazy danych jest bardzo proste, wystarczy wpisać:
CREATE DATABASE nazwa naszej bazy ; np: CREATE DATABASE BOX ;
Wykonujemy podgląd naszej bazy danych:
mysql> SHOW DATABASES ; +--------------------+ | Database | +--------------------+ | information_schema | | BOX | | mysql | | performance_schema | +--------------------+ 4 rows in set (0.00 sec)
W przypadku chęci usunięcia naszej bazy danych wystarczy wpisać:
DROP DATABASE database name; np: DROP DATABASE BOX ;
Jak uzyskać dostęp do naszej nowej bazy?
Gdy stworzyliśmy naszą nową bazę danych "BOX", można zacząć wprowadzać do niej odpowiednie informacje.
Wpierw wybierzmy naszą bazę danych:
mysql> USE BOX ; Database changed
Następnie robimy podgląd tabel:
mysql> SHOW tables ; Empty set (0.00 sec)
Jak widać powyżej nasza baza danych jest pusta.
Jak stworzyć tabelę w bazie MySQL?
Wyobraźmy sobie, że planujemy zebranie naszej grupki znajomych,
możemy w tym celu skorzystać z bazy MySQL.
Stwórzmy zatem tabelę w MySQL:
CREATE TABLE spotkanie (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, imie VARCHAR(20), jedzenie VARCHAR(30), potwierdzenie CHAR(1), data DATE) ;
To polecenie wykonuje kilka rzeczy:
- Została stworzona tabela "spotkanie" w naszej bazie.
- Zostało utworzonych 5 kolumn w tabeli "id", "imie", "jedzenie", "potwierdzenie" i "data".
- Kolumna "Id" posiada komendę (INT NOT NULL PRIMARY KEY AUTO_INCREMENT), która automatycznie numeruje każdy wiersz.
- Kolumna "imie" została ograniczona przez komendę VARCHAR być wpisywanych znaków nie było więcej niż 20.
- Kolumna "jedzenie" zawiera informacje kto co ze sobą przyniesie. Komenda VARCHAR w tym przypadku ograniczyła nazwę do 30 znaków.
- Kolumna odpowiedzialna za "potwierdzenie" – osoba potwierdza albo że będzie (Y,) albo nie (N).
- Kolumna "data" zawiera informacja, kiedy ktoś zapisał się na spotkanie. MySQL wymaga aby data była zapisana jako rrrr-mm-dd
Podejrzyjmy zatem jak wygląda teraz tabela wpisując:
mysql> SHOW TABLES ; +---------------+ | Tables_in_BOX | +---------------+ | spotkanie | +---------------+ 1 row in set (0.00 sec)
Szczegółowy podgląd ustawień naszej tabeli wykonujemy pleceniem :
mysql> DESCRIBE spotkanie ; +---------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | imie | varchar(20) | YES | | NULL | | | jedzenie | varchar(30) | YES | | NULL | | | potwierdzenie | char(1) | YES | | NULL | | | data | date | YES | | NULL | | +---------------+-------------+------+-----+---------+----------------+ 5 rows in set (0.01 sec)
UWAGA! Zwróć uwagę na wielkość liter – to istotne.
Jak uzupełnić informacje w naszej tabeli?
Posiadamy już tabelę "spotkanie", teraz spróbujemy wypełnić ją dodatkowymi informacjami.
Do naszej tabeli dodajmy poniższe szczegóły:
mysql> INSERT INTO `spotkanie` (`id`,`imie`,`jedzenie`,`potwierdzenie`,`data`) VALUES (NULL, "Jan", "czipsy","Y", '2013-04-11') ; Query OK, 1 row affected (0.01 sec)
Dodajmy również kolejne szczegóły poprzez wpisanie poniższych komend:
INSERT INTO `spotkanie` (`id`,`imie`,`jedzenie`,`potwierdzenie`,`data`) VALUES (NULL, "Sara", "napoje","N", '2014-07-07') ; INSERT INTO `spotkanie` (`id`,`imie`,`jedzenie`,`potwierdzenie`,`data`) VALUES (NULL, "Tomek", "grill","Y", '2014-07-07') ; INSERT INTO `spotkanie` (`id`,`imie`,`jedzenie`,`potwierdzenie`,`data`) VALUES (NULL, "Renata", "salatka","Y", '2014-07-07') ;
Podejrzyjmy zatem dokonane zmiany:
mysql> SELECT * FROM spotkanie ; +----+--------+----------+---------------+------------+ | id | imie | jedzenie | potwierdzenie | data | +----+--------+----------+---------------+------------+ | 1 | Jan | czipsy | Y | 2013-04-11 | | 2 | Sara | napoje | N | 2014-07-07 | | 3 | Tomek | grill | Y | 2014-07-07 | | 4 | Renata | salatka | Y | 2014-07-07 | +----+--------+----------+---------------+------------+ 4 rows in set (0.00 sec)
Jak uzupełnić poszczególne komórki w naszej tabeli?
Kiedy już posiadamy tabelę "spotkanie", możemy w niej wprowadzać różnie zmiany.
Dla przykładu, osoba o imieniu Sara potwierdziła przybycie na spotkanie:
UPDATE `spotkanie` SET `potwierdzenie` = 'Y' WHERE `spotkanie`.`imie` ='Sara' ;
UWAGA! Można tym sposobem wprowadzać zmiany w konkretnych komórkach, nawet gdy są one puste.
Jak dodać lub usunąć kolumnę z naszej tabeli?
Wyobraźmy sobie że dla każdego z uczestników chcemy rozesłać potwierdzenie spotkania. Potrzebujemy do tego kolumny z adresami email, dodajmy zatem kolumnę "email":
mysql> ALTER TABLE spotkanie ADD email VARCHAR(40) ; Query OK, 4 rows affected (0.04 sec) Records: 4 Duplicates: 0 Warnings:
Powyższa komenda spowodowała dodanie nowej kolumny o nazwie "email" (domyślnie na końcu naszej tabeli), a komenda VARCHAR ograniczyła liczbę znaków do 40.
Obecny podgląd naszej tabeli z kolumnami:
mysql> SELECT * FROM spotkanie ; +----+--------+----------+---------------+------------+-------+ | id | imie | jedzenie | potwierdzenie | data | email | +----+--------+----------+---------------+------------+-------+ | 1 | Jan | czipsy | Y | 2013-04-11 | NULL | | 2 | Sara | napoje | Y | 2014-07-07 | NULL | | 3 | Tomek | grill | Y | 2014-07-07 | NULL | | 4 | Renata | salatka | Y | 2014-07-07 | NULL | +----+--------+----------+---------------+------------+-------+ 4 rows in set (0.01 sec)
Usuwamy kolumnę poprzez komendę:
ALTER TABLE spotkanie DROP email ;
Można również umieścić naszą kolumnę w konkretnym miejscu tabeli.
Jeżeli chcemy ją umieścić zaraz po kolumnie "imie":
ALTER TABLE spotkanie ADD email VARCHAR(40) AFTER imie ;
Podgląd tabeli:
mysql> SELECT * FROM spotkanie ; +----+--------+-------+----------+---------------+------------+ | id | imie | email | jedzenie | potwierdzenie | data | +----+--------+-------+----------+---------------+------------+ | 1 | Jan | NULL | czipsy | Y | 2013-04-11 | | 2 | Sara | NULL | napoje | Y | 2014-07-07 | | 3 | Tomek | NULL | grill | Y | 2014-07-07 | | 4 | Renata | NULL | salatka | Y | 2014-07-07 | +----+--------+-------+----------+---------------+------------+ 4 rows in set (0.00 sec)
Jak usunąć wiersz z naszej tabeli?
Jeżeli chcemy usunąć wiersz z tabeli wystarczy wpisać komendę:
DELETE from [table name] where [column name]=[field text] ;
Dla przykładu Sara jednak nie będzie uczestniczyła w naszym spotkaniu:
DELETE from spotkanie where imie='Sara' ;
Widać, że aktualny wiesz został usunięty:
mysql> SELECT * FROM spotkanie ; +----+--------+-------+----------+---------------+------------+ | id | imie | email | jedzenie | potwierdzenie | data | +----+--------+-------+----------+---------------+------------+ | 1 | Jan | NULL | czipsy | Y | 2013-04-11 | | 3 | Tomek | NULL | grill | Y | 2014-07-07 | | 4 | Renata | NULL | salatka | Y | 2014-07-07 | +----+--------+-------+----------+---------------+------------+ 3 rows in set (0.00 sec